@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.
Files changed (76) hide show
  1. package/README.md +296 -296
  2. package/dist/agents/history-shadow.js +30 -30
  3. package/dist/build/github-dist.js +42 -42
  4. package/dist/config/init.js +173 -173
  5. package/dist/sharing/consult.js +78 -78
  6. package/package.json +1 -1
  7. package/templates/casting/Futurama.json +9 -9
  8. package/templates/casting-history.json +4 -4
  9. package/templates/casting-policy.json +37 -37
  10. package/templates/casting-reference.md +104 -104
  11. package/templates/casting-registry.json +3 -3
  12. package/templates/ceremonies.md +41 -41
  13. package/templates/charter.md +53 -53
  14. package/templates/constraint-tracking.md +38 -38
  15. package/templates/cooperative-rate-limiting.md +229 -229
  16. package/templates/copilot-instructions.md +46 -46
  17. package/templates/history.md +10 -10
  18. package/templates/identity/now.md +9 -9
  19. package/templates/identity/wisdom.md +15 -15
  20. package/templates/issue-lifecycle.md +412 -412
  21. package/templates/keda-scaler.md +164 -164
  22. package/templates/machine-capabilities.md +74 -74
  23. package/templates/mcp-config.md +90 -90
  24. package/templates/multi-agent-format.md +28 -28
  25. package/templates/plugin-marketplace.md +49 -49
  26. package/templates/ralph-circuit-breaker.md +313 -313
  27. package/templates/raw-agent-output.md +37 -37
  28. package/templates/roster.md +60 -60
  29. package/templates/routing.md +39 -39
  30. package/templates/run-output.md +50 -50
  31. package/templates/schedule.json +19 -19
  32. package/templates/scribe-charter.md +119 -119
  33. package/templates/skill.md +24 -24
  34. package/templates/skills/agent-collaboration/SKILL.md +42 -42
  35. package/templates/skills/agent-conduct/SKILL.md +24 -24
  36. package/templates/skills/architectural-proposals/SKILL.md +151 -151
  37. package/templates/skills/ci-validation-gates/SKILL.md +84 -84
  38. package/templates/skills/cli-wiring/SKILL.md +47 -47
  39. package/templates/skills/client-compatibility/SKILL.md +89 -89
  40. package/templates/skills/cross-squad/SKILL.md +114 -114
  41. package/templates/skills/distributed-mesh/SKILL.md +287 -287
  42. package/templates/skills/distributed-mesh/mesh.json.example +30 -30
  43. package/templates/skills/distributed-mesh/sync-mesh.ps1 +111 -111
  44. package/templates/skills/distributed-mesh/sync-mesh.sh +104 -104
  45. package/templates/skills/docs-standards/SKILL.md +71 -71
  46. package/templates/skills/economy-mode/SKILL.md +114 -114
  47. package/templates/skills/external-comms/SKILL.md +329 -329
  48. package/templates/skills/gh-auth-isolation/SKILL.md +183 -183
  49. package/templates/skills/git-workflow/SKILL.md +204 -204
  50. package/templates/skills/github-multi-account/SKILL.md +95 -95
  51. package/templates/skills/history-hygiene/SKILL.md +36 -36
  52. package/templates/skills/humanizer/SKILL.md +105 -105
  53. package/templates/skills/init-mode/SKILL.md +102 -102
  54. package/templates/skills/model-selection/SKILL.md +117 -117
  55. package/templates/skills/nap/SKILL.md +24 -24
  56. package/templates/skills/personal-squad/SKILL.md +57 -57
  57. package/templates/skills/project-conventions/SKILL.md +56 -56
  58. package/templates/skills/release-process/SKILL.md +423 -423
  59. package/templates/skills/reskill/SKILL.md +92 -92
  60. package/templates/skills/reviewer-protocol/SKILL.md +79 -79
  61. package/templates/skills/secret-handling/SKILL.md +200 -200
  62. package/templates/skills/session-recovery/SKILL.md +155 -155
  63. package/templates/skills/squad-conventions/SKILL.md +69 -69
  64. package/templates/skills/test-discipline/SKILL.md +37 -37
  65. package/templates/skills/windows-compatibility/SKILL.md +74 -74
  66. package/templates/workflows/squad-ci.yml +24 -24
  67. package/templates/workflows/squad-docs.yml +54 -54
  68. package/templates/workflows/squad-heartbeat.yml +171 -171
  69. package/templates/workflows/squad-insider-release.yml +61 -61
  70. package/templates/workflows/squad-issue-assign.yml +161 -161
  71. package/templates/workflows/squad-label-enforce.yml +181 -181
  72. package/templates/workflows/squad-preview.yml +55 -55
  73. package/templates/workflows/squad-promote.yml +120 -120
  74. package/templates/workflows/squad-release.yml +77 -77
  75. package/templates/workflows/squad-triage.yml +260 -260
  76. package/templates/workflows/sync-squad-labels.yml +169 -169
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@bradygaster/squad-sdk",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "Squad SDK — Programmable multi-agent runtime for GitHub Copilot",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -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
+ }
@@ -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