Subchapter 54.6
casting-reference.mdMarkdown7 KBView on GitHub
On-demand reference for Squad’s casting system. Loaded during Init Mode or when adding team members.
| Universe | Capacity | Shape Tags | Resonance Signals |
|---|
| The Usual Suspects | 6 | small, noir, ensemble | crime, heist, mystery, deception |
| Reservoir Dogs | 8 | small, noir, ensemble | crime, heist, tension, loyalty |
| Alien | 8 | small, sci-fi, survival | space, isolation, threat, engineering |
| Ocean’s Eleven | 14 | medium, heist, ensemble | planning, coordination, roles, charm |
| Arrested Development | 15 | medium, comedy, ensemble | dysfunction, business, family, satire |
| Star Wars | 12 | medium, sci-fi, epic | conflict, mentorship, legacy, rebellion |
| The Matrix | 10 | medium, sci-fi, cyberpunk | systems, reality, hacking, philosophy |
| Firefly | 10 | medium, sci-fi, western | frontier, crew, independence, smuggling |
| The Goonies | 8 | small, adventure, ensemble | exploration, treasure, kids, teamwork |
| The Simpsons | 20 | large, comedy, ensemble | satire, community, family, absurdity |
| Breaking Bad | 12 | medium, drama, tension | chemistry, transformation, consequence, power |
| Lost | 18 | large, mystery, ensemble | survival, mystery, groups, leadership |
| Marvel Cinematic Universe | 25 | large, action, ensemble | heroism, teamwork, powers, scale |
| DC Universe | 18 | large, action, ensemble | justice, duality, powers, mythology |
| Futurama | 12 | medium, sci-fi, comedy | future, robots, space, absurdity |
Total: 15 built-in universes — capacity range 6–25.
When the user does not request a themed universe, use descriptive role-based names instead of character names. Descriptive names are the default naming convention.
| Role | Descriptive Name |
|---|---|
| Lead | Lead |
| Frontend Dev | Frontend |
| Backend Dev | Backend |
| Tester / QA | Tester |
| Security | Security |
| DevRel / Docs | Docs |
| Reviewer | Reviewer |
| DevOps / Infra | Infra |
Rules for descriptive naming:
.squad/agents/lead/)."universe": "descriptive" in registry.json.Users may request any universe — not just those in the built-in allowlist. When a user specifies a universe not in the table above, treat it as a custom universe.
registry.json, set "universe" to the user-specified universe name (e.g., "Doctor Who", "The Office"). In history.json, record the universe name as given by the user.When "allow_custom_universes": true is set in policy.json (this is the default), any user-specified universe is accepted. Built-in universes are preferred for auto-selection (no user preference), but the user can always override.
Universe selection is deterministic and applies only when the user has not specified a universe. If the user requests a specific universe (built-in or custom), use it directly — skip scoring.
When auto-selecting, score each built-in universe and pick the highest:
score = size_fit + shape_fit + resonance_fit + LRU| Factor | Description |
|---|---|
size_fit | How well the universe capacity matches the team size. Prefer universes where capacity ≥ agent_count with minimal waste. |
shape_fit | Match universe shape tags against the assignment shape derived from the project description. |
resonance_fit | Match universe resonance signals against session and repo context signals. |
LRU | Least-recently-used bonus — prefer universes not used in recent assignments (from history.json). |
Same inputs → same choice (unless LRU changes between assignments).
Character names are easter eggs shown in plain text across team.md, prompts, logs, and generated files. The user configuring the squad may be midway through the source material. A name that bakes in a future title, role, transformation, or fate can spoil later plot events even when the casting rationale stays hidden.
How to avoid it:
Motivating example. A user setting up a squad requested the Malazan Book of the Fallen universe (Steven Erikson) and was only four books into the series. The casting allocated two spoiler-bearing names:
- One name bundled a title/epithet the character only earns after a major mid-series development — encoding a role they do not yet hold at the reader’s current point in the story.
- The other referenced a state/transformation that has not yet occurred at the reader’s position — revealing what later becomes of that character.
Both leaked future plot. (Character names are deliberately omitted here so this document does not reproduce the spoiler.)
Source template: .squad/templates/casting-policy.json
Runtime location: .squad/casting/policy.json
{
"casting_policy_version": "1.1",
"allowlist_universes": ["Universe Name", "..."],
"universe_capacity": {
"Universe Name": 10
}
}Source template: .squad/templates/casting-registry.json
Runtime location: .squad/casting/registry.json
{
"agents": {
"agent-role-id": {
"persistent_name": "CharacterName",
"universe": "Universe Name",
"created_at": "ISO-8601",
"legacy_named": false,
"status": "active"
}
}
}Source template: .squad/templates/casting-history.json
Runtime location: .squad/casting/history.json
{
"universe_usage_history": [
{
"universe": "Universe Name",
"assignment_id": "unique-id",
"used_at": "ISO-8601"
}
],
"assignment_cast_snapshots": {
"assignment-id": {
"universe": "Universe Name",
"agents": {
"role-id": "CharacterName"
},
"created_at": "ISO-8601"
}
}
}