@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.
- package/CHANGELOG.md +555 -0
- package/README.md +5 -5
- package/dist/cli/commands/build.js +3 -3
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/copilot-bridge.d.ts.map +1 -1
- package/dist/cli/commands/copilot-bridge.js +5 -1
- package/dist/cli/commands/copilot-bridge.js.map +1 -1
- package/dist/cli/commands/cross-squad.d.ts +15 -2
- package/dist/cli/commands/cross-squad.d.ts.map +1 -1
- package/dist/cli/commands/cross-squad.js +78 -4
- package/dist/cli/commands/cross-squad.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +6 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +120 -5
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/export.d.ts +7 -3
- package/dist/cli/commands/export.d.ts.map +1 -1
- package/dist/cli/commands/export.js +68 -16
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/import.d.ts +7 -3
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/import.js +140 -42
- package/dist/cli/commands/import.js.map +1 -1
- package/dist/cli/commands/install-hooks.d.ts.map +1 -1
- package/dist/cli/commands/install-hooks.js +50 -5
- package/dist/cli/commands/install-hooks.js.map +1 -1
- package/dist/cli/commands/link.d.ts.map +1 -1
- package/dist/cli/commands/link.js +7 -1
- package/dist/cli/commands/link.js.map +1 -1
- package/dist/cli/commands/loop.d.ts.map +1 -1
- package/dist/cli/commands/loop.js +7 -5
- package/dist/cli/commands/loop.js.map +1 -1
- package/dist/cli/commands/memory.d.ts +2 -0
- package/dist/cli/commands/memory.d.ts.map +1 -0
- package/dist/cli/commands/memory.js +304 -0
- package/dist/cli/commands/memory.js.map +1 -0
- package/dist/cli/commands/migrate-backend.d.ts +36 -5
- package/dist/cli/commands/migrate-backend.d.ts.map +1 -1
- package/dist/cli/commands/migrate-backend.js +250 -40
- package/dist/cli/commands/migrate-backend.js.map +1 -1
- package/dist/cli/commands/notes.d.ts +27 -0
- package/dist/cli/commands/notes.d.ts.map +1 -0
- package/dist/cli/commands/notes.js +222 -0
- package/dist/cli/commands/notes.js.map +1 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +423 -8
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/cli/commands/skill.d.ts +31 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +498 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +9 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/state-mcp.d.ts +25 -0
- package/dist/cli/commands/state-mcp.d.ts.map +1 -0
- package/dist/cli/commands/state-mcp.js +174 -0
- package/dist/cli/commands/state-mcp.js.map +1 -0
- package/dist/cli/commands/watch/agent-spawn.d.ts +62 -0
- package/dist/cli/commands/watch/agent-spawn.d.ts.map +1 -0
- package/dist/cli/commands/watch/agent-spawn.js +127 -0
- package/dist/cli/commands/watch/agent-spawn.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/board.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/board.js +2 -1
- package/dist/cli/commands/watch/capabilities/board.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/decision-hygiene.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/decision-hygiene.js +3 -2
- package/dist/cli/commands/watch/capabilities/decision-hygiene.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/execute.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/execute.js +14 -2
- package/dist/cli/commands/watch/capabilities/execute.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/index.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/index.js +2 -0
- package/dist/cli/commands/watch/capabilities/index.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-email.d.ts +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-email.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-email.js +21 -4
- package/dist/cli/commands/watch/capabilities/monitor-email.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-teams.js +21 -5
- package/dist/cli/commands/watch/capabilities/monitor-teams.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/notes-promote.d.ts +11 -0
- package/dist/cli/commands/watch/capabilities/notes-promote.d.ts.map +1 -0
- package/dist/cli/commands/watch/capabilities/notes-promote.js +124 -0
- package/dist/cli/commands/watch/capabilities/notes-promote.js.map +1 -0
- package/dist/cli/commands/watch/capabilities/retro.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/retro.js +3 -2
- package/dist/cli/commands/watch/capabilities/retro.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/wave-dispatch.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/wave-dispatch.js +2 -1
- package/dist/cli/commands/watch/capabilities/wave-dispatch.js.map +1 -1
- package/dist/cli/commands/watch/index.d.ts.map +1 -1
- package/dist/cli/commands/watch/index.js +16 -12
- package/dist/cli/commands/watch/index.js.map +1 -1
- package/dist/cli/core/cast.d.ts.map +1 -1
- package/dist/cli/core/cast.js +216 -1
- package/dist/cli/core/cast.js.map +1 -1
- package/dist/cli/core/command-help.d.ts +44 -0
- package/dist/cli/core/command-help.d.ts.map +1 -0
- package/dist/cli/core/command-help.js +401 -0
- package/dist/cli/core/command-help.js.map +1 -0
- package/dist/cli/core/copilot-invocation.d.ts +57 -0
- package/dist/cli/core/copilot-invocation.d.ts.map +1 -0
- package/dist/cli/core/copilot-invocation.js +84 -0
- package/dist/cli/core/copilot-invocation.js.map +1 -0
- package/dist/cli/core/effective-squad-dir.d.ts +33 -0
- package/dist/cli/core/effective-squad-dir.d.ts.map +1 -0
- package/dist/cli/core/effective-squad-dir.js +37 -0
- package/dist/cli/core/effective-squad-dir.js.map +1 -0
- package/dist/cli/core/init.d.ts +2 -0
- package/dist/cli/core/init.d.ts.map +1 -1
- package/dist/cli/core/init.js +130 -1
- package/dist/cli/core/init.js.map +1 -1
- package/dist/cli/core/mcp-root.d.ts +73 -0
- package/dist/cli/core/mcp-root.d.ts.map +1 -0
- package/dist/cli/core/mcp-root.js +195 -0
- package/dist/cli/core/mcp-root.js.map +1 -0
- package/dist/cli/core/mcp-spec.d.ts +48 -0
- package/dist/cli/core/mcp-spec.d.ts.map +1 -0
- package/dist/cli/core/mcp-spec.js +62 -0
- package/dist/cli/core/mcp-spec.js.map +1 -0
- package/dist/cli/core/npm-registry.d.ts +25 -0
- package/dist/cli/core/npm-registry.d.ts.map +1 -0
- package/dist/cli/core/npm-registry.js +65 -0
- package/dist/cli/core/npm-registry.js.map +1 -0
- package/dist/cli/core/templates.d.ts.map +1 -1
- package/dist/cli/core/templates.js +102 -24
- package/dist/cli/core/templates.js.map +1 -1
- package/dist/cli/core/upgrade.d.ts +29 -0
- package/dist/cli/core/upgrade.d.ts.map +1 -1
- package/dist/cli/core/upgrade.js +413 -15
- package/dist/cli/core/upgrade.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/shell/components/App.js +1 -1
- package/dist/cli/shell/components/App.js.map +1 -1
- package/dist/cli/shell/components/MessageStream.js +2 -2
- package/dist/cli/shell/components/MessageStream.js.map +1 -1
- package/dist/cli/shell/coordinator.d.ts.map +1 -1
- package/dist/cli/shell/coordinator.js +11 -5
- package/dist/cli/shell/coordinator.js.map +1 -1
- package/dist/cli/shell/index.d.ts.map +1 -1
- package/dist/cli/shell/index.js +14 -7
- package/dist/cli/shell/index.js.map +1 -1
- package/dist/cli/shell/lifecycle.d.ts.map +1 -1
- package/dist/cli/shell/lifecycle.js +12 -7
- package/dist/cli/shell/lifecycle.js.map +1 -1
- package/dist/cli/shell/session-store.d.ts +4 -4
- package/dist/cli/shell/session-store.d.ts.map +1 -1
- package/dist/cli/shell/session-store.js +11 -11
- package/dist/cli/shell/session-store.js.map +1 -1
- package/dist/cli-entry.js +171 -50
- package/dist/cli-entry.js.map +1 -1
- package/package.json +9 -4
- package/scripts/patch-esm-imports.mjs +3 -1
- package/templates/after-agent-reference.md +64 -0
- package/templates/ceremony-reference.md +82 -0
- package/templates/client-compatibility-reference.md +46 -0
- package/templates/copilot-agent.md +96 -0
- package/templates/copilot-instructions.md +14 -0
- package/templates/fact-checker-policy.md +104 -0
- package/templates/model-selection-reference.md +101 -0
- package/templates/prd-intake.md +105 -0
- package/templates/rai-charter.md +110 -0
- package/templates/rai-policy.md +103 -0
- package/templates/ralph-reference.md +141 -0
- package/templates/routing.md +1 -0
- package/templates/scribe-charter.md +18 -151
- package/templates/session-init-reference.md +199 -0
- package/templates/skills/cross-squad/SKILL.md +66 -6
- package/templates/skills/cross-squad-communication/SKILL.md +399 -0
- package/templates/skills/e2e-template-testing/SKILL.md +557 -0
- package/templates/skills/fact-checking/SKILL.md +61 -0
- package/templates/skills/release-process/SKILL.md +2 -2
- package/templates/skills/squad/SKILL.md +299 -0
- package/templates/skills/squad-help/SKILL.md +97 -0
- package/templates/skills/squad-version-check/SKILL.md +169 -0
- package/templates/skills/tiered-memory/SKILL.md +31 -44
- package/templates/spawn-reference.md +131 -0
- package/templates/squad.agent.md.template +306 -618
- package/templates/workflow-wiring-appendix-a-code-reviewer.md +131 -0
- package/templates/workflow-wiring-appendix-b-documenter.md +140 -0
- package/templates/workflow-wiring-guide.md +276 -0
- package/templates/workflows/squad-heartbeat.yml +167 -167
- 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/` |
|