squadrant 0.16.6 → 0.17.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/dist/index.js +1512 -448
- package/dist/index.js.map +1 -1
- package/dist/squadrantd.js +111 -104
- package/dist/squadrantd.js.map +1 -1
- package/package.json +1 -1
- package/plugin/skills/captain-ops/SKILL.md +50 -45
- package/plugin/skills/command-ops/SKILL.md +12 -20
- package/plugin/skills/karpathy-principles/SKILL.md +1 -1
- package/scripts/read-handoff.sh +16 -4
- package/templates/captain.claude.md +9 -5
- package/templates/captain.generic.md +8 -3
- package/templates/command.claude.md +2 -2
- package/templates/crew.generic.md +1 -1
- package/templates/crew.opencode.md +1 -1
- package/templates/learnings.claude.md +1 -1
package/package.json
CHANGED
|
@@ -7,30 +7,37 @@ description: Complete captain playbook — session startup, crew spawning, statu
|
|
|
7
7
|
|
|
8
8
|
## Session Startup
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- `
|
|
20
|
-
- `
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
10
|
+
Execute the 4-step startup contract defined in your system prompt.
|
|
11
|
+
|
|
12
|
+
**How to execute the contract:**
|
|
13
|
+
|
|
14
|
+
1. **Fetch and gather facts:**
|
|
15
|
+
Run `squadrant handoff facts {project} --fetch` — this updates remote-tracking refs before reporting, so what follows is verified, not stale-and-silent. This is not a handoff and does not guess — it gathers verified facts grouped by source with provenance.
|
|
16
|
+
|
|
17
|
+
2. **Check `liveRepo.branchState` explicitly:**
|
|
18
|
+
These are flags; act on them directly, don't just skim past them:
|
|
19
|
+
- `upstreamStatus: "behind"` — your local branch is stale relative to origin; don't trust local-only diffs until you've reconciled.
|
|
20
|
+
- `upstreamStatus: "diverged"` — both sides moved; this needs a decision (rebase/merge), not silence.
|
|
21
|
+
- `upstreamStatus: "upstream-gone"` — the remote branch was deleted; this local branch is likely done.
|
|
22
|
+
- `upstreamStatus: "no-upstream"` — never pushed.
|
|
23
|
+
- `dirtyWorkingTree: true` — uncommitted changes are sitting from a prior session; find out why before proceeding.
|
|
24
|
+
- `onUnexpectedBranch: true` — you're sitting on a `crew/*` worktree branch; a captain's own checkout normally shouldn't be.
|
|
25
|
+
- `mergedIntoBase: true` — this branch is fully merged into base already; safe to switch back to base / clean up.
|
|
26
|
+
|
|
27
|
+
3. **Identify current state:**
|
|
28
|
+
Check tasks from the same call — `liveRepo.liveCrews` lists every non-terminal crew task for this project. A `state: "blocked"` entry with a `question` is waiting on you right now.
|
|
29
|
+
|
|
30
|
+
4. **Read handoff:**
|
|
31
|
+
`~/.config/squadrant/scripts/read-handoff.sh "{spokeVaultPath}"`
|
|
32
|
+
If a handoff exists, read the context carefully (`currentState`, `openBranches`, `nextSteps`, `blockedItems`, `decisions`).
|
|
33
|
+
If it reported `"exists": false`, reconstruct from the `handoff facts` output instead of cold-starting blind (check `checkpoint`, `gapSessions`, `claudeMem`). You do the synthesizing.
|
|
34
|
+
|
|
35
|
+
5. **Additional Context (opt-in):**
|
|
36
|
+
- Search **claude-mem** (`mem-search` skill) for your project name.
|
|
37
|
+
- Check `{spokeVault}/daily-logs/` for the most recent log.
|
|
38
|
+
- Check `{spokeVault}/learnings/` — selectively load relevant learnings.
|
|
39
|
+
- Check `{spokeVault}/skills/` and `{spokeVault}/wiki/`.
|
|
40
|
+
- Crew lifecycle events (done / blocked / idle) are delivered to your captain pane automatically by the squadrant daemon via daemon-direct cmux delivery (#332). No relay setup required.
|
|
34
41
|
|
|
35
42
|
## Crew Setup
|
|
36
43
|
|
|
@@ -218,7 +225,7 @@ On CREW IDLE, do a **single on-demand spot-check** (allowed — not a polling lo
|
|
|
218
225
|
|
|
219
226
|
| Spot-check shows | Captain action |
|
|
220
227
|
|-----------------|----------------|
|
|
221
|
-
| Completed work (PR opened, commits pushed, results reported) but no CREW DONE | Treat as the #278 case — review
|
|
228
|
+
| Completed work (PR opened, commits pushed, results reported) but no CREW DONE | Treat as the #278 case — review, then follow the HUMAN REVIEW GATE contract: surface the diff and wait for operator go-ahead; never merge unprompted. If not actually done, **re-task**: send the next instruction via `crew send` (the #148 re-open flow). |
|
|
222
229
|
| Crew asked a question or is waiting for a decision | Respond via `crew send`. Do NOT terminalize — it will signal done after the next turn. |
|
|
223
230
|
| Still mid-task / transient idle | Leave it; wait for the next daemon event. |
|
|
224
231
|
|
|
@@ -228,41 +235,39 @@ This is the captain-side backstop: even if the completion-protocol imperative is
|
|
|
228
235
|
|
|
229
236
|
When a crew sends you a status message via `squadrant runtime send <project> "<message>"`, it lands in your captain pane. Acknowledge, then update your handoff if a meaningful decision was made.
|
|
230
237
|
|
|
231
|
-
### Handling CREW REVIEW (
|
|
238
|
+
### Handling CREW REVIEW or CREW DONE (Assessment Gate)
|
|
239
|
+
|
|
240
|
+
CREW REVIEW and CREW DONE both mean the crew has paused and is waiting for your verdict (either explicitly asking for review, or claiming the work is done). Treat neither as final until you have reviewed.
|
|
232
241
|
|
|
233
|
-
|
|
242
|
+
**Follow the HUMAN REVIEW GATE contract from your system prompt.** The template defines *what* you must do (never auto-merge without permission); this playbook defines *how* to do it.
|
|
234
243
|
|
|
235
|
-
**Review Modes:**
|
|
236
|
-
- **DEFAULT mode (Wait for human):**
|
|
237
|
-
- **DELEGATED mode (Captain auto):** ONLY when the user explicitly delegates
|
|
244
|
+
**Review Modes (per contract):**
|
|
245
|
+
- **DEFAULT mode (Wait for human):** You review the diff, then **STOP** and surface a diff summary to the USER. You **WAIT** for the user to approve. You do NOT run `squadrant crew approve` or merge until they say so.
|
|
246
|
+
- **DELEGATED mode (Captain auto):** ONLY when the user explicitly delegates (e.g. "you review and merge it"). You review, run `squadrant crew approve`, and merge autonomously.
|
|
238
247
|
|
|
239
248
|
*Note: Either way the captain-side review still happens — the human gate is ADDED ON TOP of the captain review, not a replacement for it.*
|
|
240
249
|
|
|
241
|
-
On CREW REVIEW:
|
|
250
|
+
On CREW REVIEW or CREW DONE:
|
|
242
251
|
|
|
243
|
-
1. **Open the diff** — `squadrant diff <project> <crew>` (branch-vs-base
|
|
252
|
+
1. **Open the diff** — `squadrant diff <project> <crew>` (branch-vs-base). Use `--staged`/`--unstaged`/`--working` if you want to peek at uncommitted work.
|
|
244
253
|
2. **Classify (Captain-side review):**
|
|
245
254
|
|
|
246
255
|
| Diff looks | Captain action |
|
|
247
256
|
|-----------|-----------------|
|
|
248
|
-
| Good — matches the task, tests pass, no scope creep | **DEFAULT mode:** Surface diff summary to user and WAIT
|
|
249
|
-
| Needs changes | `squadrant crew send <project> <crew> "<feedback>"` — the crew iterates
|
|
257
|
+
| Good — matches the task, tests pass, no scope creep | **DEFAULT mode:** Surface diff summary to user and WAIT. Once user approves, run `squadrant crew approve <project> <crew>`, then ask about merging (or merge if they already approved it).<br><br>**DELEGATED mode:** Run `squadrant crew approve <project> <crew>`, then merge autonomously. |
|
|
258
|
+
| Needs changes | `squadrant crew send <project> <crew> "<feedback>"` — the crew iterates and re-signals. Loop until approved. |
|
|
250
259
|
|
|
251
|
-
3. **Never auto-terminalize
|
|
260
|
+
3. **Never auto-terminalize** by emitting `task.done` directly — always go through `squadrant crew approve`.
|
|
252
261
|
4. Do **not** re-send the original task or close the crew while it's awaiting review — `crew close` on a `review`-state task discards work that hasn't been pushed anywhere yet.
|
|
253
262
|
|
|
254
|
-
## When Crew
|
|
255
|
-
|
|
256
|
-
After a crew task completes:
|
|
263
|
+
## When Crew is Fully Finished (After Approval)
|
|
257
264
|
|
|
258
|
-
|
|
259
|
-
2. Merge their branch if appropriate.
|
|
260
|
-
3. Close the crew with `squadrant crew close <project> <name>` once the work track is done. (Or let the crew exit itself — the tab closes when the CLI ends.)
|
|
261
|
-
4. After closing a crew, VERIFY no orphaned processes remain — e.g. `pgrep -fl vitest` and check for stray dev servers / node test workers; kill any leftovers. `pnpm test` is one-shot (`vitest run`, always exits) and machine-wide bounded via `scripts/heavy-lock.mjs` (#570), so concurrent crews queue instead of piling up — but still prefer one verification on the authoritative checkout rather than relying on the lock to save you.
|
|
262
|
-
5. Record learnings if any (see "Recording Learnings" below).
|
|
263
|
-
6. Update your handoff if the work shifts the next-step plan (see "Session Shutdown — Write Handoff" below).
|
|
265
|
+
After a crew task is approved and optionally merged:
|
|
264
266
|
|
|
265
|
-
|
|
267
|
+
1. Close the crew with `squadrant crew close <project> <name>` once the work track is done.
|
|
268
|
+
2. VERIFY no orphaned processes remain — e.g. `pgrep -fl vitest` and check for stray dev servers. Kill any leftovers. `pnpm test` is one-shot (`vitest run`, always exits) and machine-wide bounded via `scripts/heavy-lock.mjs` (#570), so concurrent crews queue instead of piling up — but still prefer one verification on the authoritative checkout rather than relying on the lock to save you.
|
|
269
|
+
3. Record learnings if any (see "Recording Learnings" below).
|
|
270
|
+
4. Update your handoff if the work shifts the next-step plan (see "Session Shutdown").
|
|
266
271
|
|
|
267
272
|
## Status Board (show after substantive turns)
|
|
268
273
|
|
|
@@ -29,9 +29,8 @@ for vault in $(cat ~/.config/squadrant/config.json | python3 -c "import json,sys
|
|
|
29
29
|
cat "$vault/daily-logs/${YESTERDAY}.md" 2>/dev/null || echo "(no log)"
|
|
30
30
|
done
|
|
31
31
|
```
|
|
32
|
-
4.
|
|
33
|
-
5.
|
|
34
|
-
6. Present briefing, then save to `{hubVault}/daily-logs/YYYY-MM-DD.md`
|
|
32
|
+
4. Run quick standup for context: `squadrant standup --yesterday --raw`
|
|
33
|
+
5. Present briefing, then save to `{hubVault}/daily-logs/YYYY-MM-DD.md`
|
|
35
34
|
|
|
36
35
|
## Delegation Workflow
|
|
37
36
|
|
|
@@ -42,7 +41,7 @@ Match to `~/.config/squadrant/config.json`.
|
|
|
42
41
|
|
|
43
42
|
### 2. Check for captain workspace
|
|
44
43
|
```bash
|
|
45
|
-
|
|
44
|
+
squadrant runtime list
|
|
46
45
|
```
|
|
47
46
|
**CRITICAL:** Match the EXACT `captainName` from config. `Brove` ≠ `⚓ brove-captain`.
|
|
48
47
|
|
|
@@ -56,7 +55,7 @@ LAST=$(python3 -c "import json; d=json.load(open('$HOME/.config/squadrant/sessio
|
|
|
56
55
|
- `fresh` → reuse the existing workspace, proceed to step 5.
|
|
57
56
|
- `stale` (or no entry) → close the existing workspace, then go to step 4 to respawn so `spawn-workspace.sh` runs its `↻ new day — starting fresh session` path:
|
|
58
57
|
```bash
|
|
59
|
-
|
|
58
|
+
squadrant runtime stop <project>
|
|
60
59
|
```
|
|
61
60
|
|
|
62
61
|
Never skip this gate when a workspace was found by name — that's how stale captains get reused.
|
|
@@ -65,12 +64,11 @@ Never skip this gate when a workspace was found by name — that's how stale cap
|
|
|
65
64
|
```bash
|
|
66
65
|
~/.config/squadrant/scripts/spawn-workspace.sh "{captainName}" "{projectPath}"
|
|
67
66
|
```
|
|
68
|
-
Wait a few seconds, then `list
|
|
67
|
+
Wait a few seconds, then `squadrant runtime list` again to get its ref. Confirm the spawn logged `↻ new day — starting fresh session` (or a clean first-launch) before sending work.
|
|
69
68
|
|
|
70
69
|
### 5. Send the task
|
|
71
70
|
```bash
|
|
72
|
-
|
|
73
|
-
/Applications/cmux.app/Contents/Resources/bin/cmux send-key --workspace "workspace:N" Enter
|
|
71
|
+
squadrant runtime send <project> "Task description with all context"
|
|
74
72
|
```
|
|
75
73
|
|
|
76
74
|
### 6. Report back
|
|
@@ -78,12 +76,9 @@ Wait a few seconds, then `list-workspaces` again to get its ref. Confirm the spa
|
|
|
78
76
|
|
|
79
77
|
## Checking Status
|
|
80
78
|
|
|
79
|
+
Read a captain's screen:
|
|
81
80
|
```bash
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
Or read a captain's screen:
|
|
85
|
-
```bash
|
|
86
|
-
/Applications/cmux.app/Contents/Resources/bin/cmux read-screen --workspace "workspace:N"
|
|
81
|
+
squadrant runtime read-screen <project>
|
|
87
82
|
```
|
|
88
83
|
|
|
89
84
|
## Registering Projects
|
|
@@ -100,20 +95,17 @@ squadrant projects add {name}-docs {path/to/docs} --group {group} --group-role "
|
|
|
100
95
|
|
|
101
96
|
## Monitoring Captains
|
|
102
97
|
|
|
103
|
-
Captains will send you reports via `
|
|
98
|
+
Captains will send you reports via `squadrant runtime send` when tasks complete or blockers arise. When you receive a captain report:
|
|
104
99
|
|
|
105
100
|
1. Acknowledge the report
|
|
106
101
|
2. Update your dashboard / briefing notes
|
|
107
102
|
3. If the captain reported a blocker — escalate to the user
|
|
108
103
|
4. If all tasks for a project are done — inform the user
|
|
109
104
|
|
|
110
|
-
You can also **proactively check** captain progress:
|
|
105
|
+
You can also **proactively check** captain progress by reading their screens:
|
|
111
106
|
```bash
|
|
112
|
-
# Read
|
|
113
|
-
|
|
114
|
-
echo "=== $(basename $vault) ==="
|
|
115
|
-
head -15 "$vault/status.md" 2>/dev/null || echo "(no status)"
|
|
116
|
-
done
|
|
107
|
+
# Read a specific captain's screen
|
|
108
|
+
squadrant runtime read-screen <project>
|
|
117
109
|
```
|
|
118
110
|
|
|
119
111
|
Do this when:
|
|
@@ -74,7 +74,7 @@ These principles bias toward **caution over speed**. For trivial tasks (typo fix
|
|
|
74
74
|
|
|
75
75
|
- Squadrant already uses TDD via the `superpowers:test-driven-development` skill — principle 4 complements it, does not replace it
|
|
76
76
|
- Captains applying these principles during review: if a crew member violates principle 3 (drive-by refactors), request they split the commit
|
|
77
|
-
- Crew should
|
|
77
|
+
- Crew should run `squadrant crew signal blocked` when principle 1 triggers ("unclear" / "multiple interpretations")
|
|
78
78
|
|
|
79
79
|
## Attribution
|
|
80
80
|
|
package/scripts/read-handoff.sh
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Usage: read-handoff.sh <spoke-vault-path> [--keep]
|
|
3
|
-
# Reads and prints handoff.json, then
|
|
4
|
-
# Captain calls this on session startup to load previous
|
|
3
|
+
# Reads and prints handoff.json, then archives it to handoffs/<date>.json
|
|
4
|
+
# (unless --keep). Captain calls this on session startup to load previous
|
|
5
|
+
# context.
|
|
5
6
|
set -euo pipefail
|
|
6
7
|
|
|
7
8
|
VAULT="${1:?Usage: read-handoff.sh <vault-path> [--keep]}"
|
|
@@ -16,7 +17,18 @@ fi
|
|
|
16
17
|
# Print the handoff content
|
|
17
18
|
cat "$HANDOFF_FILE"
|
|
18
19
|
|
|
19
|
-
#
|
|
20
|
+
# Archive (don't delete) unless --keep flag. Multi-session days are the norm
|
|
21
|
+
# (compacts, relaunches), so a same-day archive must never be clobbered by a
|
|
22
|
+
# later read on the same day — uniquify with -2, -3, ... instead of overwriting.
|
|
20
23
|
if [ "$KEEP" != "--keep" ]; then
|
|
21
|
-
|
|
24
|
+
ARCHIVE_DIR="$VAULT/handoffs"
|
|
25
|
+
mkdir -p "$ARCHIVE_DIR"
|
|
26
|
+
DATE=$(date -u +%Y-%m-%d)
|
|
27
|
+
DEST="$ARCHIVE_DIR/$DATE.json"
|
|
28
|
+
N=2
|
|
29
|
+
while [ -e "$DEST" ]; do
|
|
30
|
+
DEST="$ARCHIVE_DIR/$DATE-$N.json"
|
|
31
|
+
N=$((N + 1))
|
|
32
|
+
done
|
|
33
|
+
mv "$HANDOFF_FILE" "$DEST"
|
|
22
34
|
fi
|
|
@@ -6,13 +6,17 @@ You are a **project captain** for Squadrant. You lead ONE project. You are a **c
|
|
|
6
6
|
|
|
7
7
|
1. **NEVER** edit, write, or modify project source code yourself. You are a coordinator.
|
|
8
8
|
2. **ALWAYS** spawn a crew session for ANY coding task — no matter how small.
|
|
9
|
-
3. Even a one-line fix gets a crew session. You plan, delegate, review
|
|
10
|
-
4. **
|
|
9
|
+
3. Even a one-line fix gets a crew session. You plan, delegate, review.
|
|
10
|
+
4. **HUMAN REVIEW GATE**: You must NOT run `squadrant crew approve` or merge a PR without explicit operator go-ahead. The default is pause-and-show-the-diff. Delegated auto-merge is ONLY allowed when the operator explicitly says so per-request.
|
|
11
|
+
5. **ALWAYS** spawn crew via `squadrant crew spawn` — never via the `Agent` tool, never via `TeamCreate`. Crew opens as a new tab in your workspace and works for any agent (claude, codex, gemini, opencode).
|
|
11
12
|
|
|
12
13
|
## ALWAYS do on session start
|
|
13
14
|
|
|
14
|
-
1.
|
|
15
|
-
2.
|
|
15
|
+
1. **Fetch and gather facts:** `squadrant handoff facts {project} --fetch` (updates remote refs so branch state is verified, not stale).
|
|
16
|
+
2. **Check branchState flags:** Act on `upstreamStatus` (`behind`, `diverged`, `upstream-gone`) explicitly.
|
|
17
|
+
3. **Identify current state:** List live crews (`squadrant crew list`) and current task.
|
|
18
|
+
4. **Read handoff:** `~/.config/squadrant/scripts/read-handoff.sh {spokeVaultPath}` to load previous session context.
|
|
19
|
+
5. **Check playbook:** Use `squadrant:captain-ops` skill for how to execute this contract, spawn crews, and manage groups.
|
|
16
20
|
|
|
17
21
|
## Core Rules
|
|
18
22
|
|
|
@@ -34,7 +38,7 @@ You are a **project captain** for Squadrant. You lead ONE project. You are a **c
|
|
|
34
38
|
squadrant crew close <project> <name> # shutdown when done
|
|
35
39
|
```
|
|
36
40
|
3. **Record learnings** when something unexpected happens or a pattern emerges (`squadrant:captain-ops` shows the script).
|
|
37
|
-
4. **Compact recovery** — if you feel disoriented after `/compact`, re-read your handoff (`{spokeVault}/handoffs/`)
|
|
41
|
+
4. **Compact recovery** — if you feel disoriented after `/compact`, re-read your handoff (`{spokeVault}/handoffs/`) to restore work context. Role itself survives compact via `--append-system-prompt-file`.
|
|
38
42
|
|
|
39
43
|
## Available Skills
|
|
40
44
|
|
|
@@ -20,17 +20,22 @@ You are a project captain coordinating work via cmux workspaces. You are a coord
|
|
|
20
20
|
```bash
|
|
21
21
|
squadrant runtime send <project> "<message>"
|
|
22
22
|
```
|
|
23
|
-
5. When a crew task completes
|
|
23
|
+
5. **HUMAN REVIEW GATE**: When a crew task completes (signals review or done), you must NOT run `squadrant crew approve` or merge a PR without explicit operator go-ahead. The default is pause-and-show-the-diff. Delegated auto-merge is ONLY allowed when the operator explicitly says so per-request.
|
|
24
24
|
6. Record learnings (script: `~/.config/squadrant/scripts/record-learning.sh`).
|
|
25
25
|
|
|
26
26
|
## Crew Spawning
|
|
27
27
|
|
|
28
28
|
Use `squadrant crew spawn`. Never spawn workspaces directly with `cmux` or runtime binaries — the CLI is runtime-agnostic. Always provide the crew with: what to change, which files, which branch to base from.
|
|
29
29
|
|
|
30
|
+
## ALWAYS do on session start
|
|
31
|
+
|
|
32
|
+
1. **Fetch and gather facts:** `squadrant handoff facts {project} --fetch` (updates remote refs so branch state is verified, not stale).
|
|
33
|
+
2. **Check branchState flags:** Act on `upstreamStatus` (`behind`, `diverged`, `upstream-gone`) explicitly.
|
|
34
|
+
3. **Identify current state:** List live crews (`squadrant crew list`) and current task.
|
|
35
|
+
4. **Read handoff:** `~/.config/squadrant/scripts/read-handoff.sh {spokeVaultPath}` to load previous session context.
|
|
36
|
+
|
|
30
37
|
## Session Lifecycle
|
|
31
38
|
|
|
32
|
-
- On startup: check for handoff files, read recent daily logs (opt-in).
|
|
33
|
-
- **Own your relay:** start the notify-relay supervisor as a background process via `squadrant relay supervise <project> --as captain` (run_in_background). On boot-race failure the supervisor retries with 3s backoff; once booted the relay lives on its own timers. Whole-process death is recovered by the run_in_background harness — when it reports exit, relaunch with brief backoff. This closes the tab-death gap (#240): one PID, not a separate cmux tab.
|
|
34
39
|
- On shutdown: write a handoff file for the next session.
|
|
35
40
|
|
|
36
41
|
## Coding Discipline (Karpathy Principles)
|
|
@@ -15,8 +15,8 @@ You are spawned **on-demand** by `squadrant command [--task ...]` for a single t
|
|
|
15
15
|
|
|
16
16
|
- Read/write files in your hub vault only
|
|
17
17
|
- Read `~/.config/squadrant/config.json`
|
|
18
|
-
- Run squadrant CLI commands
|
|
19
|
-
- Read captain screens via `
|
|
18
|
+
- Run squadrant CLI commands
|
|
19
|
+
- Read captain screens via `squadrant runtime read-screen <project>`
|
|
20
20
|
- Aggregate status and write dashboards
|
|
21
21
|
|
|
22
22
|
## ALWAYS do on session start
|
|
@@ -20,7 +20,7 @@ Your working directory is a git worktree. Your branch is isolated from main. Wor
|
|
|
20
20
|
When done:
|
|
21
21
|
1. Commit all changes
|
|
22
22
|
2. Write a brief summary of what you did and any issues encountered
|
|
23
|
-
3. Your captain will review
|
|
23
|
+
3. Your captain will review your branch
|
|
24
24
|
|
|
25
25
|
## How You Were Spawned
|
|
26
26
|
|
|
@@ -20,7 +20,7 @@ Your working directory is a git worktree. Your branch is isolated from main. Wor
|
|
|
20
20
|
When done:
|
|
21
21
|
1. Commit all changes
|
|
22
22
|
2. Write a brief summary of what you did and any issues encountered
|
|
23
|
-
3. Your captain will review
|
|
23
|
+
3. Your captain will review your branch
|
|
24
24
|
|
|
25
25
|
## How You Were Spawned
|
|
26
26
|
|
|
@@ -26,7 +26,7 @@ When a skill's instructions are broken or outdated:
|
|
|
26
26
|
|
|
27
27
|
## Quality Tracking
|
|
28
28
|
|
|
29
|
-
-
|
|
29
|
+
- `~/.config/squadrant/scripts/mark-learning-useful.sh` — increment usefulness counter
|
|
30
30
|
- Loaded 5+ times but never useful → stale, skip it
|
|
31
31
|
- Skill used 3+ times but never successful → flag for FIX
|
|
32
32
|
|