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.
Files changed (101) hide show
  1. package/assets/commands/thrum-_deviations-protocol.md +87 -0
  2. package/assets/commands/thrum-_generator-idempotency-protocol.md +15 -0
  3. package/assets/commands/thrum-_project-rules-protocol.md +18 -0
  4. package/assets/commands/thrum-_snapshot-protocol.md +265 -0
  5. package/assets/commands/thrum-_stamp-protocol.md +112 -0
  6. package/assets/commands/thrum-_verify-before-write-protocol.md +27 -0
  7. package/assets/commands/thrum-inbox.md +22 -0
  8. package/assets/commands/thrum-load-context.md +17 -0
  9. package/assets/commands/thrum-overview.md +17 -0
  10. package/assets/commands/thrum-prime.md +30 -0
  11. package/assets/commands/thrum-quickstart.md +14 -0
  12. package/assets/commands/thrum-reply.md +28 -0
  13. package/assets/commands/thrum-restart-extended.md +195 -0
  14. package/assets/commands/thrum-restart.md +293 -0
  15. package/assets/commands/thrum-send.md +31 -0
  16. package/assets/commands/thrum-sleep-extended.md +186 -0
  17. package/assets/commands/thrum-sleep.md +212 -0
  18. package/assets/commands/thrum-team.md +12 -0
  19. package/assets/commands/thrum-update-project.md +259 -0
  20. package/assets/commands/thrum-wait.md +14 -0
  21. package/assets/skills/adversarial-critique/SKILL.md +242 -0
  22. package/assets/skills/brainstorm-queue-aware/SKILL.md +167 -0
  23. package/assets/skills/brainstorm-steward/SKILL.md +181 -0
  24. package/assets/skills/choosing-subagent-models/SKILL.md +244 -0
  25. package/assets/skills/closing-findings-while-warm/SKILL.md +104 -0
  26. package/assets/skills/configure-roles/SKILL.md +229 -0
  27. package/assets/skills/coordinator-assessing-agent-completion/SKILL.md +205 -0
  28. package/assets/skills/coordinator-assessing-agent-completion/scan.py +117 -0
  29. package/assets/skills/coordinator-branch-split-on-block/SKILL.md +168 -0
  30. package/assets/skills/coordinator-context-monitoring/SKILL.md +674 -0
  31. package/assets/skills/coordinator-dispatching-work/SKILL.md +288 -0
  32. package/assets/skills/coordinator-hotpath-merge-gate/SKILL.md +522 -0
  33. package/assets/skills/coordinator-interacting-with-the-owner/SKILL.md +171 -0
  34. package/assets/skills/coordinator-maintaining-memory/SKILL.md +89 -0
  35. package/assets/skills/coordinator-managing-state-and-lifecycle/SKILL.md +192 -0
  36. package/assets/skills/coordinator-merging-code/SKILL.md +331 -0
  37. package/assets/skills/coordinator-philosophy-merge-gate/SKILL.md +442 -0
  38. package/assets/skills/coordinator-plan-reconcile-gate/SKILL.md +198 -0
  39. package/assets/skills/coordinator-post-restart-sweep/SKILL.md +135 -0
  40. package/assets/skills/coordinator-running-autonomous-feature-development/SKILL.md +199 -0
  41. package/assets/skills/coordinator-running-brainstorm-cycles/SKILL.md +654 -0
  42. package/assets/skills/coordinator-running-review-cycles/SKILL.md +153 -0
  43. package/assets/skills/coordinator-single-responsibility-merge-gate/SKILL.md +14 -0
  44. package/assets/skills/diagnosing-fleet-and-daemon/SKILL.md +255 -0
  45. package/assets/skills/efficient-multi-agent-research/SKILL.md +177 -0
  46. package/assets/skills/fixing-documentation-errors/SKILL.md +258 -0
  47. package/assets/skills/implementer-maintaining-memory/SKILL.md +84 -0
  48. package/assets/skills/implementer-orchestrating-execution/SKILL.md +125 -0
  49. package/assets/skills/implementer-receiving-dispatch/SKILL.md +127 -0
  50. package/assets/skills/implementer-receiving-review-feedback/SKILL.md +125 -0
  51. package/assets/skills/implementer-status-and-handoff/SKILL.md +150 -0
  52. package/assets/skills/implementer-tdd-and-quality/SKILL.md +99 -0
  53. package/assets/skills/memory-audit-recover/SKILL.md +153 -0
  54. package/assets/skills/memory-curate/SKILL.md +139 -0
  55. package/assets/skills/memory-maintenance/SKILL.md +87 -0
  56. package/assets/skills/memory-read-discipline/SKILL.md +164 -0
  57. package/assets/skills/memory-search-advanced/SKILL.md +217 -0
  58. package/assets/skills/memory-write-discipline/SKILL.md +135 -0
  59. package/assets/skills/orchestrate/SKILL.md +795 -0
  60. package/assets/skills/persistent-watcher-archetype/SKILL.md +225 -0
  61. package/assets/skills/prime-agent/SKILL.md +92 -0
  62. package/assets/skills/project-hotpath-gate/SKILL.md +255 -0
  63. package/assets/skills/project-philosophy/SKILL.md +418 -0
  64. package/assets/skills/project-philosophy/resources/philosophy-template.md +155 -0
  65. package/assets/skills/project-philosophy/resources/reliability-class-library.md +653 -0
  66. package/assets/skills/project-setup/SKILL.md +1007 -0
  67. package/assets/skills/project-setup/resources/implementation-agent.md +826 -0
  68. package/assets/skills/researcher-answering-queries/SKILL.md +100 -0
  69. package/assets/skills/researcher-investigating/SKILL.md +152 -0
  70. package/assets/skills/researcher-maintaining-memory/SKILL.md +176 -0
  71. package/assets/skills/state-migration/SKILL.md +54 -0
  72. package/assets/skills/thrum/SKILL.md +161 -0
  73. package/assets/skills/thrum/resources/ANTI_PATTERNS.md +132 -0
  74. package/assets/skills/thrum/resources/BOUNDARIES.md +56 -0
  75. package/assets/skills/thrum/resources/CLI_REFERENCE.md +1066 -0
  76. package/assets/skills/thrum/resources/IDENTITY.md +49 -0
  77. package/assets/skills/thrum/resources/LISTENER_PATTERN.md +64 -0
  78. package/assets/skills/thrum/resources/MESSAGING.md +163 -0
  79. package/assets/skills/thrum/resources/TMUX_SESSIONS.md +118 -0
  80. package/assets/skills/thrum/resources/WORKTREES.md +117 -0
  81. package/assets/skills/thrum-memory/SKILL.md +138 -0
  82. package/assets/skills/trace-spec-to-plan/SKILL.md +104 -0
  83. package/assets/skills/trace-spec-to-plan/resources/sweep-agent-prompt.md +57 -0
  84. package/assets/skills/update-queue/SKILL.md +149 -0
  85. package/assets/skills/using-the-queue/SKILL.md +172 -0
  86. package/assets/skills/using-thrum-state/SKILL.md +104 -0
  87. package/assets/skills/verify-against-plan/SKILL.md +323 -0
  88. package/assets/skills/verify-against-source/SKILL.md +237 -0
  89. package/assets/skills/watcher-archetype/SKILL.md +84 -0
  90. package/assets/skills/writing-durable-markdown/SKILL.md +66 -0
  91. package/dist/hooks/block-sync-cd.d.ts +9 -0
  92. package/dist/hooks/block-sync-cd.js +71 -0
  93. package/dist/hooks/block-sync-cd.test.d.ts +1 -0
  94. package/dist/hooks/block-sync-cd.test.js +61 -0
  95. package/dist/hooks/shell-env.d.ts +8 -0
  96. package/dist/hooks/shell-env.js +22 -0
  97. package/dist/index.d.ts +6 -0
  98. package/dist/index.js +25 -0
  99. package/dist/installer.d.ts +2 -0
  100. package/dist/installer.js +86 -0
  101. 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.