@bradygaster/squad-cli 0.10.0 → 0.11.0
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 +6 -6
- package/dist/cli/commands/aspire.d.ts +1 -1
- package/dist/cli/commands/aspire.js +2 -2
- package/dist/cli/commands/aspire.js.map +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +30 -9
- package/dist/cli/commands/build.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/loop.js +1 -1
- package/dist/cli/commands/loop.js.map +1 -1
- package/dist/cli/commands/migrate-backend.d.ts.map +1 -1
- package/dist/cli/commands/migrate-backend.js +23 -0
- package/dist/cli/commands/migrate-backend.js.map +1 -1
- package/dist/cli/commands/preset.d.ts +1 -0
- package/dist/cli/commands/preset.d.ts.map +1 -1
- package/dist/cli/commands/preset.js +60 -3
- package/dist/cli/commands/preset.js.map +1 -1
- package/dist/cli/commands/skill.d.ts.map +1 -1
- package/dist/cli/commands/skill.js +4 -3
- package/dist/cli/commands/skill.js.map +1 -1
- package/dist/cli/commands/state-mcp.d.ts.map +1 -1
- package/dist/cli/commands/state-mcp.js +50 -16
- package/dist/cli/commands/state-mcp.js.map +1 -1
- package/dist/cli/commands/watch/agent-spawn.d.ts +21 -1
- package/dist/cli/commands/watch/agent-spawn.d.ts.map +1 -1
- package/dist/cli/commands/watch/agent-spawn.js +38 -5
- package/dist/cli/commands/watch/agent-spawn.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 +1 -25
- package/dist/cli/commands/watch/capabilities/decision-hygiene.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-email.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-email.js +2 -25
- package/dist/cli/commands/watch/capabilities/monitor-email.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-teams.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/monitor-teams.js +2 -26
- package/dist/cli/commands/watch/capabilities/monitor-teams.js.map +1 -1
- package/dist/cli/commands/watch/capabilities/retro.d.ts.map +1 -1
- package/dist/cli/commands/watch/capabilities/retro.js +1 -25
- package/dist/cli/commands/watch/capabilities/retro.js.map +1 -1
- package/dist/cli/commands/watch/config.d.ts.map +1 -1
- package/dist/cli/commands/watch/config.js +5 -0
- package/dist/cli/commands/watch/config.js.map +1 -1
- package/dist/cli/commands/watch/index.d.ts.map +1 -1
- package/dist/cli/commands/watch/index.js +3 -1
- 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 +84 -0
- package/dist/cli/core/cast.js.map +1 -1
- package/dist/cli/core/command-help.d.ts.map +1 -1
- package/dist/cli/core/command-help.js +25 -12
- package/dist/cli/core/command-help.js.map +1 -1
- package/dist/cli/core/gh-cli.d.ts +6 -1
- package/dist/cli/core/gh-cli.d.ts.map +1 -1
- package/dist/cli/core/gh-cli.js +8 -3
- package/dist/cli/core/gh-cli.js.map +1 -1
- package/dist/cli/core/init.d.ts.map +1 -1
- package/dist/cli/core/init.js +82 -3
- package/dist/cli/core/init.js.map +1 -1
- package/dist/cli/core/mcp-root.d.ts +14 -1
- package/dist/cli/core/mcp-root.d.ts.map +1 -1
- package/dist/cli/core/mcp-root.js +72 -1
- package/dist/cli/core/mcp-root.js.map +1 -1
- package/dist/cli/core/mcp-spec.d.ts.map +1 -1
- package/dist/cli/core/mcp-spec.js +3 -2
- package/dist/cli/core/mcp-spec.js.map +1 -1
- package/dist/cli/core/templates.d.ts.map +1 -1
- package/dist/cli/core/templates.js +72 -12
- package/dist/cli/core/templates.js.map +1 -1
- package/dist/cli/core/upgrade.d.ts +26 -0
- package/dist/cli/core/upgrade.d.ts.map +1 -1
- package/dist/cli/core/upgrade.js +236 -11
- package/dist/cli/core/upgrade.js.map +1 -1
- package/dist/cli/shell/components/InputPrompt.d.ts.map +1 -1
- package/dist/cli/shell/components/InputPrompt.js +17 -9
- package/dist/cli/shell/components/InputPrompt.js.map +1 -1
- package/dist/cli/shell/index.js +1 -1
- package/dist/cli/shell/index.js.map +1 -1
- package/dist/cli-entry.js +28 -11
- package/dist/cli-entry.js.map +1 -1
- package/package.json +10 -9
- package/templates/casting-reference.md +18 -0
- package/templates/fact-checker-policy.md +104 -0
- package/templates/skills/cli-wiring/SKILL.md +2 -2
- package/templates/skills/coordinator-init-mode/SKILL.md +83 -0
- package/templates/skills/coordinator-response-mode/SKILL.md +97 -0
- package/templates/skills/coordinator-source-of-truth/SKILL.md +45 -0
- package/templates/skills/cross-squad/SKILL.md +66 -6
- package/templates/skills/cross-squad-communication/SKILL.md +399 -0
- package/templates/skills/init-mode/SKILL.md +4 -4
- package/templates/skills/personal-squad/SKILL.md +3 -2
- package/templates/skills/release-process/SKILL.md +2 -2
- package/templates/skills/{squad-commands → squad}/SKILL.md +8 -12
- package/templates/skills/squad-help/SKILL.md +97 -0
- package/templates/skills/squad-version-check/SKILL.md +9 -0
- package/templates/skills/tiered-memory/SKILL.md +31 -44
- package/templates/spawn-reference.md +57 -2
- package/templates/squad.agent.md.template +204 -180
- package/templates/workflows/squad-heartbeat.yml +2 -5
- package/templates/workflows/squad-issue-assign.yml +3 -7
- package/templates/workflows/squad-triage.yml +3 -11
- package/templates/workflows/sync-squad-labels.yml +2 -7
|
@@ -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
|
|
@@ -1,3 +1,12 @@
|
|
|
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
|
+
|
|
1
10
|
# SKILL: Squad CLI Internals — Version Stamping & Upgrade Mechanics
|
|
2
11
|
|
|
3
12
|
**Confidence:** medium
|
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tiered-memory
|
|
3
|
-
description: Three-tier agent memory model (hot/cold/wiki) for
|
|
3
|
+
description: Three-tier agent memory model (hot/cold/wiki) for context reduction per spawn
|
|
4
4
|
domain: memory-management, performance
|
|
5
|
-
confidence:
|
|
6
|
-
source:
|
|
5
|
+
confidence: design (runtime not yet implemented)
|
|
6
|
+
source: design proposal
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Skill: Tiered Agent Memory
|
|
10
10
|
|
|
11
|
+
> **Status (v0.10.0):** This skill describes a **design proposal**, not a shipped runtime. Skill files install via `squad init`/`upgrade`, but the underlying tier scaffolding (`.squad/memory/hot/`, `cold/`, `wiki/`), Scribe promotion logic, and spawn-template tier-aware reads are tracked in [bradygaster/squad#1264](https://github.com/bradygaster/squad/issues/1264). Until those land, agents continue to load full `history.md` + `decisions.md` on every spawn.
|
|
12
|
+
|
|
11
13
|
## Overview
|
|
12
14
|
|
|
13
|
-
Squad agents
|
|
15
|
+
Squad agents today load their full context history on every spawn, which grows unboundedly across sessions. The Tiered Agent Memory model proposes a three-tier separation so agents only load the bytes that are actually relevant to the current task, with older context kept available on demand.
|
|
14
16
|
|
|
15
17
|
---
|
|
16
18
|
|
|
17
19
|
## Memory Tiers
|
|
18
20
|
|
|
19
21
|
### 🔥 Hot Tier — Current Session Context
|
|
20
|
-
- **Size target:** ~2–4KB
|
|
22
|
+
- **Size target:** keep small (~2–4KB typical)
|
|
21
23
|
- **Load policy:** Always loaded. Every spawn includes hot memory by default.
|
|
22
24
|
- **Contents:** Current task description, active decisions made this session, immediate blockers, last 3–5 actions taken, who you are talking to right now.
|
|
23
25
|
- **Lifetime:** Current session only. Discarded after session ends (Scribe promotes relevant parts to Cold).
|
|
24
26
|
- **Purpose:** Provide immediate task context without any latency or load decision.
|
|
25
27
|
|
|
26
28
|
### ❄️ Cold Tier — Summarized Cross-Session History
|
|
27
|
-
- **Size target:** ~8–12KB
|
|
29
|
+
- **Size target:** larger summary, not full transcript (~8–12KB typical)
|
|
28
30
|
- **Load policy:** Load on demand. Include only when the task explicitly needs history.
|
|
29
31
|
- **Contents:** Summarized past sessions (compressed by Scribe), cross-session decisions, recurring patterns, unresolved issues from prior work.
|
|
30
|
-
- **Lifetime:**
|
|
32
|
+
- **Lifetime:** Rolling window (default proposal: 30 days). Eligible entries are then promoted to Wiki.
|
|
31
33
|
- **Purpose:** Answer "what have we tried before?" and "what was decided?" without replaying full transcripts.
|
|
32
34
|
- **How to include:** Pass `--include-cold` in spawn template or add `## Cold Memory` section.
|
|
33
35
|
|
|
@@ -89,49 +91,34 @@ See: .squad/memory/wiki/{topic}.md
|
|
|
89
91
|
|
|
90
92
|
---
|
|
91
93
|
|
|
92
|
-
##
|
|
93
|
-
|
|
94
|
-
Baseline measurements from tamirdresher/tamresearch1 production runs (June 2025):
|
|
95
|
-
|
|
96
|
-
| Agent | Total Context | Old Noise % | Hot-Only Size | Savings |
|
|
97
|
-
|-------|--------------|-------------|---------------|---------|
|
|
98
|
-
| Picard (Lead) | 74KB / 18.5K tokens | 96% | ~3KB | 55% |
|
|
99
|
-
| Scribe | 52KB / 13K tokens | 91% | ~4KB | 48% |
|
|
100
|
-
| Data | 43KB / 10.7K tokens | 88% | ~3.5KB | 42% |
|
|
101
|
-
| Ralph | 38KB / 9.5K tokens | 85% | ~3KB | 38% |
|
|
102
|
-
| Worf | 34KB / 8.5K tokens | 82% | ~3KB | 20% |
|
|
103
|
-
|
|
104
|
-
**Average savings: 20–55% per spawn** with Hot-only loading. Cold + Wiki on-demand adds ~2–8KB when needed, still well below current baselines.
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## Integration with Scribe Agent
|
|
94
|
+
## Integration with Scribe Agent (design — not yet implemented)
|
|
109
95
|
|
|
110
|
-
Scribe is the memory coordinator for this system.
|
|
96
|
+
Scribe is the proposed memory coordinator for this system. Once the runtime lands, Scribe will:
|
|
111
97
|
|
|
112
|
-
1. **End of session:**
|
|
113
|
-
2. **
|
|
114
|
-
3. **On-demand wiki writes:** Any agent can request Scribe to write a wiki entry mid-session
|
|
98
|
+
1. **End of session:** Compress Hot → Cold summary (target: ~10% of session verbosity)
|
|
99
|
+
2. **Aged cold entries:** Promote Cold → Wiki for decisions/facts that aged into stable knowledge
|
|
100
|
+
3. **On-demand wiki writes:** Any agent can request Scribe to write a wiki entry mid-session
|
|
115
101
|
|
|
116
|
-
|
|
102
|
+
Until then, see the Scribe charter for current behavior: `.squad/agents/scribe/charter.md`
|
|
117
103
|
|
|
118
104
|
---
|
|
119
105
|
|
|
120
|
-
## Implementation Checklist
|
|
106
|
+
## Implementation Checklist (tracked in #1264)
|
|
121
107
|
|
|
122
108
|
- [ ] Scribe writes Hot context file at session start (`.squad/memory/hot/{agent}.md`)
|
|
123
109
|
- [ ] Scribe compresses and writes Cold summary at session end
|
|
124
110
|
- [ ] Spawn templates default to Hot-only
|
|
125
111
|
- [ ] Coordinators add `--include-cold` / `--include-wiki` flags as needed
|
|
126
112
|
- [ ] Wiki entries stored in `.squad/memory/wiki/`
|
|
127
|
-
- [ ] Cold entries stored in `.squad/memory/cold/` with
|
|
113
|
+
- [ ] Cold entries stored in `.squad/memory/cold/` with rolling TTL
|
|
128
114
|
|
|
129
115
|
---
|
|
130
116
|
|
|
131
117
|
## References
|
|
132
118
|
|
|
133
|
-
-
|
|
134
|
-
-
|
|
119
|
+
- Tracking issue: [bradygaster/squad#1264](https://github.com/bradygaster/squad/issues/1264) — installation gap + runtime status
|
|
120
|
+
- Original design spike: [bradygaster/squad#686](https://github.com/bradygaster/squad/issues/686) — tiered memory implementation plan
|
|
121
|
+
- Related: [bradygaster/squad#600](https://github.com/bradygaster/squad/issues/600) — context payload growth
|
|
135
122
|
|
|
136
123
|
---
|
|
137
124
|
|
|
@@ -162,7 +149,7 @@ Use this template when spawning any Squad agent. By default it loads **Hot tier
|
|
|
162
149
|
|
|
163
150
|
### 🔥 Hot (always included)
|
|
164
151
|
|
|
165
|
-
> Paste current session context here (2–4KB
|
|
152
|
+
> Paste current session context here (~2–4KB target):
|
|
166
153
|
|
|
167
154
|
```
|
|
168
155
|
Current task: {task_description}
|
|
@@ -178,12 +165,12 @@ Talking to: {current_interlocutor}
|
|
|
178
165
|
|
|
179
166
|
> Load on demand. Do not inline unless specifically needed.
|
|
180
167
|
|
|
181
|
-
Summarized cross-session history is at:
|
|
168
|
+
Summarized cross-session history is at:
|
|
182
169
|
`.squad/memory/cold/{agent-name}.md`
|
|
183
170
|
|
|
184
171
|
Include when:
|
|
185
172
|
- Resuming interrupted work
|
|
186
|
-
- Debugging a recurring issue
|
|
173
|
+
- Debugging a recurring issue
|
|
187
174
|
- "What have we tried before?"
|
|
188
175
|
|
|
189
176
|
**To load cold memory, add this section and fetch the file before spawning:**
|
|
@@ -218,17 +205,17 @@ Include when:
|
|
|
218
205
|
## Escalation
|
|
219
206
|
|
|
220
207
|
If blocked or uncertain:
|
|
221
|
-
- Architecture questions → @picard
|
|
222
|
-
- Security concerns → @worf
|
|
223
|
-
- Infrastructure/deployment → @belanna
|
|
224
|
-
- Memory/history questions → @scribe
|
|
208
|
+
- Architecture questions → @picard
|
|
209
|
+
- Security concerns → @worf
|
|
210
|
+
- Infrastructure/deployment → @belanna
|
|
211
|
+
- Memory/history questions → @scribe
|
|
225
212
|
|
|
226
213
|
---
|
|
227
214
|
|
|
228
215
|
## Notes
|
|
229
216
|
|
|
230
|
-
- Hot tier is always included
|
|
231
|
-
- Cold adds
|
|
217
|
+
- Hot tier is always included; keep it focused
|
|
218
|
+
- Cold adds a summary; only include when history is relevant
|
|
232
219
|
- Wiki adds variable size; only include specific relevant docs
|
|
233
|
-
-
|
|
234
|
-
|
|
220
|
+
- Runtime backing is tracked in [bradygaster/squad#1264](https://github.com/bradygaster/squad/issues/1264) — until those changes land, this skill is design-only and agents continue to load full history.md + decisions.md on every spawn
|
|
221
|
+
|
|
@@ -2,7 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
### How to Spawn an Agent
|
|
4
4
|
|
|
5
|
-
**You MUST dispatch every agent spawn** via the platform's tool
|
|
5
|
+
**You MUST dispatch every agent spawn** via the platform's tool:
|
|
6
|
+
- **CLI:** `task` tool
|
|
7
|
+
- **VS Code:** `runSubagent` tool
|
|
8
|
+
- **Copilot App:** `create_session` tool (when available — see Sub-Sessions below)
|
|
9
|
+
|
|
10
|
+
**Platform detection (run once at session start):**
|
|
11
|
+
- `create_session` tool exists → **App mode** → sub-sessions for commit-producing work
|
|
12
|
+
- `runSubagent` tool exists → **VS Code mode** → subagents
|
|
13
|
+
- `task` tool exists → **CLI mode** → task tool
|
|
14
|
+
- None available → **work inline** (last resort fallback)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
### Sub-Sessions (Copilot App Mode)
|
|
19
|
+
|
|
20
|
+
When `create_session` is available, spawn commit-producing agents as **sub-sessions** instead of tasks. Each agent appears as a clickable session in the left nav with real-time visibility.
|
|
21
|
+
|
|
22
|
+
**When to use sub-sessions vs task:**
|
|
23
|
+
- **Sub-session** (`create_session`): Agent produces commits, needs worktree isolation, or benefits from persistent session visibility
|
|
24
|
+
- **Task** (`task` tool): Pure analysis, coordination, read-only research, or quick one-shot work
|
|
25
|
+
|
|
26
|
+
**Sub-session parameters:**
|
|
27
|
+
- **`name`**: `"{Name} {verb}ing {noun}"` — 40-char max, sentence case (e.g., "EECOM refactoring auth", "Flight reviewing arch")
|
|
28
|
+
- **`coordinate_with_creator`**: `true` (always — enables cross-session messaging)
|
|
29
|
+
- **`notify_on_idle`**: `"once"` (coordinator gets notified when agent finishes)
|
|
30
|
+
- **`kickoff.prompt`**: The full agent prompt (same as task prompt below)
|
|
31
|
+
- **`kickoff.mode`**: `"autopilot"` (agents work autonomously)
|
|
32
|
+
- **`kickoff.model`**: `"{resolved_model}"`
|
|
33
|
+
|
|
34
|
+
**Constraints:**
|
|
35
|
+
- **Max depth:** 1 — no sub-sub-sessions. If an agent needs to delegate, it uses `task` tool.
|
|
36
|
+
- **Concurrency cap:** Maximum 4-5 simultaneous sub-sessions. Queue additional spawns.
|
|
37
|
+
- **Fallback:** If `create_session` fails, degrade gracefully to `task` tool for that agent.
|
|
38
|
+
|
|
39
|
+
**Sub-session template:**
|
|
40
|
+
```
|
|
41
|
+
create_session({
|
|
42
|
+
name: "{Name} {verb}ing {noun}",
|
|
43
|
+
coordinate_with_creator: true,
|
|
44
|
+
notify_on_idle: "once",
|
|
45
|
+
kickoff: {
|
|
46
|
+
prompt: "{full agent prompt — see template below}",
|
|
47
|
+
mode: "autopilot",
|
|
48
|
+
model: "{resolved_model}",
|
|
49
|
+
reasoning_effort: "{resolved_effort}"
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Result collection:** When `notify_on_idle` fires, the coordinator receives the session result via cross-session notification. No polling required.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### Task Tool Spawn (CLI Mode)
|
|
59
|
+
|
|
60
|
+
Standard spawn via `task` tool — used in CLI, or as fallback when `create_session` is unavailable:
|
|
6
61
|
|
|
7
62
|
- **`agent_type`**: `"general-purpose"` (always — this gives agents full tool access)
|
|
8
63
|
- **`mode`**: `"background"` (default) or `"sync"` — use `"background"` for all parallelizable work; use `"sync"` only when the result is needed before the next step can proceed
|
|
@@ -81,7 +136,7 @@ prompt: |
|
|
|
81
136
|
Read `decisions.md` with `squad_state_read` when state tools are available; otherwise fall back to `.squad/decisions.md`.
|
|
82
137
|
If .squad/identity/wisdom.md exists, read it before starting work.
|
|
83
138
|
If .squad/identity/now.md exists, read it at spawn time.
|
|
84
|
-
Check project skill directories (.squad/skills/, .
|
|
139
|
+
Check project skill directories (.squad/skills/, .github/skills/, .copilot/skills/, .claude/skills/, .agents/skills/) for any SKILL.md the coordinator attached to your prompt.
|
|
85
140
|
Read any relevant SKILL.md files before working.
|
|
86
141
|
|
|
87
142
|
⚠️ WORK FRESHNESS: When determining what to work on:
|