@bradygaster/squad-sdk 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +296 -296
- package/dist/agents/history-shadow.js +30 -30
- package/dist/build/github-dist.js +42 -42
- package/dist/config/init.js +173 -173
- package/dist/sharing/consult.js +78 -78
- package/package.json +1 -1
- package/templates/casting/Futurama.json +9 -9
- package/templates/casting-history.json +4 -4
- package/templates/casting-policy.json +37 -37
- package/templates/casting-reference.md +104 -104
- package/templates/casting-registry.json +3 -3
- package/templates/ceremonies.md +41 -41
- package/templates/charter.md +53 -53
- package/templates/constraint-tracking.md +38 -38
- package/templates/cooperative-rate-limiting.md +229 -229
- package/templates/copilot-instructions.md +46 -46
- package/templates/history.md +10 -10
- package/templates/identity/now.md +9 -9
- package/templates/identity/wisdom.md +15 -15
- package/templates/issue-lifecycle.md +412 -412
- package/templates/keda-scaler.md +164 -164
- package/templates/machine-capabilities.md +74 -74
- package/templates/mcp-config.md +90 -90
- package/templates/multi-agent-format.md +28 -28
- package/templates/plugin-marketplace.md +49 -49
- package/templates/ralph-circuit-breaker.md +313 -313
- package/templates/raw-agent-output.md +37 -37
- package/templates/roster.md +60 -60
- package/templates/routing.md +39 -39
- package/templates/run-output.md +50 -50
- package/templates/schedule.json +19 -19
- package/templates/scribe-charter.md +119 -119
- package/templates/skill.md +24 -24
- package/templates/skills/agent-collaboration/SKILL.md +42 -42
- package/templates/skills/agent-conduct/SKILL.md +24 -24
- package/templates/skills/architectural-proposals/SKILL.md +151 -151
- package/templates/skills/ci-validation-gates/SKILL.md +84 -84
- package/templates/skills/cli-wiring/SKILL.md +47 -47
- package/templates/skills/client-compatibility/SKILL.md +89 -89
- package/templates/skills/cross-squad/SKILL.md +114 -114
- package/templates/skills/distributed-mesh/SKILL.md +287 -287
- package/templates/skills/distributed-mesh/mesh.json.example +30 -30
- package/templates/skills/distributed-mesh/sync-mesh.ps1 +111 -111
- package/templates/skills/distributed-mesh/sync-mesh.sh +104 -104
- package/templates/skills/docs-standards/SKILL.md +71 -71
- package/templates/skills/economy-mode/SKILL.md +114 -114
- package/templates/skills/external-comms/SKILL.md +329 -329
- package/templates/skills/gh-auth-isolation/SKILL.md +183 -183
- package/templates/skills/git-workflow/SKILL.md +204 -204
- package/templates/skills/github-multi-account/SKILL.md +95 -95
- package/templates/skills/history-hygiene/SKILL.md +36 -36
- package/templates/skills/humanizer/SKILL.md +105 -105
- package/templates/skills/init-mode/SKILL.md +102 -102
- package/templates/skills/model-selection/SKILL.md +117 -117
- package/templates/skills/nap/SKILL.md +24 -24
- package/templates/skills/personal-squad/SKILL.md +57 -57
- package/templates/skills/project-conventions/SKILL.md +56 -56
- package/templates/skills/release-process/SKILL.md +423 -423
- package/templates/skills/reskill/SKILL.md +92 -92
- package/templates/skills/reviewer-protocol/SKILL.md +79 -79
- package/templates/skills/secret-handling/SKILL.md +200 -200
- package/templates/skills/session-recovery/SKILL.md +155 -155
- package/templates/skills/squad-conventions/SKILL.md +69 -69
- package/templates/skills/test-discipline/SKILL.md +37 -37
- package/templates/skills/windows-compatibility/SKILL.md +74 -74
- package/templates/workflows/squad-ci.yml +24 -24
- package/templates/workflows/squad-docs.yml +54 -54
- package/templates/workflows/squad-heartbeat.yml +171 -171
- package/templates/workflows/squad-insider-release.yml +61 -61
- package/templates/workflows/squad-issue-assign.yml +161 -161
- package/templates/workflows/squad-label-enforce.yml +181 -181
- package/templates/workflows/squad-preview.yml +55 -55
- package/templates/workflows/squad-promote.yml +120 -120
- package/templates/workflows/squad-release.yml +77 -77
- package/templates/workflows/squad-triage.yml +260 -260
- package/templates/workflows/sync-squad-labels.yml +169 -169
package/dist/sharing/consult.js
CHANGED
|
@@ -51,22 +51,22 @@ export class ExtractionDisabledError extends Error {
|
|
|
51
51
|
* Consult mode preamble to inject after frontmatter in squad.agent.md.
|
|
52
52
|
* This tells Squad it's in consult mode and should skip Init Mode.
|
|
53
53
|
*/
|
|
54
|
-
const CONSULT_MODE_PREAMBLE = `
|
|
55
|
-
<!-- consult-mode: true -->
|
|
56
|
-
|
|
57
|
-
## ⚡ Consult Mode Active
|
|
58
|
-
|
|
59
|
-
This project is in **consult mode**. Your personal squad has been copied into \`.squad/\` for this session.
|
|
60
|
-
|
|
61
|
-
**Key differences from normal mode:**
|
|
62
|
-
- **Skip Init Mode** — The team already exists (copied from your personal squad)
|
|
63
|
-
- **Isolated changes** — All changes stay local until you run \`squad extract\`
|
|
64
|
-
- **Invisible to project** — Both \`.squad/\` and this agent file are in \`.git/info/exclude\`
|
|
65
|
-
|
|
66
|
-
**When done:** Run \`squad extract\` to review learnings and merge generic ones back to your personal squad.
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
54
|
+
const CONSULT_MODE_PREAMBLE = `
|
|
55
|
+
<!-- consult-mode: true -->
|
|
56
|
+
|
|
57
|
+
## ⚡ Consult Mode Active
|
|
58
|
+
|
|
59
|
+
This project is in **consult mode**. Your personal squad has been copied into \`.squad/\` for this session.
|
|
60
|
+
|
|
61
|
+
**Key differences from normal mode:**
|
|
62
|
+
- **Skip Init Mode** — The team already exists (copied from your personal squad)
|
|
63
|
+
- **Isolated changes** — All changes stay local until you run \`squad extract\`
|
|
64
|
+
- **Invisible to project** — Both \`.squad/\` and this agent file are in \`.git/info/exclude\`
|
|
65
|
+
|
|
66
|
+
**When done:** Run \`squad extract\` to review learnings and merge generic ones back to your personal squad.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
70
|
`;
|
|
71
71
|
/**
|
|
72
72
|
* Get the full squad.agent.md template path.
|
|
@@ -135,24 +135,24 @@ function getConsultAgentContent(projectName) {
|
|
|
135
135
|
return template + '\n' + CONSULT_MODE_PREAMBLE;
|
|
136
136
|
}
|
|
137
137
|
// Fallback: minimal agent if template not found
|
|
138
|
-
return `---
|
|
139
|
-
name: Squad
|
|
140
|
-
description: "Your AI team. Consulting on ${projectName} using your personal squad."
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
${CONSULT_MODE_PREAMBLE}
|
|
144
|
-
|
|
145
|
-
You are **Squad (Consultant)** — working on **${projectName}** using a copy of your personal squad.
|
|
146
|
-
|
|
147
|
-
### Available Context (local copy in .squad/)
|
|
148
|
-
|
|
149
|
-
- **Team:** \`.squad/team.md\` for roster and roles
|
|
150
|
-
- **Routing:** \`.squad/routing.md\` for task routing rules
|
|
151
|
-
- **Decisions:** \`.squad/decisions.md\` for your established patterns
|
|
152
|
-
- **Skills:** \`.copilot/skills/\` for reusable capabilities
|
|
153
|
-
- **Agents:** \`.squad/agents/\` for your squad agents
|
|
154
|
-
|
|
155
|
-
Work as you would with your personal squad, but in this external codebase.
|
|
138
|
+
return `---
|
|
139
|
+
name: Squad
|
|
140
|
+
description: "Your AI team. Consulting on ${projectName} using your personal squad."
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
${CONSULT_MODE_PREAMBLE}
|
|
144
|
+
|
|
145
|
+
You are **Squad (Consultant)** — working on **${projectName}** using a copy of your personal squad.
|
|
146
|
+
|
|
147
|
+
### Available Context (local copy in .squad/)
|
|
148
|
+
|
|
149
|
+
- **Team:** \`.squad/team.md\` for roster and roles
|
|
150
|
+
- **Routing:** \`.squad/routing.md\` for task routing rules
|
|
151
|
+
- **Decisions:** \`.squad/decisions.md\` for your established patterns
|
|
152
|
+
- **Skills:** \`.copilot/skills/\` for reusable capabilities
|
|
153
|
+
- **Agents:** \`.squad/agents/\` for your squad agents
|
|
154
|
+
|
|
155
|
+
Work as you would with your personal squad, but in this external codebase.
|
|
156
156
|
`;
|
|
157
157
|
}
|
|
158
158
|
// ============================================================================
|
|
@@ -162,36 +162,36 @@ Work as you would with your personal squad, but in this external codebase.
|
|
|
162
162
|
* Consult mode instructions to append to Scribe charter.
|
|
163
163
|
* This enables Scribe to classify decisions as generic or project-specific.
|
|
164
164
|
*/
|
|
165
|
-
const CONSULT_MODE_SCRIBE_PATCH = `
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Consult Mode Extraction
|
|
170
|
-
|
|
171
|
-
**This squad is in consult mode.** When merging decisions from the inbox, also classify each decision:
|
|
172
|
-
|
|
173
|
-
### Classification
|
|
174
|
-
|
|
175
|
-
For each decision in \`.squad/decisions/inbox/\`:
|
|
176
|
-
|
|
177
|
-
1. **Generic** (applies to any project) → Copy to \`.squad/extract/\` with the same filename
|
|
178
|
-
- Signals: "always use", "never use", "prefer X over Y", "best practice", coding standards, patterns that work anywhere
|
|
179
|
-
- These will be extracted to the personal squad via \`squad extract\`
|
|
180
|
-
|
|
181
|
-
2. **Project-specific** (only applies here) → Keep in local \`decisions.md\` only
|
|
182
|
-
- Signals: Contains file paths from this project, references "this project/codebase/repo", mentions project-specific config/APIs/schemas
|
|
183
|
-
|
|
184
|
-
Generic decisions go to BOTH \`.squad/decisions.md\` (for this session) AND \`.squad/extract/\` (for later extraction).
|
|
185
|
-
|
|
186
|
-
### Extract Directory
|
|
187
|
-
|
|
188
|
-
\`\`\`
|
|
189
|
-
.squad/extract/ # Generic learnings staged for personal squad
|
|
190
|
-
├── decision-1.md # Ready for extraction
|
|
191
|
-
└── pattern-auth.md # Ready for extraction
|
|
192
|
-
\`\`\`
|
|
193
|
-
|
|
194
|
-
Run \`squad extract\` to review and merge these to your personal squad.
|
|
165
|
+
const CONSULT_MODE_SCRIBE_PATCH = `
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Consult Mode Extraction
|
|
170
|
+
|
|
171
|
+
**This squad is in consult mode.** When merging decisions from the inbox, also classify each decision:
|
|
172
|
+
|
|
173
|
+
### Classification
|
|
174
|
+
|
|
175
|
+
For each decision in \`.squad/decisions/inbox/\`:
|
|
176
|
+
|
|
177
|
+
1. **Generic** (applies to any project) → Copy to \`.squad/extract/\` with the same filename
|
|
178
|
+
- Signals: "always use", "never use", "prefer X over Y", "best practice", coding standards, patterns that work anywhere
|
|
179
|
+
- These will be extracted to the personal squad via \`squad extract\`
|
|
180
|
+
|
|
181
|
+
2. **Project-specific** (only applies here) → Keep in local \`decisions.md\` only
|
|
182
|
+
- Signals: Contains file paths from this project, references "this project/codebase/repo", mentions project-specific config/APIs/schemas
|
|
183
|
+
|
|
184
|
+
Generic decisions go to BOTH \`.squad/decisions.md\` (for this session) AND \`.squad/extract/\` (for later extraction).
|
|
185
|
+
|
|
186
|
+
### Extract Directory
|
|
187
|
+
|
|
188
|
+
\`\`\`
|
|
189
|
+
.squad/extract/ # Generic learnings staged for personal squad
|
|
190
|
+
├── decision-1.md # Ready for extraction
|
|
191
|
+
└── pattern-auth.md # Ready for extraction
|
|
192
|
+
\`\`\`
|
|
193
|
+
|
|
194
|
+
Run \`squad extract\` to review and merge these to your personal squad.
|
|
195
195
|
`;
|
|
196
196
|
/**
|
|
197
197
|
* Patch the Scribe charter in the copied squad with consult mode instructions.
|
|
@@ -682,14 +682,14 @@ function formatLogHeader(result, date) {
|
|
|
682
682
|
? `**Repository:** ${result.repoUrl}\n`
|
|
683
683
|
: '';
|
|
684
684
|
const licenseName = result.license.spdxId || result.license.name || result.license.type;
|
|
685
|
-
return `# ${result.projectName}
|
|
686
|
-
|
|
687
|
-
${repoLine}**First consulted:** ${date}
|
|
688
|
-
**Last session:** ${date}
|
|
689
|
-
**License:** ${licenseName}
|
|
690
|
-
|
|
691
|
-
## Extracted Learnings
|
|
692
|
-
|
|
685
|
+
return `# ${result.projectName}
|
|
686
|
+
|
|
687
|
+
${repoLine}**First consulted:** ${date}
|
|
688
|
+
**Last session:** ${date}
|
|
689
|
+
**License:** ${licenseName}
|
|
690
|
+
|
|
691
|
+
## Extracted Learnings
|
|
692
|
+
|
|
693
693
|
`;
|
|
694
694
|
}
|
|
695
695
|
/**
|
|
@@ -697,16 +697,16 @@ ${repoLine}**First consulted:** ${date}
|
|
|
697
697
|
*/
|
|
698
698
|
function formatSessionEntry(result, date) {
|
|
699
699
|
if (result.extracted.length === 0) {
|
|
700
|
-
return `### ${date}
|
|
701
|
-
- No learnings extracted
|
|
702
|
-
|
|
700
|
+
return `### ${date}
|
|
701
|
+
- No learnings extracted
|
|
702
|
+
|
|
703
703
|
`;
|
|
704
704
|
}
|
|
705
705
|
// Just list titles/filenames, not content
|
|
706
706
|
const lines = result.extracted.map(l => `- ${l.filename}`);
|
|
707
|
-
return `### ${date}
|
|
708
|
-
${lines.join('\n')}
|
|
709
|
-
|
|
707
|
+
return `### ${date}
|
|
708
|
+
${lines.join('\n')}
|
|
709
|
+
|
|
710
710
|
`;
|
|
711
711
|
}
|
|
712
712
|
// ============================================================================
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
[
|
|
2
|
-
"Fry",
|
|
3
|
-
"Leela",
|
|
4
|
-
"Bender",
|
|
5
|
-
"Farnsworth",
|
|
6
|
-
"Zoidberg",
|
|
7
|
-
"Amy",
|
|
8
|
-
"Zapp",
|
|
9
|
-
"Kif"
|
|
1
|
+
[
|
|
2
|
+
"Fry",
|
|
3
|
+
"Leela",
|
|
4
|
+
"Bender",
|
|
5
|
+
"Farnsworth",
|
|
6
|
+
"Zoidberg",
|
|
7
|
+
"Amy",
|
|
8
|
+
"Zapp",
|
|
9
|
+
"Kif"
|
|
10
10
|
]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{
|
|
2
|
-
"universe_usage_history": [],
|
|
3
|
-
"assignment_cast_snapshots": {}
|
|
4
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"universe_usage_history": [],
|
|
3
|
+
"assignment_cast_snapshots": {}
|
|
4
|
+
}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
{
|
|
2
|
-
"casting_policy_version": "1.1",
|
|
3
|
-
"allowlist_universes": [
|
|
4
|
-
"The Usual Suspects",
|
|
5
|
-
"Reservoir Dogs",
|
|
6
|
-
"Alien",
|
|
7
|
-
"Ocean's Eleven",
|
|
8
|
-
"Arrested Development",
|
|
9
|
-
"Star Wars",
|
|
10
|
-
"The Matrix",
|
|
11
|
-
"Firefly",
|
|
12
|
-
"The Goonies",
|
|
13
|
-
"The Simpsons",
|
|
14
|
-
"Breaking Bad",
|
|
15
|
-
"Lost",
|
|
16
|
-
"Marvel Cinematic Universe",
|
|
17
|
-
"DC Universe",
|
|
18
|
-
"Futurama"
|
|
19
|
-
],
|
|
20
|
-
"universe_capacity": {
|
|
21
|
-
"The Usual Suspects": 6,
|
|
22
|
-
"Reservoir Dogs": 8,
|
|
23
|
-
"Alien": 8,
|
|
24
|
-
"Ocean's Eleven": 14,
|
|
25
|
-
"Arrested Development": 15,
|
|
26
|
-
"Star Wars": 12,
|
|
27
|
-
"The Matrix": 10,
|
|
28
|
-
"Firefly": 10,
|
|
29
|
-
"The Goonies": 8,
|
|
30
|
-
"The Simpsons": 20,
|
|
31
|
-
"Breaking Bad": 12,
|
|
32
|
-
"Lost": 18,
|
|
33
|
-
"Marvel Cinematic Universe": 25,
|
|
34
|
-
"DC Universe": 18,
|
|
35
|
-
"Futurama": 12
|
|
36
|
-
}
|
|
37
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"casting_policy_version": "1.1",
|
|
3
|
+
"allowlist_universes": [
|
|
4
|
+
"The Usual Suspects",
|
|
5
|
+
"Reservoir Dogs",
|
|
6
|
+
"Alien",
|
|
7
|
+
"Ocean's Eleven",
|
|
8
|
+
"Arrested Development",
|
|
9
|
+
"Star Wars",
|
|
10
|
+
"The Matrix",
|
|
11
|
+
"Firefly",
|
|
12
|
+
"The Goonies",
|
|
13
|
+
"The Simpsons",
|
|
14
|
+
"Breaking Bad",
|
|
15
|
+
"Lost",
|
|
16
|
+
"Marvel Cinematic Universe",
|
|
17
|
+
"DC Universe",
|
|
18
|
+
"Futurama"
|
|
19
|
+
],
|
|
20
|
+
"universe_capacity": {
|
|
21
|
+
"The Usual Suspects": 6,
|
|
22
|
+
"Reservoir Dogs": 8,
|
|
23
|
+
"Alien": 8,
|
|
24
|
+
"Ocean's Eleven": 14,
|
|
25
|
+
"Arrested Development": 15,
|
|
26
|
+
"Star Wars": 12,
|
|
27
|
+
"The Matrix": 10,
|
|
28
|
+
"Firefly": 10,
|
|
29
|
+
"The Goonies": 8,
|
|
30
|
+
"The Simpsons": 20,
|
|
31
|
+
"Breaking Bad": 12,
|
|
32
|
+
"Lost": 18,
|
|
33
|
+
"Marvel Cinematic Universe": 25,
|
|
34
|
+
"DC Universe": 18,
|
|
35
|
+
"Futurama": 12
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
# Casting Reference
|
|
2
|
-
|
|
3
|
-
On-demand reference for Squad's casting system. Loaded during Init Mode or when adding team members.
|
|
4
|
-
|
|
5
|
-
## Universe Table
|
|
6
|
-
|
|
7
|
-
| Universe | Capacity | Shape Tags | Resonance Signals |
|
|
8
|
-
|---|---|---|---|
|
|
9
|
-
| The Usual Suspects | 6 | small, noir, ensemble | crime, heist, mystery, deception |
|
|
10
|
-
| Reservoir Dogs | 8 | small, noir, ensemble | crime, heist, tension, loyalty |
|
|
11
|
-
| Alien | 8 | small, sci-fi, survival | space, isolation, threat, engineering |
|
|
12
|
-
| Ocean's Eleven | 14 | medium, heist, ensemble | planning, coordination, roles, charm |
|
|
13
|
-
| Arrested Development | 15 | medium, comedy, ensemble | dysfunction, business, family, satire |
|
|
14
|
-
| Star Wars | 12 | medium, sci-fi, epic | conflict, mentorship, legacy, rebellion |
|
|
15
|
-
| The Matrix | 10 | medium, sci-fi, cyberpunk | systems, reality, hacking, philosophy |
|
|
16
|
-
| Firefly | 10 | medium, sci-fi, western | frontier, crew, independence, smuggling |
|
|
17
|
-
| The Goonies | 8 | small, adventure, ensemble | exploration, treasure, kids, teamwork |
|
|
18
|
-
| The Simpsons | 20 | large, comedy, ensemble | satire, community, family, absurdity |
|
|
19
|
-
| Breaking Bad | 12 | medium, drama, tension | chemistry, transformation, consequence, power |
|
|
20
|
-
| Lost | 18 | large, mystery, ensemble | survival, mystery, groups, leadership |
|
|
21
|
-
| Marvel Cinematic Universe | 25 | large, action, ensemble | heroism, teamwork, powers, scale |
|
|
22
|
-
| DC Universe | 18 | large, action, ensemble | justice, duality, powers, mythology |
|
|
23
|
-
| Futurama | 12 | medium, sci-fi, comedy | future, robots, space, absurdity |
|
|
24
|
-
|
|
25
|
-
**Total: 15 universes** — capacity range 6–25.
|
|
26
|
-
|
|
27
|
-
## Selection Algorithm
|
|
28
|
-
|
|
29
|
-
Universe selection is deterministic. Score each universe and pick the highest:
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
score = size_fit + shape_fit + resonance_fit + LRU
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
| Factor | Description |
|
|
36
|
-
|---|---|
|
|
37
|
-
| `size_fit` | How well the universe capacity matches the team size. Prefer universes where capacity ≥ agent_count with minimal waste. |
|
|
38
|
-
| `shape_fit` | Match universe shape tags against the assignment shape derived from the project description. |
|
|
39
|
-
| `resonance_fit` | Match universe resonance signals against session and repo context signals. |
|
|
40
|
-
| `LRU` | Least-recently-used bonus — prefer universes not used in recent assignments (from `history.json`). |
|
|
41
|
-
|
|
42
|
-
Same inputs → same choice (unless LRU changes between assignments).
|
|
43
|
-
|
|
44
|
-
## Casting State File Schemas
|
|
45
|
-
|
|
46
|
-
### policy.json
|
|
47
|
-
|
|
48
|
-
Source template: `.squad/templates/casting-policy.json`
|
|
49
|
-
Runtime location: `.squad/casting/policy.json`
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"casting_policy_version": "1.1",
|
|
54
|
-
"allowlist_universes": ["Universe Name", "..."],
|
|
55
|
-
"universe_capacity": {
|
|
56
|
-
"Universe Name": 10
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### registry.json
|
|
62
|
-
|
|
63
|
-
Source template: `.squad/templates/casting-registry.json`
|
|
64
|
-
Runtime location: `.squad/casting/registry.json`
|
|
65
|
-
|
|
66
|
-
```json
|
|
67
|
-
{
|
|
68
|
-
"agents": {
|
|
69
|
-
"agent-role-id": {
|
|
70
|
-
"persistent_name": "CharacterName",
|
|
71
|
-
"universe": "Universe Name",
|
|
72
|
-
"created_at": "ISO-8601",
|
|
73
|
-
"legacy_named": false,
|
|
74
|
-
"status": "active"
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### history.json
|
|
81
|
-
|
|
82
|
-
Source template: `.squad/templates/casting-history.json`
|
|
83
|
-
Runtime location: `.squad/casting/history.json`
|
|
84
|
-
|
|
85
|
-
```json
|
|
86
|
-
{
|
|
87
|
-
"universe_usage_history": [
|
|
88
|
-
{
|
|
89
|
-
"universe": "Universe Name",
|
|
90
|
-
"assignment_id": "unique-id",
|
|
91
|
-
"used_at": "ISO-8601"
|
|
92
|
-
}
|
|
93
|
-
],
|
|
94
|
-
"assignment_cast_snapshots": {
|
|
95
|
-
"assignment-id": {
|
|
96
|
-
"universe": "Universe Name",
|
|
97
|
-
"agents": {
|
|
98
|
-
"role-id": "CharacterName"
|
|
99
|
-
},
|
|
100
|
-
"created_at": "ISO-8601"
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
```
|
|
1
|
+
# Casting Reference
|
|
2
|
+
|
|
3
|
+
On-demand reference for Squad's casting system. Loaded during Init Mode or when adding team members.
|
|
4
|
+
|
|
5
|
+
## Universe Table
|
|
6
|
+
|
|
7
|
+
| Universe | Capacity | Shape Tags | Resonance Signals |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| The Usual Suspects | 6 | small, noir, ensemble | crime, heist, mystery, deception |
|
|
10
|
+
| Reservoir Dogs | 8 | small, noir, ensemble | crime, heist, tension, loyalty |
|
|
11
|
+
| Alien | 8 | small, sci-fi, survival | space, isolation, threat, engineering |
|
|
12
|
+
| Ocean's Eleven | 14 | medium, heist, ensemble | planning, coordination, roles, charm |
|
|
13
|
+
| Arrested Development | 15 | medium, comedy, ensemble | dysfunction, business, family, satire |
|
|
14
|
+
| Star Wars | 12 | medium, sci-fi, epic | conflict, mentorship, legacy, rebellion |
|
|
15
|
+
| The Matrix | 10 | medium, sci-fi, cyberpunk | systems, reality, hacking, philosophy |
|
|
16
|
+
| Firefly | 10 | medium, sci-fi, western | frontier, crew, independence, smuggling |
|
|
17
|
+
| The Goonies | 8 | small, adventure, ensemble | exploration, treasure, kids, teamwork |
|
|
18
|
+
| The Simpsons | 20 | large, comedy, ensemble | satire, community, family, absurdity |
|
|
19
|
+
| Breaking Bad | 12 | medium, drama, tension | chemistry, transformation, consequence, power |
|
|
20
|
+
| Lost | 18 | large, mystery, ensemble | survival, mystery, groups, leadership |
|
|
21
|
+
| Marvel Cinematic Universe | 25 | large, action, ensemble | heroism, teamwork, powers, scale |
|
|
22
|
+
| DC Universe | 18 | large, action, ensemble | justice, duality, powers, mythology |
|
|
23
|
+
| Futurama | 12 | medium, sci-fi, comedy | future, robots, space, absurdity |
|
|
24
|
+
|
|
25
|
+
**Total: 15 universes** — capacity range 6–25.
|
|
26
|
+
|
|
27
|
+
## Selection Algorithm
|
|
28
|
+
|
|
29
|
+
Universe selection is deterministic. Score each universe and pick the highest:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
score = size_fit + shape_fit + resonance_fit + LRU
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
| Factor | Description |
|
|
36
|
+
|---|---|
|
|
37
|
+
| `size_fit` | How well the universe capacity matches the team size. Prefer universes where capacity ≥ agent_count with minimal waste. |
|
|
38
|
+
| `shape_fit` | Match universe shape tags against the assignment shape derived from the project description. |
|
|
39
|
+
| `resonance_fit` | Match universe resonance signals against session and repo context signals. |
|
|
40
|
+
| `LRU` | Least-recently-used bonus — prefer universes not used in recent assignments (from `history.json`). |
|
|
41
|
+
|
|
42
|
+
Same inputs → same choice (unless LRU changes between assignments).
|
|
43
|
+
|
|
44
|
+
## Casting State File Schemas
|
|
45
|
+
|
|
46
|
+
### policy.json
|
|
47
|
+
|
|
48
|
+
Source template: `.squad/templates/casting-policy.json`
|
|
49
|
+
Runtime location: `.squad/casting/policy.json`
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"casting_policy_version": "1.1",
|
|
54
|
+
"allowlist_universes": ["Universe Name", "..."],
|
|
55
|
+
"universe_capacity": {
|
|
56
|
+
"Universe Name": 10
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### registry.json
|
|
62
|
+
|
|
63
|
+
Source template: `.squad/templates/casting-registry.json`
|
|
64
|
+
Runtime location: `.squad/casting/registry.json`
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"agents": {
|
|
69
|
+
"agent-role-id": {
|
|
70
|
+
"persistent_name": "CharacterName",
|
|
71
|
+
"universe": "Universe Name",
|
|
72
|
+
"created_at": "ISO-8601",
|
|
73
|
+
"legacy_named": false,
|
|
74
|
+
"status": "active"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### history.json
|
|
81
|
+
|
|
82
|
+
Source template: `.squad/templates/casting-history.json`
|
|
83
|
+
Runtime location: `.squad/casting/history.json`
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"universe_usage_history": [
|
|
88
|
+
{
|
|
89
|
+
"universe": "Universe Name",
|
|
90
|
+
"assignment_id": "unique-id",
|
|
91
|
+
"used_at": "ISO-8601"
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"assignment_cast_snapshots": {
|
|
95
|
+
"assignment-id": {
|
|
96
|
+
"universe": "Universe Name",
|
|
97
|
+
"agents": {
|
|
98
|
+
"role-id": "CharacterName"
|
|
99
|
+
},
|
|
100
|
+
"created_at": "ISO-8601"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
{
|
|
2
|
-
"agents": {}
|
|
3
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"agents": {}
|
|
3
|
+
}
|
package/templates/ceremonies.md
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# Ceremonies
|
|
2
|
-
|
|
3
|
-
> Team meetings that happen before or after work. Each squad configures their own.
|
|
4
|
-
|
|
5
|
-
## Design Review
|
|
6
|
-
|
|
7
|
-
| Field | Value |
|
|
8
|
-
|-------|-------|
|
|
9
|
-
| **Trigger** | auto |
|
|
10
|
-
| **When** | before |
|
|
11
|
-
| **Condition** | multi-agent task involving 2+ agents modifying shared systems |
|
|
12
|
-
| **Facilitator** | lead |
|
|
13
|
-
| **Participants** | all-relevant |
|
|
14
|
-
| **Time budget** | focused |
|
|
15
|
-
| **Enabled** | ✅ yes |
|
|
16
|
-
|
|
17
|
-
**Agenda:**
|
|
18
|
-
1. Review the task and requirements
|
|
19
|
-
2. Agree on interfaces and contracts between components
|
|
20
|
-
3. Identify risks and edge cases
|
|
21
|
-
4. Assign action items
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Retrospective
|
|
26
|
-
|
|
27
|
-
| Field | Value |
|
|
28
|
-
|-------|-------|
|
|
29
|
-
| **Trigger** | auto |
|
|
30
|
-
| **When** | after |
|
|
31
|
-
| **Condition** | build failure, test failure, or reviewer rejection |
|
|
32
|
-
| **Facilitator** | lead |
|
|
33
|
-
| **Participants** | all-involved |
|
|
34
|
-
| **Time budget** | focused |
|
|
35
|
-
| **Enabled** | ✅ yes |
|
|
36
|
-
|
|
37
|
-
**Agenda:**
|
|
38
|
-
1. What happened? (facts only)
|
|
39
|
-
2. Root cause analysis
|
|
40
|
-
3. What should change?
|
|
41
|
-
4. Action items for next iteration
|
|
1
|
+
# Ceremonies
|
|
2
|
+
|
|
3
|
+
> Team meetings that happen before or after work. Each squad configures their own.
|
|
4
|
+
|
|
5
|
+
## Design Review
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
|-------|-------|
|
|
9
|
+
| **Trigger** | auto |
|
|
10
|
+
| **When** | before |
|
|
11
|
+
| **Condition** | multi-agent task involving 2+ agents modifying shared systems |
|
|
12
|
+
| **Facilitator** | lead |
|
|
13
|
+
| **Participants** | all-relevant |
|
|
14
|
+
| **Time budget** | focused |
|
|
15
|
+
| **Enabled** | ✅ yes |
|
|
16
|
+
|
|
17
|
+
**Agenda:**
|
|
18
|
+
1. Review the task and requirements
|
|
19
|
+
2. Agree on interfaces and contracts between components
|
|
20
|
+
3. Identify risks and edge cases
|
|
21
|
+
4. Assign action items
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Retrospective
|
|
26
|
+
|
|
27
|
+
| Field | Value |
|
|
28
|
+
|-------|-------|
|
|
29
|
+
| **Trigger** | auto |
|
|
30
|
+
| **When** | after |
|
|
31
|
+
| **Condition** | build failure, test failure, or reviewer rejection |
|
|
32
|
+
| **Facilitator** | lead |
|
|
33
|
+
| **Participants** | all-involved |
|
|
34
|
+
| **Time budget** | focused |
|
|
35
|
+
| **Enabled** | ✅ yes |
|
|
36
|
+
|
|
37
|
+
**Agenda:**
|
|
38
|
+
1. What happened? (facts only)
|
|
39
|
+
2. Root cause analysis
|
|
40
|
+
3. What should change?
|
|
41
|
+
4. Action items for next iteration
|