opencode-thrum-pro 0.1.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/assets/commands/thrum-_deviations-protocol.md +87 -0
- package/assets/commands/thrum-_generator-idempotency-protocol.md +15 -0
- package/assets/commands/thrum-_project-rules-protocol.md +18 -0
- package/assets/commands/thrum-_snapshot-protocol.md +265 -0
- package/assets/commands/thrum-_stamp-protocol.md +112 -0
- package/assets/commands/thrum-_verify-before-write-protocol.md +27 -0
- package/assets/commands/thrum-inbox.md +22 -0
- package/assets/commands/thrum-load-context.md +17 -0
- package/assets/commands/thrum-overview.md +17 -0
- package/assets/commands/thrum-prime.md +30 -0
- package/assets/commands/thrum-quickstart.md +14 -0
- package/assets/commands/thrum-reply.md +28 -0
- package/assets/commands/thrum-restart-extended.md +195 -0
- package/assets/commands/thrum-restart.md +293 -0
- package/assets/commands/thrum-send.md +31 -0
- package/assets/commands/thrum-sleep-extended.md +186 -0
- package/assets/commands/thrum-sleep.md +212 -0
- package/assets/commands/thrum-team.md +12 -0
- package/assets/commands/thrum-update-project.md +259 -0
- package/assets/commands/thrum-wait.md +14 -0
- package/assets/skills/adversarial-critique/SKILL.md +242 -0
- package/assets/skills/brainstorm-queue-aware/SKILL.md +167 -0
- package/assets/skills/brainstorm-steward/SKILL.md +181 -0
- package/assets/skills/choosing-subagent-models/SKILL.md +244 -0
- package/assets/skills/closing-findings-while-warm/SKILL.md +104 -0
- package/assets/skills/configure-roles/SKILL.md +229 -0
- package/assets/skills/coordinator-assessing-agent-completion/SKILL.md +205 -0
- package/assets/skills/coordinator-assessing-agent-completion/scan.py +117 -0
- package/assets/skills/coordinator-branch-split-on-block/SKILL.md +168 -0
- package/assets/skills/coordinator-context-monitoring/SKILL.md +674 -0
- package/assets/skills/coordinator-dispatching-work/SKILL.md +288 -0
- package/assets/skills/coordinator-hotpath-merge-gate/SKILL.md +522 -0
- package/assets/skills/coordinator-interacting-with-the-owner/SKILL.md +171 -0
- package/assets/skills/coordinator-maintaining-memory/SKILL.md +89 -0
- package/assets/skills/coordinator-managing-state-and-lifecycle/SKILL.md +192 -0
- package/assets/skills/coordinator-merging-code/SKILL.md +331 -0
- package/assets/skills/coordinator-philosophy-merge-gate/SKILL.md +442 -0
- package/assets/skills/coordinator-plan-reconcile-gate/SKILL.md +198 -0
- package/assets/skills/coordinator-post-restart-sweep/SKILL.md +135 -0
- package/assets/skills/coordinator-running-autonomous-feature-development/SKILL.md +199 -0
- package/assets/skills/coordinator-running-brainstorm-cycles/SKILL.md +654 -0
- package/assets/skills/coordinator-running-review-cycles/SKILL.md +153 -0
- package/assets/skills/coordinator-single-responsibility-merge-gate/SKILL.md +14 -0
- package/assets/skills/diagnosing-fleet-and-daemon/SKILL.md +255 -0
- package/assets/skills/efficient-multi-agent-research/SKILL.md +177 -0
- package/assets/skills/fixing-documentation-errors/SKILL.md +258 -0
- package/assets/skills/implementer-maintaining-memory/SKILL.md +84 -0
- package/assets/skills/implementer-orchestrating-execution/SKILL.md +125 -0
- package/assets/skills/implementer-receiving-dispatch/SKILL.md +127 -0
- package/assets/skills/implementer-receiving-review-feedback/SKILL.md +125 -0
- package/assets/skills/implementer-status-and-handoff/SKILL.md +150 -0
- package/assets/skills/implementer-tdd-and-quality/SKILL.md +99 -0
- package/assets/skills/memory-audit-recover/SKILL.md +153 -0
- package/assets/skills/memory-curate/SKILL.md +139 -0
- package/assets/skills/memory-maintenance/SKILL.md +87 -0
- package/assets/skills/memory-read-discipline/SKILL.md +164 -0
- package/assets/skills/memory-search-advanced/SKILL.md +217 -0
- package/assets/skills/memory-write-discipline/SKILL.md +135 -0
- package/assets/skills/orchestrate/SKILL.md +795 -0
- package/assets/skills/persistent-watcher-archetype/SKILL.md +225 -0
- package/assets/skills/prime-agent/SKILL.md +92 -0
- package/assets/skills/project-hotpath-gate/SKILL.md +255 -0
- package/assets/skills/project-philosophy/SKILL.md +418 -0
- package/assets/skills/project-philosophy/resources/philosophy-template.md +155 -0
- package/assets/skills/project-philosophy/resources/reliability-class-library.md +653 -0
- package/assets/skills/project-setup/SKILL.md +1007 -0
- package/assets/skills/project-setup/resources/implementation-agent.md +826 -0
- package/assets/skills/researcher-answering-queries/SKILL.md +100 -0
- package/assets/skills/researcher-investigating/SKILL.md +152 -0
- package/assets/skills/researcher-maintaining-memory/SKILL.md +176 -0
- package/assets/skills/state-migration/SKILL.md +54 -0
- package/assets/skills/thrum/SKILL.md +161 -0
- package/assets/skills/thrum/resources/ANTI_PATTERNS.md +132 -0
- package/assets/skills/thrum/resources/BOUNDARIES.md +56 -0
- package/assets/skills/thrum/resources/CLI_REFERENCE.md +1066 -0
- package/assets/skills/thrum/resources/IDENTITY.md +49 -0
- package/assets/skills/thrum/resources/LISTENER_PATTERN.md +64 -0
- package/assets/skills/thrum/resources/MESSAGING.md +163 -0
- package/assets/skills/thrum/resources/TMUX_SESSIONS.md +118 -0
- package/assets/skills/thrum/resources/WORKTREES.md +117 -0
- package/assets/skills/thrum-memory/SKILL.md +138 -0
- package/assets/skills/trace-spec-to-plan/SKILL.md +104 -0
- package/assets/skills/trace-spec-to-plan/resources/sweep-agent-prompt.md +57 -0
- package/assets/skills/update-queue/SKILL.md +149 -0
- package/assets/skills/using-the-queue/SKILL.md +172 -0
- package/assets/skills/using-thrum-state/SKILL.md +104 -0
- package/assets/skills/verify-against-plan/SKILL.md +323 -0
- package/assets/skills/verify-against-source/SKILL.md +237 -0
- package/assets/skills/watcher-archetype/SKILL.md +84 -0
- package/assets/skills/writing-durable-markdown/SKILL.md +66 -0
- package/dist/hooks/block-sync-cd.d.ts +9 -0
- package/dist/hooks/block-sync-cd.js +71 -0
- package/dist/hooks/block-sync-cd.test.d.ts +1 -0
- package/dist/hooks/block-sync-cd.test.js +61 -0
- package/dist/hooks/shell-env.d.ts +8 -0
- package/dist/hooks/shell-env.js +22 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +25 -0
- package/dist/installer.d.ts +2 -0
- package/dist/installer.js +86 -0
- package/package.json +49 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coordinator-post-restart-sweep
|
|
3
|
+
description: "Use immediately after the coordinator returns from a restart, compaction, or extended absence — as the first deliberate action post-prime. Detects agents whose latest assistant message indicates they are blocked waiting for a coordinator decision the coordinator may not have seen (question surfaced in pane, not in inbox). Safe to run any time the session feels 'we've been gone a while'; not just post-restart. Pairs with the coordinator-context-monitoring sweep (sibling sweep, different lens)."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Coordinator: Post-Restart Sweep for Waiting-on-Coord Agents
|
|
7
|
+
|
|
8
|
+
## When to invoke
|
|
9
|
+
|
|
10
|
+
The canonical trigger: **post-prime, as your first deliberate coordinator
|
|
11
|
+
action.** Restarts and compactions wipe in-flight context; an agent who surfaced
|
|
12
|
+
a question 20 minutes before your restart will still be standing at-pane with
|
|
13
|
+
their question visible — but the question lives in the agent's JSONL transcript,
|
|
14
|
+
not in your inbox. The sweep reads each agent's latest assistant message body,
|
|
15
|
+
pattern-matches against a library of empirically- observed waiting-on-coord
|
|
16
|
+
phrasings (mined from the project's conversation archive), and
|
|
17
|
+
flags hits.
|
|
18
|
+
|
|
19
|
+
Other reasonable triggers:
|
|
20
|
+
|
|
21
|
+
- After any extended coord absence (cron firing for the first time after a
|
|
22
|
+
multi-hour gap)
|
|
23
|
+
- When you suspect you missed a question — gut-check sweep
|
|
24
|
+
- At an epic merge gate where multiple agents may be standing by
|
|
25
|
+
- Anytime the inbox feels suspiciously quiet given the fleet size
|
|
26
|
+
|
|
27
|
+
## Step 1 — Run the sweep
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
bash scripts/waiting-on-coord-agent-sweep.sh --out /tmp/waiting-on-coord.txt
|
|
31
|
+
cat /tmp/waiting-on-coord.txt
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The script enumerates alive Claude agents (Codex/Cursor/OpenCode runtimes are
|
|
35
|
+
skipped at v1), extracts each agent's latest assistant
|
|
36
|
+
message body from the JSONL transcript at
|
|
37
|
+
`~/.claude/projects/<encoded-worktree>/<session>.jsonl`, and pattern-matches
|
|
38
|
+
against the regex library. Exit code is `0` if zero flagged, `1` if any flagged
|
|
39
|
+
— safe to chain into cron / hooks.
|
|
40
|
+
|
|
41
|
+
> **Edge case:** only the last 200 JSONL entries are scanned. An agent whose
|
|
42
|
+
> latest assistant message is older than the last 200 entries (e.g., a very
|
|
43
|
+
> active tool-call burst since the last assistant turn) is silently skipped.
|
|
44
|
+
> Rare in practice; raise the tail window in the script if it bites.
|
|
45
|
+
|
|
46
|
+
Output per flagged agent: agent identity + tmux session + worktree + idle time +
|
|
47
|
+
matched pattern labels + the last ~15 lines of the assistant message body as an
|
|
48
|
+
excerpt.
|
|
49
|
+
|
|
50
|
+
## Step 2 — Read each flagged agent's excerpt
|
|
51
|
+
|
|
52
|
+
For each `===== @<agent_id> · ... =====` block in the report:
|
|
53
|
+
|
|
54
|
+
1. **Read the excerpt verbatim.** Pattern-match is the trigger; the excerpt is
|
|
55
|
+
the evidence. Do not act on the pattern label alone — the excerpt may reveal
|
|
56
|
+
the agent is asking something already resolved, asking the wrong coord, or
|
|
57
|
+
actually fine (false positive).
|
|
58
|
+
2. **Cross-reference against your own context.** Have you already answered this
|
|
59
|
+
in a thrum message they haven't seen yet? Is this carried-forward from a
|
|
60
|
+
prior session whose decision is recorded in `thrum memory` or `dev-docs/`?
|
|
61
|
+
3. **Classify the blocker.**
|
|
62
|
+
|
|
63
|
+
## Step 3 — Decision tree per flagged agent
|
|
64
|
+
|
|
65
|
+
| Situation | Action |
|
|
66
|
+
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
67
|
+
| You know the answer / direction | Respond directly via `thrum send --to @<agent> --body-file reply.md` (body contains your reply) |
|
|
68
|
+
| Needs the owner's judgment (escalation) | Add to PENDING OWNER section; surface in next user turn |
|
|
69
|
+
| Needs investigation before you can answer | Ack via `thrum send --to @<agent> --body-file ack.md` (body: "investigating — back in <N>min") so they know they're seen |
|
|
70
|
+
| False positive — agent isn't actually blocked | No action. Optionally capture the false-positive pattern as a `coordinator-rule-*` memory for future tuning (see `coordinator-maintaining-memory`) |
|
|
71
|
+
| Agent's question is stale (already resolved) | Reply briefly with the resolution + pointer to where it was decided |
|
|
72
|
+
|
|
73
|
+
The decision tree is judgment work, not script automation. The sweep does
|
|
74
|
+
**not** auto-respond, auto-nudge, or auto-escalate — coord IS the recipient of
|
|
75
|
+
the report, and the right next action is context-dependent.
|
|
76
|
+
|
|
77
|
+
## Step 4 — Re-run the sweep after acting
|
|
78
|
+
|
|
79
|
+
After responding to all flagged agents:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
bash scripts/waiting-on-coord-agent-sweep.sh
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Convergence check: ideally zero flagged. If the same agent is still flagged,
|
|
86
|
+
either:
|
|
87
|
+
|
|
88
|
+
- Your reply hasn't propagated yet — wait a turn and re-sweep
|
|
89
|
+
- The agent has a second blocker the original reply didn't address — read the
|
|
90
|
+
excerpt again
|
|
91
|
+
- False positive standing — note it; consider updating the regex library in
|
|
92
|
+
`scripts/waiting-on-coord-agent-sweep.sh` (file a P3 bd if the false positive
|
|
93
|
+
is structural)
|
|
94
|
+
|
|
95
|
+
## Reference
|
|
96
|
+
|
|
97
|
+
- **Sweep script**: `scripts/waiting-on-coord-agent-sweep.sh` (Claude-only at
|
|
98
|
+
v1; non-Claude runtimes via future epoch adapters when available)
|
|
99
|
+
- **Pattern library source**: empirical mining of project conversation archive
|
|
100
|
+
via the episodic-memory plugin. Patterns observed at
|
|
101
|
+
least twice in real waiting-on-coord situations; literal examples include
|
|
102
|
+
PENDING OWNER banners, "your call", "awaiting your <X>", "Standing by for
|
|
103
|
+
coordinator's <X>", "Stopping here to surface". See the comment header in the
|
|
104
|
+
script for the full list with specificity ratings.
|
|
105
|
+
- **Test fixtures**: `tests/scripts/fixtures/waiting-on-coord/` — 6 positive and
|
|
106
|
+
3 negative real-conversation excerpts, validated by
|
|
107
|
+
`tests/scripts/waiting_on_coord_patterns_test.sh`.
|
|
108
|
+
- **Sibling sweep**: `scripts/error-and-context-agent-sweep.sh` — same
|
|
109
|
+
enumeration substrate, different lens (ctx % + api_errors instead of
|
|
110
|
+
waiting-on-coord). Future refactor opportunity: extract a shared
|
|
111
|
+
identity-enumeration + JSONL-resolution helper when a third sweep variant
|
|
112
|
+
lands.
|
|
113
|
+
- **Related discipline**:
|
|
114
|
+
- Escalations to the owner go in a top-level PENDING OWNER section and
|
|
115
|
+
re-surface every turn until answered
|
|
116
|
+
- `feedback_byte_equality_pane_detection` — when in doubt about an agent's
|
|
117
|
+
state, prefer JSONL substrate over pane diffs
|
|
118
|
+
- `reference_claude_jsonl_state_source` — the JSONL transcript is the
|
|
119
|
+
authoritative state source for Claude agents
|
|
120
|
+
|
|
121
|
+
## Iteration framing
|
|
122
|
+
|
|
123
|
+
The pattern library is v1, mined from a finite slice of project history. Expect
|
|
124
|
+
false positives + false negatives in the early weeks. When you see either:
|
|
125
|
+
|
|
126
|
+
- **False positive** (sweep flagged an agent who wasn't actually waiting): note
|
|
127
|
+
the regex label + the excerpt that fired it; consider tightening the pattern.
|
|
128
|
+
- **False negative** (an agent WAS waiting and the sweep missed them): extract
|
|
129
|
+
the exact phrasing, add a test fixture under
|
|
130
|
+
`tests/scripts/fixtures/waiting-on-coord/`, add a regex rule to the pattern
|
|
131
|
+
library in `scripts/waiting-on-coord-agent-sweep.sh`, and run the test
|
|
132
|
+
harness.
|
|
133
|
+
|
|
134
|
+
Refinements land as small `feat(scripts)` commits. Track structural improvements
|
|
135
|
+
(beyond regex) in a future bd ticket.
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coordinator-running-autonomous-feature-development
|
|
3
|
+
description: "Use when the coordinator is idle or in a post-merge lull and a small, self-contained, reversible backlog item exists that could plausibly be developed and planned autonomously, with the finished plan still going to the human for go/no-go. Not for inventing work to stay busy, for cross-cutting / schema / release-gating items, for items the human flagged as theirs, or for the dispatch and execution mechanics themselves."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Coordinator: Running Autonomous Feature Development
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
When idle and a qualifying backlog item exists, the coordinator drives the whole
|
|
11
|
+
front half: scan, select, stand up a brainstormer, **drive the design Q&A on the
|
|
12
|
+
questions it owns**, surface only the genuine judgment calls (batched),
|
|
13
|
+
dual-review to a clean plan, and present the human a finished plan for go/no-go.
|
|
14
|
+
On approval, execution routes through a **standing orchestrator**.
|
|
15
|
+
|
|
16
|
+
This skill sequences existing coordinator skills and adds two guardrails; it
|
|
17
|
+
cites each sibling at its handoff and never restates their mechanics.
|
|
18
|
+
|
|
19
|
+
**Worked example:** the catch-up / anti-entropy tier — a ~12-task epic taken
|
|
20
|
+
scan-to-finished-plan this way.
|
|
21
|
+
|
|
22
|
+
## When to Use
|
|
23
|
+
|
|
24
|
+
**Trigger:** you are the coordinator, you have idle capacity (or just hit a
|
|
25
|
+
post-merge lull), **and** a real qualifying backlog item exists.
|
|
26
|
+
|
|
27
|
+
**The trigger is two conditions, not one:** _(a qualifying item exists)_ **AND**
|
|
28
|
+
_(idle capacity exists)_. It is **not** "invent work to stay busy." Manufactured
|
|
29
|
+
busywork is the failure this skill prevents — see the guardrail below.
|
|
30
|
+
|
|
31
|
+
**When NOT to use:**
|
|
32
|
+
|
|
33
|
+
- No qualifying backlog item exists → stay idle. Do not manufacture work.
|
|
34
|
+
- The item is cross-cutting / schema / release-gating / public-facing / touches
|
|
35
|
+
the threat model or branch policy → surface to the human first (it fails
|
|
36
|
+
selection — see below).
|
|
37
|
+
- You are mid-dispatch or running the back half (execution, code review, merge)
|
|
38
|
+
→ those are owned by the sibling skills, not this one.
|
|
39
|
+
|
|
40
|
+
## The loop (the winning pattern)
|
|
41
|
+
|
|
42
|
+
| Step | What you do | Composes (cite, don't restate) |
|
|
43
|
+
| ------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| 1. Scan & select | Find a qualifying backlog item (criteria below). Fails any criterion → surface to the human before pulling. | bd backlog / project-state "queued" notes |
|
|
45
|
+
| 2. Stand up the brainstormer | Spawn a brainstormer in an isolated worktree. | **`coordinator-running-brainstorm-cycles`** |
|
|
46
|
+
| 3. Drive the Q&A yourself | Answer design questions you own; batch the genuine judgment calls and surface that batch to the human. | **`coordinator-running-brainstorm-cycles`** |
|
|
47
|
+
| 4. Dual-review brainstorm & plan | Run the load-bearing dual-review cycles to ready-to-merge. | **`coordinator-running-brainstorm-cycles`** review gates |
|
|
48
|
+
| 5. Project-setup | Convert the approved plan into a bd epic + tasks + impl prompt + worktree. | **`thrum:project-setup`** (the researcher runs it) |
|
|
49
|
+
| 6. Present finished plan to the human | Go/no-go on the finished, dual-reviewed plan. **Mandatory gate.** | — |
|
|
50
|
+
| 7. **Handoff** | On the human's go → hand to dispatch. **The route-through-orchestrator guardrail is load-bearing here.** | **`coordinator-dispatching-work`** → **`thrum:orchestrate`** → **`coordinator-running-review-cycles`** → **`coordinator-managing-state-and-lifecycle`** |
|
|
51
|
+
|
|
52
|
+
**Project-setup (step 5) is researcher-owned** — the researcher runs
|
|
53
|
+
`thrum:project-setup` in their own worktree; it is not coordinator-owned.
|
|
54
|
+
|
|
55
|
+
**Scope ends at step 7.** Everything past the handoff (orchestrator dispatch,
|
|
56
|
+
epic execution, code review, merge) is owned by the back-half siblings.
|
|
57
|
+
|
|
58
|
+
**Keep the brainstormer warm until merge.** At the handoff the brainstormer is
|
|
59
|
+
**not** dismissed — it stays warm as a review tie-breaker through implementation
|
|
60
|
+
until merge, then is torn down. It holds the design rationale and adjudicates
|
|
61
|
+
review disputes the implementer/reviewer can't resolve.
|
|
62
|
+
|
|
63
|
+
## Backlog selection — pull autonomously only when ALL hold
|
|
64
|
+
|
|
65
|
+
1. **Bounded blast radius** — single subsystem/package; not a cross-cutting
|
|
66
|
+
protocol or schema change.
|
|
67
|
+
2. **Reversible** — no irreversible data migration; no public-API or release
|
|
68
|
+
commitment.
|
|
69
|
+
3. **Narrow design space** — direction already implied by prior decisions; you
|
|
70
|
+
have the domain depth to drive the Q&A.
|
|
71
|
+
4. **Sized** — roughly one epic, ~one orchestrator-driven cohort (one
|
|
72
|
+
orchestrator running one epic wave without spawning a second). Soft guidance,
|
|
73
|
+
not a task-count gate.
|
|
74
|
+
5. **No manufactured urgency** — not release-gating.
|
|
75
|
+
6. **Traceable source** — a bd backlog item, a deferred follow-up, or a
|
|
76
|
+
project-state "queued" note.
|
|
77
|
+
|
|
78
|
+
**Fail any → surface to the human before pulling.** Hard escalation triggers:
|
|
79
|
+
schema migration, cross-version/release-line change, public-facing/website,
|
|
80
|
+
security/threat-model shift, branch-policy, or anything the human flagged as
|
|
81
|
+
theirs.
|
|
82
|
+
|
|
83
|
+
**Trigger source matters.** The 6 criteria gate **coordinator-initiated idle
|
|
84
|
+
scans** — those require all 6. An **explicit human-directed pull bypasses
|
|
85
|
+
criteria 1–6** (the human already made the selection call), **but you still run
|
|
86
|
+
the Q&A-vs-escalate logic and the mandatory plan-approval gate.** The human
|
|
87
|
+
choosing the item does not waive the finished-plan go/no-go.
|
|
88
|
+
|
|
89
|
+
## Guardrail 1 — proactive backlog, not idle-and-wait
|
|
90
|
+
|
|
91
|
+
**Default posture when idle: scan for qualifying backlog and pull it. Do not sit
|
|
92
|
+
waiting for instructions.**
|
|
93
|
+
|
|
94
|
+
**Never write invented discipline into a restart snapshot.** Self-imposed rules
|
|
95
|
+
survive restarts and propagate silently — an undocumented invented rule can
|
|
96
|
+
outlive its author and later be enforced as if it were the human's mandate.
|
|
97
|
+
|
|
98
|
+
| Rationalization | Reality |
|
|
99
|
+
| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
100
|
+
| "I lack explicit authorization to pull this, so I should wait." | **WRONG** — the skill authorizes scan-and-pull when all 6 criteria hold. Idle-and-wait is the exact failure mode this skill prevents. |
|
|
101
|
+
| "I'll write a 'do not manufacture work' rule into my snapshot to stay disciplined." | **WRONG** — that invented rule propagates across restarts unchallenged. Never write invented discipline into a snapshot. |
|
|
102
|
+
|
|
103
|
+
## Guardrail 2 — ALWAYS route through a standing orchestrator
|
|
104
|
+
|
|
105
|
+
**NEVER stand up a dedicated implementer yourself. ALWAYS route implementation
|
|
106
|
+
through a standing orchestrator.**
|
|
107
|
+
|
|
108
|
+
The reason, in one line: orchestrators own the implementer lifecycle and the
|
|
109
|
+
`--model sonnet` pin; standing one up yourself risks the implementer inheriting
|
|
110
|
+
opus. Your lane is dispatch-decision + gate + merge. Full dispatch mechanics
|
|
111
|
+
live in **`coordinator-dispatching-work`**.
|
|
112
|
+
|
|
113
|
+
**Recovery:** if an implementer was ever stood up directly, **tear it down
|
|
114
|
+
before handing to the orchestrator.** Do not let the orchestrator adopt a
|
|
115
|
+
coordinator-spawned implementer — it may carry the wrong model.
|
|
116
|
+
|
|
117
|
+
| Rationalization | Reality |
|
|
118
|
+
| -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
119
|
+
| "I'll just stand up the implementer myself, it's faster." | **WRONG** — route through a standing orchestrator. |
|
|
120
|
+
| "The orchestrator can just adopt the implementer I already spawned." | **WRONG** — it may carry opus. Tear it down first; let the orchestrator spawn its own with the sonnet pin. |
|
|
121
|
+
|
|
122
|
+
## Coordinator-run Q&A vs escalate
|
|
123
|
+
|
|
124
|
+
Drive far, surface little.
|
|
125
|
+
|
|
126
|
+
**Answer yourself when** the question is a technical/design detail inside a
|
|
127
|
+
subsystem you understand, has a clear best answer given prior decisions, and is
|
|
128
|
+
reversible / low-stakes.
|
|
129
|
+
|
|
130
|
+
**Escalate to the human when** the answer changes user-visible behavior/shape,
|
|
131
|
+
touches philosophy/policy (threat model, release strategy, branch policy),
|
|
132
|
+
creates an irreversible commitment, or has multiple defensible options with
|
|
133
|
+
material **product** tradeoffs.
|
|
134
|
+
|
|
135
|
+
**Default behavior:** drive as far as possible, then **batch** the genuine
|
|
136
|
+
judgment calls into ONE surfacing — don't interrupt per-question.
|
|
137
|
+
|
|
138
|
+
**Mid-brainstorm fork:** if a genuinely contentious design fork surfaces
|
|
139
|
+
mid-brainstorm on an item that already passed selection, **escalate
|
|
140
|
+
immediately** (batch to the human) — do **not** retroactively un-select the
|
|
141
|
+
item. Also surface to the human that the **selection criteria failed to catch
|
|
142
|
+
the fork**, so the criteria can be tightened.
|
|
143
|
+
|
|
144
|
+
## Runway management
|
|
145
|
+
|
|
146
|
+
A refinement of the Q&A rule — how to surface questions without burning your own
|
|
147
|
+
context.
|
|
148
|
+
|
|
149
|
+
- **Default — batch-surface.** The brainstormer surfaces its **full question
|
|
150
|
+
agenda**; you answer in one batch, not per-question round-trips. This is the
|
|
151
|
+
runway-efficient default.
|
|
152
|
+
- **Per-question inline** is the variant for short brainstorms (few questions;
|
|
153
|
+
you are the domain driver).
|
|
154
|
+
- **Escalate to human-joins-the-pane** when your context crosses the ~50% tier
|
|
155
|
+
**or** the human signals they want to drive — then you step out.
|
|
156
|
+
|
|
157
|
+
## Human gate
|
|
158
|
+
|
|
159
|
+
**Mandatory human-in-the-loop:**
|
|
160
|
+
|
|
161
|
+
1. **Plan approval before implementation dispatch** — go/no-go on the finished,
|
|
162
|
+
dual-reviewed plan (step 6).
|
|
163
|
+
2. **Backlog-item selection when the item fails the selection criteria.**
|
|
164
|
+
3. **The batched judgment calls** from the Q&A rule, as needed.
|
|
165
|
+
|
|
166
|
+
**Optional / informational:** progress status, final merge report (the merge
|
|
167
|
+
report itself is produced by **`coordinator-managing-state-and-lifecycle`**).
|
|
168
|
+
|
|
169
|
+
**Do not over-gate.** Once the human approves the plan, **execute and report —
|
|
170
|
+
do not re-ask.**
|
|
171
|
+
|
|
172
|
+
## Red Flags — STOP
|
|
173
|
+
|
|
174
|
+
- "I'll just stand up the implementer myself." → Route through a standing
|
|
175
|
+
orchestrator.
|
|
176
|
+
- "I lack authorization to pull this, so I'll wait." → Scan-and-pull when all 6
|
|
177
|
+
criteria hold.
|
|
178
|
+
- "I'll note in my snapshot not to manufacture work." → Never write invented
|
|
179
|
+
discipline into a snapshot.
|
|
180
|
+
- "The human picked this item, so I can skip the plan-approval gate." →
|
|
181
|
+
Human-directed pull still hits the mandatory go/no-go.
|
|
182
|
+
- "This fork is contentious, so the item was a bad pick — un-select it." →
|
|
183
|
+
Escalate the fork; keep the item in flight.
|
|
184
|
+
- "It's a schema/release/public change but small, I'll just pull it." → Fails
|
|
185
|
+
selection. Surface first.
|
|
186
|
+
- "The plan is approved, I can dismiss the brainstormer now." → Keep it warm as
|
|
187
|
+
a review tie-breaker until merge.
|
|
188
|
+
|
|
189
|
+
## Common Mistakes
|
|
190
|
+
|
|
191
|
+
- **Standing up the implementer directly** — the single most-corrected misstep.
|
|
192
|
+
Always the orchestrator.
|
|
193
|
+
- **Surfacing every question** instead of driving and batching — burns the
|
|
194
|
+
human's attention; defeats the pattern.
|
|
195
|
+
- **Re-gating approved work** — re-asking after go/no-go. Execute and report.
|
|
196
|
+
- **Dismissing the brainstormer at handoff** — keep it warm as a tie-breaker
|
|
197
|
+
until merge.
|
|
198
|
+
- **Restating sibling mechanics** here — cite the sibling skill; this skill is
|
|
199
|
+
the spine, not a copy.
|