@bradygaster/squad-cli 0.9.6-insider.2 → 0.10.0-insider.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 (188) hide show
  1. package/CHANGELOG.md +555 -0
  2. package/README.md +5 -5
  3. package/dist/cli/commands/build.js +3 -3
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/copilot-bridge.d.ts.map +1 -1
  6. package/dist/cli/commands/copilot-bridge.js +5 -1
  7. package/dist/cli/commands/copilot-bridge.js.map +1 -1
  8. package/dist/cli/commands/cross-squad.d.ts +15 -2
  9. package/dist/cli/commands/cross-squad.d.ts.map +1 -1
  10. package/dist/cli/commands/cross-squad.js +78 -4
  11. package/dist/cli/commands/cross-squad.js.map +1 -1
  12. package/dist/cli/commands/doctor.d.ts +6 -0
  13. package/dist/cli/commands/doctor.d.ts.map +1 -1
  14. package/dist/cli/commands/doctor.js +120 -5
  15. package/dist/cli/commands/doctor.js.map +1 -1
  16. package/dist/cli/commands/export.d.ts +7 -3
  17. package/dist/cli/commands/export.d.ts.map +1 -1
  18. package/dist/cli/commands/export.js +68 -16
  19. package/dist/cli/commands/export.js.map +1 -1
  20. package/dist/cli/commands/import.d.ts +7 -3
  21. package/dist/cli/commands/import.d.ts.map +1 -1
  22. package/dist/cli/commands/import.js +140 -42
  23. package/dist/cli/commands/import.js.map +1 -1
  24. package/dist/cli/commands/install-hooks.d.ts.map +1 -1
  25. package/dist/cli/commands/install-hooks.js +50 -5
  26. package/dist/cli/commands/install-hooks.js.map +1 -1
  27. package/dist/cli/commands/link.d.ts.map +1 -1
  28. package/dist/cli/commands/link.js +7 -1
  29. package/dist/cli/commands/link.js.map +1 -1
  30. package/dist/cli/commands/loop.d.ts.map +1 -1
  31. package/dist/cli/commands/loop.js +7 -5
  32. package/dist/cli/commands/loop.js.map +1 -1
  33. package/dist/cli/commands/memory.d.ts +2 -0
  34. package/dist/cli/commands/memory.d.ts.map +1 -0
  35. package/dist/cli/commands/memory.js +304 -0
  36. package/dist/cli/commands/memory.js.map +1 -0
  37. package/dist/cli/commands/migrate-backend.d.ts +36 -5
  38. package/dist/cli/commands/migrate-backend.d.ts.map +1 -1
  39. package/dist/cli/commands/migrate-backend.js +250 -40
  40. package/dist/cli/commands/migrate-backend.js.map +1 -1
  41. package/dist/cli/commands/notes.d.ts +27 -0
  42. package/dist/cli/commands/notes.d.ts.map +1 -0
  43. package/dist/cli/commands/notes.js +222 -0
  44. package/dist/cli/commands/notes.js.map +1 -0
  45. package/dist/cli/commands/plugin.d.ts.map +1 -1
  46. package/dist/cli/commands/plugin.js +423 -8
  47. package/dist/cli/commands/plugin.js.map +1 -1
  48. package/dist/cli/commands/skill.d.ts +31 -0
  49. package/dist/cli/commands/skill.d.ts.map +1 -0
  50. package/dist/cli/commands/skill.js +498 -0
  51. package/dist/cli/commands/skill.js.map +1 -0
  52. package/dist/cli/commands/start.d.ts.map +1 -1
  53. package/dist/cli/commands/start.js +9 -1
  54. package/dist/cli/commands/start.js.map +1 -1
  55. package/dist/cli/commands/state-mcp.d.ts +25 -0
  56. package/dist/cli/commands/state-mcp.d.ts.map +1 -0
  57. package/dist/cli/commands/state-mcp.js +174 -0
  58. package/dist/cli/commands/state-mcp.js.map +1 -0
  59. package/dist/cli/commands/watch/agent-spawn.d.ts +62 -0
  60. package/dist/cli/commands/watch/agent-spawn.d.ts.map +1 -0
  61. package/dist/cli/commands/watch/agent-spawn.js +127 -0
  62. package/dist/cli/commands/watch/agent-spawn.js.map +1 -0
  63. package/dist/cli/commands/watch/capabilities/board.d.ts.map +1 -1
  64. package/dist/cli/commands/watch/capabilities/board.js +2 -1
  65. package/dist/cli/commands/watch/capabilities/board.js.map +1 -1
  66. package/dist/cli/commands/watch/capabilities/decision-hygiene.d.ts.map +1 -1
  67. package/dist/cli/commands/watch/capabilities/decision-hygiene.js +3 -2
  68. package/dist/cli/commands/watch/capabilities/decision-hygiene.js.map +1 -1
  69. package/dist/cli/commands/watch/capabilities/execute.d.ts.map +1 -1
  70. package/dist/cli/commands/watch/capabilities/execute.js +14 -2
  71. package/dist/cli/commands/watch/capabilities/execute.js.map +1 -1
  72. package/dist/cli/commands/watch/capabilities/index.d.ts.map +1 -1
  73. package/dist/cli/commands/watch/capabilities/index.js +2 -0
  74. package/dist/cli/commands/watch/capabilities/index.js.map +1 -1
  75. package/dist/cli/commands/watch/capabilities/monitor-email.d.ts +1 -1
  76. package/dist/cli/commands/watch/capabilities/monitor-email.d.ts.map +1 -1
  77. package/dist/cli/commands/watch/capabilities/monitor-email.js +21 -4
  78. package/dist/cli/commands/watch/capabilities/monitor-email.js.map +1 -1
  79. package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts +1 -1
  80. package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts.map +1 -1
  81. package/dist/cli/commands/watch/capabilities/monitor-teams.js +21 -5
  82. package/dist/cli/commands/watch/capabilities/monitor-teams.js.map +1 -1
  83. package/dist/cli/commands/watch/capabilities/notes-promote.d.ts +11 -0
  84. package/dist/cli/commands/watch/capabilities/notes-promote.d.ts.map +1 -0
  85. package/dist/cli/commands/watch/capabilities/notes-promote.js +124 -0
  86. package/dist/cli/commands/watch/capabilities/notes-promote.js.map +1 -0
  87. package/dist/cli/commands/watch/capabilities/retro.d.ts.map +1 -1
  88. package/dist/cli/commands/watch/capabilities/retro.js +3 -2
  89. package/dist/cli/commands/watch/capabilities/retro.js.map +1 -1
  90. package/dist/cli/commands/watch/capabilities/wave-dispatch.d.ts.map +1 -1
  91. package/dist/cli/commands/watch/capabilities/wave-dispatch.js +2 -1
  92. package/dist/cli/commands/watch/capabilities/wave-dispatch.js.map +1 -1
  93. package/dist/cli/commands/watch/index.d.ts.map +1 -1
  94. package/dist/cli/commands/watch/index.js +16 -12
  95. package/dist/cli/commands/watch/index.js.map +1 -1
  96. package/dist/cli/core/cast.d.ts.map +1 -1
  97. package/dist/cli/core/cast.js +216 -1
  98. package/dist/cli/core/cast.js.map +1 -1
  99. package/dist/cli/core/command-help.d.ts +44 -0
  100. package/dist/cli/core/command-help.d.ts.map +1 -0
  101. package/dist/cli/core/command-help.js +401 -0
  102. package/dist/cli/core/command-help.js.map +1 -0
  103. package/dist/cli/core/copilot-invocation.d.ts +57 -0
  104. package/dist/cli/core/copilot-invocation.d.ts.map +1 -0
  105. package/dist/cli/core/copilot-invocation.js +84 -0
  106. package/dist/cli/core/copilot-invocation.js.map +1 -0
  107. package/dist/cli/core/effective-squad-dir.d.ts +33 -0
  108. package/dist/cli/core/effective-squad-dir.d.ts.map +1 -0
  109. package/dist/cli/core/effective-squad-dir.js +37 -0
  110. package/dist/cli/core/effective-squad-dir.js.map +1 -0
  111. package/dist/cli/core/init.d.ts +2 -0
  112. package/dist/cli/core/init.d.ts.map +1 -1
  113. package/dist/cli/core/init.js +130 -1
  114. package/dist/cli/core/init.js.map +1 -1
  115. package/dist/cli/core/mcp-root.d.ts +73 -0
  116. package/dist/cli/core/mcp-root.d.ts.map +1 -0
  117. package/dist/cli/core/mcp-root.js +195 -0
  118. package/dist/cli/core/mcp-root.js.map +1 -0
  119. package/dist/cli/core/mcp-spec.d.ts +48 -0
  120. package/dist/cli/core/mcp-spec.d.ts.map +1 -0
  121. package/dist/cli/core/mcp-spec.js +62 -0
  122. package/dist/cli/core/mcp-spec.js.map +1 -0
  123. package/dist/cli/core/npm-registry.d.ts +25 -0
  124. package/dist/cli/core/npm-registry.d.ts.map +1 -0
  125. package/dist/cli/core/npm-registry.js +65 -0
  126. package/dist/cli/core/npm-registry.js.map +1 -0
  127. package/dist/cli/core/templates.d.ts.map +1 -1
  128. package/dist/cli/core/templates.js +102 -24
  129. package/dist/cli/core/templates.js.map +1 -1
  130. package/dist/cli/core/upgrade.d.ts +29 -0
  131. package/dist/cli/core/upgrade.d.ts.map +1 -1
  132. package/dist/cli/core/upgrade.js +413 -15
  133. package/dist/cli/core/upgrade.js.map +1 -1
  134. package/dist/cli/index.d.ts +1 -0
  135. package/dist/cli/index.d.ts.map +1 -1
  136. package/dist/cli/index.js +1 -0
  137. package/dist/cli/index.js.map +1 -1
  138. package/dist/cli/shell/components/App.js +1 -1
  139. package/dist/cli/shell/components/App.js.map +1 -1
  140. package/dist/cli/shell/components/MessageStream.js +2 -2
  141. package/dist/cli/shell/components/MessageStream.js.map +1 -1
  142. package/dist/cli/shell/coordinator.d.ts.map +1 -1
  143. package/dist/cli/shell/coordinator.js +11 -5
  144. package/dist/cli/shell/coordinator.js.map +1 -1
  145. package/dist/cli/shell/index.d.ts.map +1 -1
  146. package/dist/cli/shell/index.js +14 -7
  147. package/dist/cli/shell/index.js.map +1 -1
  148. package/dist/cli/shell/lifecycle.d.ts.map +1 -1
  149. package/dist/cli/shell/lifecycle.js +12 -7
  150. package/dist/cli/shell/lifecycle.js.map +1 -1
  151. package/dist/cli/shell/session-store.d.ts +4 -4
  152. package/dist/cli/shell/session-store.d.ts.map +1 -1
  153. package/dist/cli/shell/session-store.js +11 -11
  154. package/dist/cli/shell/session-store.js.map +1 -1
  155. package/dist/cli-entry.js +171 -50
  156. package/dist/cli-entry.js.map +1 -1
  157. package/package.json +9 -4
  158. package/scripts/patch-esm-imports.mjs +3 -1
  159. package/templates/after-agent-reference.md +64 -0
  160. package/templates/ceremony-reference.md +82 -0
  161. package/templates/client-compatibility-reference.md +46 -0
  162. package/templates/copilot-agent.md +96 -0
  163. package/templates/copilot-instructions.md +14 -0
  164. package/templates/fact-checker-policy.md +104 -0
  165. package/templates/model-selection-reference.md +101 -0
  166. package/templates/prd-intake.md +105 -0
  167. package/templates/rai-charter.md +110 -0
  168. package/templates/rai-policy.md +103 -0
  169. package/templates/ralph-reference.md +141 -0
  170. package/templates/routing.md +1 -0
  171. package/templates/scribe-charter.md +18 -151
  172. package/templates/session-init-reference.md +199 -0
  173. package/templates/skills/cross-squad/SKILL.md +66 -6
  174. package/templates/skills/cross-squad-communication/SKILL.md +399 -0
  175. package/templates/skills/e2e-template-testing/SKILL.md +557 -0
  176. package/templates/skills/fact-checking/SKILL.md +61 -0
  177. package/templates/skills/release-process/SKILL.md +2 -2
  178. package/templates/skills/squad/SKILL.md +299 -0
  179. package/templates/skills/squad-help/SKILL.md +97 -0
  180. package/templates/skills/squad-version-check/SKILL.md +169 -0
  181. package/templates/skills/tiered-memory/SKILL.md +31 -44
  182. package/templates/spawn-reference.md +131 -0
  183. package/templates/squad.agent.md.template +306 -618
  184. package/templates/workflow-wiring-appendix-a-code-reviewer.md +131 -0
  185. package/templates/workflow-wiring-appendix-b-documenter.md +140 -0
  186. package/templates/workflow-wiring-guide.md +276 -0
  187. package/templates/workflows/squad-heartbeat.yml +167 -167
  188. package/templates/worktree-reference.md +126 -0
@@ -0,0 +1,299 @@
1
+ ---
2
+ name: squad
3
+ description: >-
4
+ Squad's command catalog and interactive menu. Invoke via /squad (slash command) or natural language ("squad commands", "what can squad do", "show me squad options"). Presents categorized operations (Install & Upgrade, Team Management, Issues & PRs, Plugins & Skills, Model & Cost, Sessions & State) as an interactive picker. Routes to the right squad CLI command or the Squad coordinator agent.
5
+ user-invocable: true
6
+ allowedTools: []
7
+ ---
8
+
9
+ ## Menu Presentation Rules
10
+
11
+ When the user triggers this skill (via `/squad` slash command, "squad commands", "help", "what can squad do", etc.):
12
+
13
+ 1. **Category-level menu first.** Present category names as an `ask_user` choice list:
14
+ ```
15
+ 📋 Squad Commands — pick a category:
16
+ 1. Install & Upgrade
17
+ 2. Team Management
18
+ 3. Issues & PRs
19
+ 4. Plugins & Skills
20
+ 5. Model & Cost
21
+ 6. Sessions & State
22
+ ```
23
+ 2. **Drill-down.** After selection, show operation titles in that category as a second `ask_user` list.
24
+ 3. **Direct match skips the menu.** If the user says "how do I upgrade with state backend," match to the specific entry and go straight to argument collection.
25
+ 4. **Compact fallback.** If `ask_user` is unavailable, render as a markdown table instead.
26
+ 5. **Back / Cancel.** Include "← Back to categories" in sub-menus. Include "Cancel" in confirmation prompts. Respect "never mind" / "cancel" at any point.
27
+
28
+ **Argument collection:** For entries with `args`, iterate the list sequentially. Use `ask_user` with choices when `choices` is provided; free-text prompt otherwise. If the user says "just do it" or "defaults are fine," skip remaining args and use their defaults.
29
+
30
+ **Confirmation template:**
31
+ ```
32
+ ⚠️ This will {action-description}.
33
+ {what will change}
34
+ Proceed? (yes / no)
35
+ ```
36
+
37
+ ---
38
+
39
+ ## Install & Upgrade
40
+
41
+ ### Upgrade Squad CLI
42
+
43
+ - **intent:** upgrade squad, update squad, install latest version, get new version
44
+ - **summary:** Upgrade Squad CLI to the latest version for your channel
45
+ - **action:** shell
46
+ - **command:** squad upgrade
47
+ - **args:**
48
+ - `state-backend`: Which state backend? | choices: {worktree, git-notes, orphan, two-layer} | default: (keep current)
49
+ - **confirm:** false
50
+ - **platform_caveats:** Requires terminal. In VS Code, open the integrated terminal and run the command directly.
51
+
52
+ ### Initialize Squad
53
+
54
+ - **intent:** set up squad, initialize squad, create team, start squad in this project
55
+ - **summary:** Scaffold Squad in the current directory (idempotent)
56
+ - **action:** shell
57
+ - **command:** squad init
58
+ - **args:** (none)
59
+ - **confirm:** false
60
+ - **platform_caveats:** Requires terminal. Recommend a standalone terminal for best results.
61
+
62
+ ### Switch State Backend
63
+
64
+ - **intent:** switch state backend, change state storage, use git-notes, use orphan branch
65
+ - **summary:** Change where Squad stores mutable state (config.json)
66
+ - **action:** file-edit
67
+ - **command:** .squad/config.json → stateBackend
68
+ - **args:**
69
+ - `stateBackend`: Which state backend? | choices: {worktree, git-notes, orphan, two-layer} | default: (keep current)
70
+ - **confirm:** true
71
+ - **platform_caveats:** May require migration if switching away from worktree. Show current value and new value before confirming.
72
+
73
+ ---
74
+
75
+ ## Team Management
76
+
77
+ ### Add Team Member
78
+
79
+ - **intent:** add team member, hire agent, add agent, add developer, recruit
80
+ - **summary:** Add a new agent to the team roster
81
+ - **action:** coordinator
82
+ - **command:** Add Team Member flow (Init Mode / Team Mode)
83
+ - **args:**
84
+ - `role`: What role should this agent fill? (e.g., Frontend Dev, Backend Dev, QA Engineer)
85
+ - `name`: Preferred name or casting universe? | default: (auto-cast from active universe)
86
+ - **confirm:** false
87
+
88
+ ### Remove Team Member
89
+
90
+ - **intent:** remove team member, fire agent, delete agent, remove developer
91
+ - **summary:** Remove an agent and delete their charter and history files
92
+ - **action:** coordinator
93
+ - **command:** Remove Team Member flow
94
+ - **args:**
95
+ - `member`: Which team member to remove? (name or role)
96
+ - **confirm:** true
97
+
98
+ ### Reassign Roles
99
+
100
+ - **intent:** reassign role, change role, swap roles, update team member role
101
+ - **summary:** Update a team member's role in team.md and their charter
102
+ - **action:** coordinator
103
+ - **command:** Update team.md roster + charter.md
104
+ - **args:**
105
+ - `member`: Which team member?
106
+ - `newRole`: New role?
107
+ - **confirm:** false
108
+
109
+ ### Show Roster
110
+
111
+ - **intent:** show roster, who is on the team, list team members, show team, capability profile
112
+ - **summary:** Display the current team roster and capability profile
113
+ - **action:** coordinator
114
+ - **command:** Direct Mode — read team.md, answer
115
+ - **args:** (none)
116
+ - **confirm:** false
117
+
118
+ ---
119
+
120
+ ## Issues & PRs
121
+
122
+ ### Connect GitHub Repo
123
+
124
+ - **intent:** connect github, enable issues, set up issues, link repository, github issues mode
125
+ - **summary:** Connect this project to GitHub Issues via gh auth
126
+ - **action:** coordinator
127
+ - **command:** GitHub Issues Mode (connection flow)
128
+ - **args:** (none)
129
+ - **confirm:** false
130
+ - **platform_caveats:** Requires `gh auth login` to have been run in the terminal.
131
+
132
+ ### Triage Issues
133
+
134
+ - **intent:** triage issues, review issues, assign issues, label issues
135
+ - **summary:** Run the Lead triage flow on open GitHub issues
136
+ - **action:** coordinator
137
+ - **command:** GitHub Issues Mode → Lead triage
138
+ - **args:** (none)
139
+ - **confirm:** false
140
+
141
+ ### Activate Ralph
142
+
143
+ - **intent:** activate ralph, start ralph, ralph go, start work monitor, start auto-work
144
+ - **summary:** Activate Ralph — Work Monitor — to pick up and run queued issues
145
+ - **action:** coordinator
146
+ - **command:** Ralph — Work Monitor triggers
147
+ - **args:** (none)
148
+ - **confirm:** false
149
+
150
+ ### Set Ralph Polling Interval
151
+
152
+ - **intent:** set ralph interval, change ralph timing, how often does ralph check, ralph every N minutes
153
+ - **summary:** Tell Ralph how frequently to poll for new work
154
+ - **action:** coordinator
155
+ - **command:** Ralph trigger: "Ralph, check every N minutes"
156
+ - **args:**
157
+ - `interval`: How often should Ralph poll? (in minutes) | default: 10
158
+ - **confirm:** false
159
+
160
+ ### Start Squad Watch
161
+
162
+ - **intent:** start watch, squad watch, monitor issues, watch for issues, auto-triage
163
+ - **summary:** Start squad watch to continuously poll and triage issues
164
+ - **action:** shell
165
+ - **command:** squad watch
166
+ - **args:**
167
+ - `interval`: Poll interval in minutes | default: 10
168
+ - **confirm:** false
169
+ - **platform_caveats:** CLI-only — long-running foreground process. Not viable in VS Code without an integrated terminal. Run: `squad watch --interval {n}` in your terminal.
170
+
171
+ ---
172
+
173
+ ## Plugins & Skills
174
+
175
+ ### Browse Plugin Marketplace
176
+
177
+ - **intent:** browse plugins, explore plugins, what plugins are available, plugin marketplace
178
+ - **summary:** Browse available plugins in the Squad marketplace
179
+ - **action:** shell
180
+ - **command:** squad plugin marketplace browse
181
+ - **args:**
182
+ - `name`: Plugin name to search for | default: (browse all)
183
+ - **confirm:** false
184
+
185
+ ### Add Marketplace Plugin
186
+
187
+ - **intent:** add plugin, install plugin, get plugin from marketplace
188
+ - **summary:** Add a plugin from the marketplace to this Squad
189
+ - **action:** shell
190
+ - **command:** squad plugin marketplace add
191
+ - **args:**
192
+ - `plugin`: Plugin owner/repo (e.g., owner/plugin-name)
193
+ - **confirm:** false
194
+
195
+ ### Remove Marketplace Plugin
196
+
197
+ - **intent:** remove plugin, uninstall plugin, delete plugin
198
+ - **summary:** Remove an installed marketplace plugin
199
+ - **action:** shell
200
+ - **command:** squad plugin marketplace remove
201
+ - **args:**
202
+ - `name`: Plugin name to remove
203
+ - **confirm:** true
204
+
205
+ ### List Marketplace Plugins
206
+
207
+ - **intent:** list plugins, show installed plugins, what plugins do I have
208
+ - **summary:** List all plugins registered in this Squad
209
+ - **action:** shell
210
+ - **command:** squad plugin marketplace list
211
+ - **args:** (none)
212
+ - **confirm:** false
213
+
214
+ ### List Installed Skills
215
+
216
+ - **intent:** list skills, show skills, what skills are installed, skill catalog
217
+ - **summary:** List all skills installed in .squad/skills/ and .copilot/skills/
218
+ - **action:** coordinator
219
+ - **command:** Direct Mode — list .squad/skills/ and .copilot/skills/ directories
220
+ - **args:** (none)
221
+ - **confirm:** false
222
+
223
+ ---
224
+
225
+ ## Model & Cost
226
+
227
+ ### Set Default Model
228
+
229
+ - **intent:** set default model, change model, use gpt-4, use claude, switch model
230
+ - **summary:** Set the default model for all agents in config.json
231
+ - **action:** file-edit
232
+ - **command:** .squad/config.json → defaultModel
233
+ - **args:**
234
+ - `model`: Model name (e.g., gpt-4o, claude-sonnet-4.5, o3)
235
+ - **confirm:** false
236
+
237
+ ### Override Per-Agent Model
238
+
239
+ - **intent:** set model for agent, agent model override, use different model for one agent
240
+ - **summary:** Set a model override for a specific agent in config.json
241
+ - **action:** file-edit
242
+ - **command:** .squad/config.json → agentModelOverrides.{agentName}
243
+ - **args:**
244
+ - `agent`: Agent name (must match name in team.md)
245
+ - `model`: Model name (e.g., gpt-4o, claude-sonnet-4.5)
246
+ - **confirm:** false
247
+
248
+ ### Clear Model Preference
249
+
250
+ - **intent:** clear model, reset model, remove model preference, use default model
251
+ - **summary:** Remove a model override from config.json (reverts to system default)
252
+ - **action:** file-edit
253
+ - **command:** .squad/config.json → remove defaultModel or agentModelOverrides.{agentName}
254
+ - **args:**
255
+ - `scope`: Clear default or a specific agent? | choices: {default model, specific agent} | default: default model
256
+ - `agent`: Agent name (only if scope = specific agent)
257
+ - **confirm:** false
258
+
259
+ ---
260
+
261
+ ## Sessions & State
262
+
263
+ ### Catch-Up Summary
264
+
265
+ - **intent:** catch me up, what happened, status, what did the team do, session summary
266
+ - **summary:** Summarize recent agent activity and key decisions
267
+ - **action:** coordinator
268
+ - **command:** Session catch-up flow (lazy scan)
269
+ - **args:** (none)
270
+ - **confirm:** false
271
+
272
+ ### Show Recent Decisions
273
+
274
+ - **intent:** show decisions, recent decisions, what decisions were made, decision log
275
+ - **summary:** Display recent entries from .squad/decisions.md
276
+ - **action:** coordinator
277
+ - **command:** Direct Mode — read decisions.md, answer
278
+ - **args:** (none)
279
+ - **confirm:** false
280
+
281
+ ### Archive Old Decisions
282
+
283
+ - **intent:** archive decisions, clean up decisions, move old decisions, compact decisions
284
+ - **summary:** Move old decisions from decisions.md to decisions-archive.md
285
+ - **action:** coordinator
286
+ - **command:** Move entries older than threshold from .squad/decisions.md → .squad/decisions-archive.md
287
+ - **args:**
288
+ - `olderThan`: Archive decisions older than how many days? | default: 30
289
+ - **confirm:** true
290
+
291
+ ### Summarize Agent History
292
+
293
+ - **intent:** summarize history, what did agent do, agent history, compress history
294
+ - **summary:** Spawn an agent to summarize and compress a team member's history file
295
+ - **action:** coordinator
296
+ - **command:** Spawn agent with history.md summarization task
297
+ - **args:**
298
+ - `member`: Which team member's history to summarize?
299
+ - **confirm:** false
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: "squad-help"
3
+ description: "How to actually use Squad — Squad is a custom Copilot agent (invoked via the task tool with agent_type='Squad'), not a skill. This file explains the right invocation paths for setting up a team, listing squad commands, and initializing Squad in a new project."
4
+ allowedTools: []
5
+ confidence: high
6
+ domain: squad-onboarding
7
+ ---
8
+
9
+ # Skill: squad-help
10
+
11
+ > **Quick reference.** If you're reading this because a user said "use squad" or "squad" or "set up a squad", you're in the right place — read on for the correct invocation paths.
12
+
13
+ ---
14
+
15
+ ## Squad is a custom agent, not a skill
16
+
17
+ The Squad framework registers a **custom Copilot CLI agent** at `.github/agents/squad.agent.md`. The agent is named **`Squad`** and its description is *"Your AI team. Describe what you're building, get a team of specialists that live in your repo."*
18
+
19
+ Copilot CLI agents and skills are different things:
20
+
21
+ | Thing | How to invoke | Example |
22
+ |---|---|---|
23
+ | **Skill** | `skill(name)` tool call or natural-language match | `skill(squad-commands)` |
24
+ | **Agent** | `task` tool with `agent_type=<name>` | `task(name="...", agent_type="Squad", prompt="...")` |
25
+ | **Slash command** | Built-in CLI keyword | `/agent`, `/skills`, `/mcp` |
26
+
27
+ Calling `skill(Squad)` will fail with *"Skill not found: Squad"* because Squad is the agent, not a skill. (`/squad` as a slash command also does not exist — only built-in CLI keywords like `/agent`, `/skills`, `/mcp` are slash commands. There's no way to map a skill name to a slash command without a Copilot CLI feature change.)
28
+
29
+ ---
30
+
31
+ ## How to actually use Squad
32
+
33
+ Pick the path that matches the user's intent:
34
+
35
+ ### A) Invoke the Squad coordinator agent (most common)
36
+
37
+ The Squad coordinator orchestrates a team of specialists. It routes work to the right agent, scaffolds a team if none exists, and enforces handoffs.
38
+
39
+ ```text
40
+ task(
41
+ name="<short-task-name>",
42
+ agent_type="Squad",
43
+ prompt="<what you want the team to do>"
44
+ )
45
+ ```
46
+
47
+ Use this when the user says things like:
48
+ - *"Use Squad to build X"*
49
+ - *"Set up an AI team for this project"*
50
+ - *"Have the Squad coordinator design Y"*
51
+ - *"Spawn Squad"* / *"Squad, help me with ..."*
52
+
53
+ ### B) See what Squad commands exist
54
+
55
+ The `squad-commands` skill is a categorized catalog of common Squad operations. The coordinator presents it as an interactive menu.
56
+
57
+ Trigger by natural-language match: `"squad commands"`, `"what can squad do"`, `"show me squad options"`, `"slash commands"`, `"what commands are available"`.
58
+
59
+ Use this when the user says things like:
60
+ - *"What can Squad do?"*
61
+ - *"Show me the squad commands"*
62
+ - *"squad help"*
63
+
64
+ ### C) Initialize Squad in a fresh project
65
+
66
+ `squad init` is a **shell command**, not a tool call. The user runs it in their terminal in a project that has no `.squad/` directory yet.
67
+
68
+ ```bash
69
+ squad init
70
+ ```
71
+
72
+ Do **not** try to invoke this from inside an existing Copilot session — `.squad/` is already initialized if you're reading this file.
73
+
74
+ ---
75
+
76
+ ## What NOT to do
77
+
78
+ - ❌ Do not call `skill(Squad)`, `skill(squad)`, or `skill(squad-coordinator)` — Squad is not a skill.
79
+ - ❌ Do not type `/squad` expecting a slash command — slash commands are CLI keywords, not skill names. Use `/agent` (browse) or invoke the `Squad` agent via the `task` tool.
80
+ - ❌ Do not call `task(agent_type="Squad", …)` for tiny tasks the current agent can handle directly. Squad is for work that needs orchestration; trivial edits do not.
81
+
82
+ ---
83
+
84
+ ## How this skill was discovered
85
+
86
+ This skill ships from the Squad SDK templates and is wired into `MANIFEST_SKILL_NAMES`. It lives at `.copilot/skills/squad-help/SKILL.md` so the Copilot CLI's `/skills` loader picks it up alongside the other bundled Squad skills.
87
+
88
+ If you removed this skill on purpose, the model will fall back to its own reasoning and may make the lookup mistakes described above.
89
+
90
+ ---
91
+
92
+ ## See also
93
+
94
+ - `.github/agents/squad.agent.md` — the actual Squad coordinator agent
95
+ - `.copilot/skills/squad-commands/SKILL.md` — the command catalog
96
+ - `.copilot/skills/squad-conventions/SKILL.md` — conventions for working on the Squad codebase itself
97
+ - `.copilot/skills/squad-version-check/SKILL.md` — version-stamping mechanics
@@ -0,0 +1,169 @@
1
+ ---
2
+ name: "squad-version-check"
3
+ description: "Internals of how @bradygaster/squad-cli stamps its version, how `squad upgrade` works (what it preserves vs overwrites), and how to probe the npm registry for the latest version from a coordinator prompt."
4
+ allowedTools: []
5
+ confidence: medium
6
+ domain: squad-internals
7
+ source: "Discovered by Data; validated in bradygaster/squad#1173 recon (2026-05-26)."
8
+ ---
9
+
10
+ # SKILL: Squad CLI Internals — Version Stamping & Upgrade Mechanics
11
+
12
+ **Confidence:** medium
13
+ **Discovered by:** Data
14
+ **Date:** 2026-05-26
15
+ **Validated in:** Issue #1173 recon (bradygaster/squad)
16
+
17
+ ---
18
+
19
+ ## What This Skill Covers
20
+
21
+ Reusable knowledge about how `@bradygaster/squad-cli` stamps its version into `squad.agent.md`, how `squad upgrade` works, what it preserves vs. overwrites, and how to probe the npm registry for the latest version from a coordinator prompt.
22
+
23
+ ---
24
+
25
+ ## Package & Registry Facts
26
+
27
+ - **Package name:** `@bradygaster/squad-cli`
28
+ - **Registry:** npm (public)
29
+ - **CLI binary:** `squad` (registered via `package.json#bin.squad`)
30
+ - **Node version requirement:** Node ≥22.5.0 (ESM-only codebase)
31
+
32
+ ---
33
+
34
+ ## Version Stamping Mechanism
35
+
36
+ **Source file:** `dist/cli/core/version.js`
37
+
38
+ Three functions:
39
+
40
+ ### `getPackageVersion()`
41
+ Walks up from the compiled JS file to find `package.json`. Returns `pkg.version`. Works from both `dist/cli/core/version.js` and a bundled root `cli.js`. Returns `'0.0.0'` as fallback if not found.
42
+
43
+ ### `stampVersion(filePath, version)`
44
+ Mutates `squad.agent.md` in three places:
45
+ 1. HTML comment: `<!-- version: {version} -->` (must be on the line immediately after frontmatter `---`)
46
+ 2. Identity line: `- **Version:** {version}`
47
+ 3. Greeting instruction: backtick-quoted `` `Squad v{version}` ``
48
+
49
+ **Called by:** both `init` and `upgrade` — after copying the template to the destination.
50
+
51
+ ### `readInstalledVersion(filePath)`
52
+ Reads the stamped version back from `squad.agent.md`:
53
+ 1. First tries HTML comment format: `/<!-- version: ([0-9.]+(?:-[a-z]+(?:\.\d+)?)?) -->/`
54
+ 2. Falls back to old frontmatter format: `/^version:\s*"([^"]+)"/m`
55
+ 3. Returns `'0.0.0'` on any error
56
+
57
+ ---
58
+
59
+ ## `squad upgrade` Behavior
60
+
61
+ **Source file:** `dist/cli/core/upgrade.js`
62
+
63
+ ### What gets overwritten:
64
+ - `squad.agent.md` — full overwrite from template, then `stampVersion()`
65
+ - Files with `overwriteOnUpgrade: true` in `TEMPLATE_MANIFEST`: casting JSON files, template .md files, `copilot-instructions.md` (if @copilot enabled)
66
+ - GitHub Actions workflows — from `templates/workflows/`; non-npm projects get type-aware stubs
67
+ - Runs `runMigrations()` after file copy
68
+
69
+ ### What is PRESERVED:
70
+ - `team.md`, `routing.md`, `decisions.md`, `ceremonies.md` (user-owned)
71
+ - `agents/*/history.md` (individual agent memory)
72
+ - `.squad/config.json` — **never touched**; `stateBackend` survives intact
73
+ - User-added files not in TEMPLATE_MANIFEST
74
+
75
+ ### Self-upgrade path (`selfUpgradeCli()`):
76
+ Detects npm/pnpm/yarn via `npm_execpath` and `npm_config_user_agent`. Runs:
77
+ - npm: `npm install -g @bradygaster/squad-cli@latest`
78
+ - pnpm: `pnpm add -g @bradygaster/squad-cli@latest`
79
+ - yarn: `yarn global add @bradygaster/squad-cli@latest`
80
+ Use `@insider` tag for insider builds.
81
+
82
+ ### `compareSemver(a, b)` utility (in upgrade.js):
83
+ Returns -1/0/1. Handles pre-release: strips pre-release for base comparison, then treats pre-release as less than release (e.g., `0.9.5-insider.1` < `0.9.5`). Can be ported directly if needed in prompt logic.
84
+
85
+ ---
86
+
87
+ ## `.squad/config.json` — What It Holds
88
+
89
+ ```json
90
+ {
91
+ "version": 1,
92
+ "stateBackend": "worktree"
93
+ }
94
+ ```
95
+
96
+ Other optional fields added by the coordinator at runtime:
97
+ - `defaultModel` — global model override for all agent spawns
98
+ - `agentModelOverrides.{agentName}` — per-agent model override
99
+
100
+ The file is read-only from the upgrade path's perspective. Only the coordinator writes to it (for model preferences).
101
+
102
+ ---
103
+
104
+ ## Version-Check Probe (npm Registry)
105
+
106
+ Use this one-liner from inside a coordinator prompt to fetch dist-tags:
107
+
108
+ ```
109
+ npm view @bradygaster/squad-cli dist-tags --json
110
+ ```
111
+
112
+ - Timeout: **5 seconds.** If no response within 5 seconds, abandon and show normal greeting.
113
+ - On success: extract `dist-tags[channel]` (e.g., `dist-tags["insider"]`).
114
+ - On any error (network failure, registry unreachable, parse error): show normal greeting.
115
+
116
+ ---
117
+
118
+ ## Upstream OS-Specific Cache
119
+
120
+ The CLI (`self-update.ts`) writes `latest` version info to an OS-specific path with a 24h TTL.
121
+
122
+ **One-liner to read the upstream cache:**
123
+ ```
124
+ node -e "const p=require('path'),o=require('os');const b=process.env.APPDATA||(process.platform==='darwin'?p.join(o.homedir(),'Library','Application Support'):p.join(o.homedir(),'.config'));const f=p.join(b,'squad-cli','update-check.json');try{const d=JSON.parse(require('fs').readFileSync(f,'utf8'));const age=Date.now()-d.checkedAt;if(age<86400000)console.log(JSON.stringify(d));else console.log('STALE')}catch{console.log('MISS')}"
125
+ ```
126
+
127
+ Output semantics:
128
+ - Valid JSON `{"latestVersion":"X.Y.Z","checkedAt":N}` → cache hit; use `latestVersion`
129
+ - `STALE` → cache expired (older than 24h); treat as no data
130
+ - `MISS` → cache missing or corrupt; treat as no data
131
+
132
+ **OS-specific cache path:**
133
+ - Windows: `%APPDATA%\squad-cli\update-check.json`
134
+ - Linux: `~/.config/squad-cli/update-check.json`
135
+ - macOS: `~/Library/Application Support/squad-cli/update-check.json`
136
+
137
+ ---
138
+
139
+ ## Repo-Local Cache Convention: `.squad/.cache/version-check.json`
140
+
141
+ Used by coordinator for `insider`/`preview` channels (the upstream cache only stores `latest`).
142
+
143
+ **Schema:**
144
+ ```json
145
+ {
146
+ "checkedAt": "2026-05-26T14:13:28.492Z",
147
+ "currentVersion": "0.9.6-insider.2",
148
+ "channel": "insider",
149
+ "channelVersion": "0.9.7-insider.1"
150
+ }
151
+ ```
152
+
153
+ **TTL:** 24 hours from `checkedAt`.
154
+ **Gitignore:** `.squad/.cache/` is listed in `.gitignore` — cache files are never committed.
155
+
156
+ ---
157
+
158
+ ## Key File Paths (installed CLI)
159
+
160
+ | Purpose | Path |
161
+ |---|---|
162
+ | Version utilities | `dist/cli/core/version.js` |
163
+ | Upgrade logic | `dist/cli/core/upgrade.js` |
164
+ | Init logic | `dist/cli/core/init.js` |
165
+ | Template manifest | `dist/cli/core/templates.js` |
166
+ | Copilot install helper | `dist/cli/copilot-install.js` |
167
+ | squad.agent.md template | `templates/squad.agent.md.template` |
168
+ | Session init reference | `templates/session-init-reference.md` |
169
+ | All templates | `templates/` |