opencode-thrum-pro 0.1.6 → 0.1.8
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-compact-extended.md +36 -21
- package/assets/commands/thrum-compact.md +19 -18
- package/assets/commands/thrum-restart-extended.md +1 -5
- package/assets/commands/thrum-restart.md +2 -2
- package/assets/commands/thrum-sleep-extended.md +1 -5
- package/assets/commands/thrum-sleep.md +1 -5
- package/assets/commands/thrum-update-project.md +1 -1
- package/assets/skills/brainstorm-queue-aware/SKILL.md +1 -1
- package/assets/skills/brainstorm-steward/SKILL.md +3 -3
- package/assets/skills/choosing-subagent-models/SKILL.md +183 -74
- package/assets/skills/closing-findings-while-warm/SKILL.md +1 -2
- package/assets/skills/configure-roles/SKILL.md +2 -2
- package/assets/skills/coordinator-assessing-agent-completion/SKILL.md +11 -10
- package/assets/skills/coordinator-branch-split-on-block/SKILL.md +1 -2
- package/assets/skills/coordinator-context-monitoring/SKILL.md +11 -12
- package/assets/skills/coordinator-deploying-a-node/SKILL.md +3 -1
- package/assets/skills/coordinator-dispatching-work/SKILL.md +5 -4
- package/assets/skills/coordinator-hotpath-merge-gate/SKILL.md +9 -7
- package/assets/skills/coordinator-interacting-with-the-owner/SKILL.md +1 -2
- package/assets/skills/coordinator-maintaining-memory/SKILL.md +1 -1
- package/assets/skills/coordinator-managing-state-and-lifecycle/SKILL.md +10 -3
- package/assets/skills/coordinator-merging-code/SKILL.md +21 -14
- package/assets/skills/coordinator-philosophy-merge-gate/SKILL.md +4 -5
- package/assets/skills/coordinator-plan-reconcile-gate/SKILL.md +1 -2
- package/assets/skills/coordinator-rolling-out-to-nodes/SKILL.md +1 -0
- package/assets/skills/coordinator-running-brainstorm-cycles/SKILL.md +4 -5
- package/assets/skills/coordinator-running-review-cycles/SKILL.md +1 -2
- package/assets/{commands/thrum-_deviations-protocol.md → skills/deviations-protocol/SKILL.md} +6 -12
- package/assets/skills/efficient-multi-agent-research/SKILL.md +2 -2
- package/assets/skills/generator-idempotency-protocol/SKILL.md +9 -0
- package/assets/skills/implementer-maintaining-memory/SKILL.md +3 -4
- package/assets/skills/implementer-orchestrating-execution/SKILL.md +1 -2
- package/assets/skills/implementer-receiving-dispatch/SKILL.md +15 -17
- package/assets/skills/implementer-receiving-review-feedback/SKILL.md +3 -4
- package/assets/skills/implementer-status-and-handoff/SKILL.md +1 -14
- package/assets/skills/implementer-tdd-and-quality/SKILL.md +2 -2
- package/assets/skills/memory-audit-recover/SKILL.md +7 -5
- package/assets/skills/memory-curate/SKILL.md +3 -3
- package/assets/skills/memory-maintenance/SKILL.md +2 -0
- package/assets/skills/memory-write-discipline/SKILL.md +1 -1
- package/assets/skills/orchestrate/SKILL.md +34 -5
- package/assets/skills/persistent-watcher-archetype/SKILL.md +2 -2
- package/assets/skills/persistent-watcher-archetype/resources/jev_watcher_filter.py +5 -5
- package/assets/skills/persistent-watcher-archetype/resources/roster-watch.sh +5 -5
- package/assets/skills/persistent-watcher-archetype/resources/roster-watch_test.sh +2 -2
- package/assets/skills/persistent-watcher-archetype/resources/thrum-capture-fallback.sh +1 -1
- package/assets/skills/persistent-watcher-archetype/resources/thrum-watch-pane-capture.sh +3 -3
- package/assets/skills/prime-agent/SKILL.md +1 -1
- package/assets/skills/project-hotpath-gate/SKILL.md +1 -2
- package/assets/skills/project-philosophy/SKILL.md +2 -3
- package/assets/skills/project-rules-protocol/SKILL.md +12 -0
- package/assets/skills/project-setup/SKILL.md +9 -10
- package/assets/skills/project-setup/resources/implementation-agent.md +1 -2
- package/assets/skills/researcher-answering-queries/SKILL.md +1 -2
- package/assets/skills/researcher-investigating/SKILL.md +6 -8
- package/assets/skills/researcher-maintaining-memory/SKILL.md +3 -1
- package/assets/{commands/thrum-_snapshot-protocol.md → skills/snapshot-protocol/SKILL.md} +10 -15
- package/assets/{commands/thrum-_stamp-protocol.md → skills/stamp-protocol/SKILL.md} +5 -6
- package/assets/skills/thrum/SKILL.md +9 -4
- package/assets/skills/thrum/resources/CLI_REFERENCE.md +32 -27
- package/assets/skills/thrum-memory/SKILL.md +1 -1
- package/assets/skills/using-monitors/SKILL.md +198 -0
- package/assets/skills/using-the-queue/SKILL.md +2 -3
- package/assets/skills/using-thrum-state/SKILL.md +3 -3
- package/assets/skills/verify-against-plan/SKILL.md +2 -2
- package/dist/hooks/block-sync-cd.js +1 -1
- package/dist/hooks/block-sync-cd.test.js +1 -1
- package/dist/installer-assets.test.d.ts +1 -0
- package/dist/installer-assets.test.js +41 -0
- package/package.json +1 -1
- package/assets/commands/thrum-_compact-runtime-commands.md +0 -61
- package/assets/commands/thrum-_generator-idempotency-protocol.md +0 -15
- package/assets/commands/thrum-_project-rules-protocol.md +0 -18
- package/assets/commands/thrum-_verify-before-write-protocol.md +0 -27
|
@@ -51,14 +51,11 @@ skill) BEFORE composing your snapshot below — these survive compaction
|
|
|
51
51
|
independently of the prose continuation file and are what a post-compact
|
|
52
52
|
render reads back.
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
`thrum agent worktree --authoritative` —
|
|
56
|
-
or `git rev-parse --show-toplevel`, both
|
|
57
|
-
a documented snapshot-save loss class;
|
|
58
|
-
|
|
59
|
-
```text
|
|
60
|
-
${REPO}/claude-plugin/commands/_snapshot-protocol.md
|
|
61
|
-
```
|
|
54
|
+
Invoke the /thrum:snapshot-protocol skill and follow it, starting with its
|
|
55
|
+
Step 1 (resolve your worktree ONLY via `thrum agent worktree --authoritative` —
|
|
56
|
+
NEVER `thrum whoami --field worktree` or `git rev-parse --show-toplevel`, both
|
|
57
|
+
cwd-resolved and the root cause of a documented snapshot-save loss class;
|
|
58
|
+
there is no git fallback).
|
|
62
59
|
|
|
63
60
|
Apply its Step 2 (compose your continuation) per the structure guidance.
|
|
64
61
|
|
|
@@ -77,6 +74,15 @@ self-contained:
|
|
|
77
74
|
> `thrum prime --light` briefing already auto-injected by the SessionStart
|
|
78
75
|
> hook; only run `thrum:prime-agent` if it did NOT appear. Do NOT manually run
|
|
79
76
|
> full `thrum prime`. Then continue from §16.
|
|
77
|
+
> If you must re-read this file (no briefing appeared): read the NEWEST
|
|
78
|
+
> `.thrum/agents/<your-id>/sessions/*-restart.md` in the MAIN repo (the prime
|
|
79
|
+
> ARCHIVES the snapshot there); fall back to `.thrum/restart/<your-id>.md` only
|
|
80
|
+
> if it still exists. Find the newest with:
|
|
81
|
+
> `R=$(git rev-parse --show-toplevel); ls -1t "$(cat "$R/.thrum/redirect" 2>/dev/null || echo "$R/.thrum")"/agents/<your-id>/sessions/*-restart.md | head -1`
|
|
82
|
+
> (`$R/.thrum/redirect` in a worktree names the main repo's `.thrum`; using `$R`
|
|
83
|
+
> keeps this independent of your current directory). Open it with the Read tool
|
|
84
|
+
> (not Bash sed/cat). The `sessions/` file lives under the repo's `.thrum`, so
|
|
85
|
+
> that is allowed.
|
|
80
86
|
|
|
81
87
|
Then §1…§16 as normal, with §16 (immediate next actions) actionable from a
|
|
82
88
|
compacted (not cold) start.
|
|
@@ -135,12 +141,6 @@ is not torn down, so `/thrum:sleep-extended`'s teardown-loss risk does not apply
|
|
|
135
141
|
> A single `thrum tmux send "$SESSION" "<command>"` call has no such split to
|
|
136
142
|
> make.
|
|
137
143
|
|
|
138
|
-
On a non-Claude runtime this block sends that runtime's own compact-equivalent
|
|
139
|
-
command in place of `/compact` — see
|
|
140
|
-
`${REPO}/claude-plugin/commands/_compact-runtime-commands.md` for the cited
|
|
141
|
-
per-runtime table; `scripts/sync-skills.sh` applies the substitution when
|
|
142
|
-
syncing this file to each runtime's plugin tree.
|
|
143
|
-
|
|
144
144
|
Firing `/compact` before the Step 3 Write lands compacts a pre-write context and
|
|
145
145
|
resumes from a stale/blank file — the exact failure this command prevents. This
|
|
146
146
|
block (paste the two values printed by the Step 3 PREP block into its first two
|
|
@@ -236,6 +236,7 @@ if [ "$SNAPSHOT_OK" = 1 ] && [ "$SESSION_OK" = 1 ]; then
|
|
|
236
236
|
echo "Report this to your coordinator (or the operator if you are top-level) and stop; a human or coordinator must inspect the pane and submit or clear it."
|
|
237
237
|
exit 1
|
|
238
238
|
fi
|
|
239
|
+
RESUME_PROMPT="Compaction complete - please continue: your Resume Plan is in the auto-injected briefing (# Previous Session Context). If it is missing, read ${SNAPSHOT} or the newest *-restart.md in .thrum/agents/${AGENT}/sessions/ of the main repo, then execute its numbered resume plan."
|
|
239
240
|
if [ "$SEND_RC" -ne 0 ]; then
|
|
240
241
|
echo "ERROR: thrum tmux send exited ${SEND_RC} — the daemon-routed self-send failed; it will NOT queue or deliver /compact."
|
|
241
242
|
# Fail-loud fallback, NOT silent idle: attempt the compact command
|
|
@@ -274,16 +275,29 @@ if [ "$SNAPSHOT_OK" = 1 ] && [ "$SESSION_OK" = 1 ]; then
|
|
|
274
275
|
exit 1
|
|
275
276
|
fi
|
|
276
277
|
echo "Raw fallback send-keys succeeded on socket $RAW_TMUX_SOCK."
|
|
278
|
+
# The daemon route is known-dead here (that is why this is the
|
|
279
|
+
# fallback), and on several runtimes no hook fires at all after
|
|
280
|
+
# compaction — so queue the resume prompt on the same explicit socket,
|
|
281
|
+
# same single-call text+C-m discipline. Without this the pane idles
|
|
282
|
+
# after compaction with an empty composer until a human types.
|
|
283
|
+
tmux -S "$RAW_TMUX_SOCK" send-keys -t "${SESSION}:0.0" "$RESUME_PROMPT" C-m
|
|
284
|
+
RAW_RESUME_RC=$?
|
|
285
|
+
if [ "$RAW_RESUME_RC" -eq 0 ]; then
|
|
286
|
+
:
|
|
287
|
+
else
|
|
288
|
+
echo "WARNING: raw resume-prompt send-keys exited ${RAW_RESUME_RC} — the post-compact resume prompt was NOT queued. If the pane sits idle after compaction, send it a resume prompt by hand."
|
|
289
|
+
fi
|
|
277
290
|
fi
|
|
278
|
-
#
|
|
279
|
-
#
|
|
280
|
-
#
|
|
291
|
+
# resume-prompt: queue the RESUME PROMPT right behind /compact — on the daemon
|
|
292
|
+
# queue when the daemon-routed send succeeded (dispatched once the pane is
|
|
293
|
+
# idle again AFTER the compaction, FIFO behind /compact: not a timer, fires
|
|
294
|
+
# exactly once), or via the raw explicit-socket send above when the raw
|
|
295
|
+
# fallback carried /compact. Hook output is
|
|
281
296
|
# context only — it does not start a turn — so without this an idle pane with
|
|
282
297
|
# an empty inbox can sit at 0% context, empty composer, until a human types.
|
|
283
298
|
# The daemon dispatches it once the pane is idle again AFTER the compaction
|
|
284
299
|
# (FIFO behind /compact), so it is not a timer and it fires exactly once.
|
|
285
300
|
if [ "$SEND_RC" -eq 0 ]; then
|
|
286
|
-
RESUME_PROMPT="Compaction complete - please continue: your Resume Plan is in the auto-injected briefing (# Previous Session Context). If it is missing, read ${SNAPSHOT} or the newest *-restart.md in .thrum/agents/${AGENT}/sessions/ of the main repo, then execute its numbered resume plan."
|
|
287
301
|
thrum tmux send "$AGENT" "$RESUME_PROMPT"
|
|
288
302
|
RESUME_RC=$?
|
|
289
303
|
if [ "$RESUME_RC" -eq 0 ]; then
|
|
@@ -333,9 +347,10 @@ of that is needed here. Resume LEAN, in this order:
|
|
|
333
347
|
snapshot (moves `${REPO}/.thrum/restart/${AGENT}.md` into the main repo's
|
|
334
348
|
`.thrum/agents/${AGENT}/sessions/`), so the original path is normally GONE
|
|
335
349
|
by the time you look — that is by design, not loss. Only if no briefing
|
|
336
|
-
appeared (daemon unreachable), read the
|
|
337
|
-
`sessions/` directory (
|
|
338
|
-
|
|
350
|
+
appeared (daemon unreachable), read the NEWEST `*-restart.md` in that
|
|
351
|
+
`sessions/` directory, e.g. `ls -1t "$(cat "${REPO}/.thrum/redirect" 2>/dev/null || echo "${REPO}/.thrum")"/agents/${AGENT}/sessions/*-restart.md | head -1`
|
|
352
|
+
(fall back to `${REPO}/.thrum/restart/${AGENT}.md` only if it still
|
|
353
|
+
exists; use the Read tool, not Bash sed/cat, on `~/.claude` paths) and run `thrum:prime-agent` manually as the fallback. Never manually
|
|
339
354
|
run full `thrum prime` when the briefing is present.
|
|
340
355
|
2. **A resume prompt starts your first turn.** Step 4 queued a "Compaction
|
|
341
356
|
complete - please continue" prompt on the daemon right behind `/compact`; it
|
|
@@ -53,14 +53,11 @@ skill) BEFORE composing your snapshot below — these survive compaction
|
|
|
53
53
|
independently of the prose continuation file and are what a post-compact
|
|
54
54
|
render reads back.
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
`thrum agent worktree --authoritative` —
|
|
58
|
-
or `git rev-parse --show-toplevel`, both
|
|
59
|
-
a documented snapshot-save loss class;
|
|
60
|
-
|
|
61
|
-
```text
|
|
62
|
-
${REPO}/claude-plugin/commands/_snapshot-protocol.md
|
|
63
|
-
```
|
|
56
|
+
Invoke the /thrum:snapshot-protocol skill and follow it, starting with its
|
|
57
|
+
Step 1 (resolve your worktree ONLY via `thrum agent worktree --authoritative` —
|
|
58
|
+
NEVER `thrum whoami --field worktree` or `git rev-parse --show-toplevel`, both
|
|
59
|
+
cwd-resolved and the root cause of a documented snapshot-save loss class;
|
|
60
|
+
there is no git fallback).
|
|
64
61
|
|
|
65
62
|
Apply its Step 2 (compose your continuation) per the structure guidance.
|
|
66
63
|
|
|
@@ -79,6 +76,15 @@ self-contained:
|
|
|
79
76
|
> `thrum prime --light` briefing already auto-injected by the SessionStart
|
|
80
77
|
> hook; only run `thrum:prime-agent` if it did NOT appear. Do NOT manually run
|
|
81
78
|
> full `thrum prime`. Then continue from §9.
|
|
79
|
+
> If you must re-read this file (no briefing appeared): read the NEWEST
|
|
80
|
+
> `.thrum/agents/<your-id>/sessions/*-restart.md` in the MAIN repo (the prime
|
|
81
|
+
> ARCHIVES the snapshot there); fall back to `.thrum/restart/<your-id>.md` only
|
|
82
|
+
> if it still exists. Find the newest with:
|
|
83
|
+
> `R=$(git rev-parse --show-toplevel); ls -1t "$(cat "$R/.thrum/redirect" 2>/dev/null || echo "$R/.thrum")"/agents/<your-id>/sessions/*-restart.md | head -1`
|
|
84
|
+
> (`$R/.thrum/redirect` in a worktree names the main repo's `.thrum`; using `$R`
|
|
85
|
+
> keeps this independent of your current directory). Open it with the Read tool
|
|
86
|
+
> (not Bash sed/cat). The `sessions/` file lives under the repo's `.thrum`, so
|
|
87
|
+
> that is allowed.
|
|
82
88
|
|
|
83
89
|
Then §1…§11 as normal, with §9 (Numbered resume plan) actionable from a
|
|
84
90
|
compacted (not cold) start.
|
|
@@ -135,12 +141,6 @@ not torn down, so `/thrum:sleep`'s teardown-loss risk does not apply here).
|
|
|
135
141
|
> A single `thrum tmux send "$SESSION" "<command>"` call has no such split to
|
|
136
142
|
> make.
|
|
137
143
|
|
|
138
|
-
On a non-Claude runtime this block sends that runtime's own compact-equivalent
|
|
139
|
-
command in place of `/compact` — see
|
|
140
|
-
`${REPO}/claude-plugin/commands/_compact-runtime-commands.md` for the cited
|
|
141
|
-
per-runtime table; `scripts/sync-skills.sh` applies the substitution when
|
|
142
|
-
syncing this file to each runtime's plugin tree.
|
|
143
|
-
|
|
144
144
|
Firing `/compact` before the Step 3 Write lands compacts a pre-write context and
|
|
145
145
|
resumes from a stale/blank file — the exact failure this command prevents. This
|
|
146
146
|
block (paste the two values printed by the Step 3 PREP block into its first two
|
|
@@ -234,7 +234,7 @@ if [ "$SNAPSHOT_OK" = 1 ] && [ "$SESSION_OK" = 1 ]; then
|
|
|
234
234
|
echo "ERROR: thrum tmux send exited ${SEND_RC} — /compact was not queued. Report and stop."
|
|
235
235
|
exit 1
|
|
236
236
|
fi
|
|
237
|
-
#
|
|
237
|
+
# resume-prompt: queue the RESUME PROMPT right behind /compact, on the same
|
|
238
238
|
# daemon queue. Hook output is context only — it does not start a turn — so
|
|
239
239
|
# without this an idle pane with an empty inbox can sit at 0% context, empty
|
|
240
240
|
# composer, until a human types. The daemon dispatches it once the pane is
|
|
@@ -281,9 +281,10 @@ of that is needed here. Resume LEAN, in this order:
|
|
|
281
281
|
snapshot (moves `${REPO}/.thrum/restart/${AGENT}.md` into the main repo's
|
|
282
282
|
`.thrum/agents/${AGENT}/sessions/`), so the original path is normally GONE
|
|
283
283
|
by the time you look — that is by design, not loss. Only if no briefing
|
|
284
|
-
appeared (daemon unreachable), read the
|
|
285
|
-
`sessions/` directory (
|
|
286
|
-
|
|
284
|
+
appeared (daemon unreachable), read the NEWEST `*-restart.md` in that
|
|
285
|
+
`sessions/` directory, e.g. `ls -1t "$(cat "${REPO}/.thrum/redirect" 2>/dev/null || echo "${REPO}/.thrum")"/agents/${AGENT}/sessions/*-restart.md | head -1`
|
|
286
|
+
(fall back to `${REPO}/.thrum/restart/${AGENT}.md` only if it still
|
|
287
|
+
exists; use the Read tool, not Bash sed/cat, on `~/.claude` paths) and run `thrum:prime-agent` manually as the fallback. Never manually
|
|
287
288
|
run full `thrum prime` when the briefing is present.
|
|
288
289
|
2. **A resume prompt starts your first turn.** Step 4 queued a "Compaction
|
|
289
290
|
complete - please continue" prompt on the daemon right behind `/compact`; it
|
|
@@ -54,11 +54,7 @@ mkdir -p "${REPO}/.thrum/restart"
|
|
|
54
54
|
|
|
55
55
|
### 2. Read the shared snapshot-composition partial
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
```text
|
|
60
|
-
${REPO}/claude-plugin/commands/_snapshot-protocol.md
|
|
61
|
-
```
|
|
57
|
+
Invoke the /thrum:snapshot-protocol skill and follow it.
|
|
62
58
|
|
|
63
59
|
It carries the CRITICAL DISCIPLINE block and BOTH the standard 11-section
|
|
64
60
|
structure and the EXTENDED 16-section structure with per-section guidance.
|
|
@@ -70,7 +70,7 @@ shapes everything else you write below it.
|
|
|
70
70
|
|
|
71
71
|
**Stamp your snapshot with the base it was authored against.**
|
|
72
72
|
Derive and emit the **Authored-against** stamp per
|
|
73
|
-
|
|
73
|
+
the /thrum:stamp-protocol skill and place it at the very top of your
|
|
74
74
|
§1 section (that protocol computes the SHA and merge_target for you — never
|
|
75
75
|
hand-type them). This is what lets `thrum prime` diff your snapshot at the next
|
|
76
76
|
wake and flag which cited files have MOVED; an unstamped snapshot reads as
|
|
@@ -361,7 +361,7 @@ Every archive already self-verifies: `sessionarchive.Archive` computes a
|
|
|
361
361
|
SHA-256 checksum of the snapshot content it read *before* the move, then
|
|
362
362
|
re-reads the file it just wrote at the destination and confirms the
|
|
363
363
|
checksums match (`sessionarchive.VerifyArchivedIdentity` /
|
|
364
|
-
`ChecksumContent`
|
|
364
|
+
`ChecksumContent` in the daemon's session-archive package) before
|
|
365
365
|
reporting success. A destination that exists but doesn't hash-match its
|
|
366
366
|
own pre-move content is treated as a hard failure of the archive call, not
|
|
367
367
|
a warning. This is what actually proves "the file at
|
|
@@ -58,11 +58,7 @@ no session end. Exit code 1.
|
|
|
58
58
|
|
|
59
59
|
### 2. Read the shared snapshot-composition partial
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
```text
|
|
64
|
-
${REPO}/claude-plugin/commands/_snapshot-protocol.md
|
|
65
|
-
```
|
|
61
|
+
Invoke the /thrum:snapshot-protocol skill and follow it.
|
|
66
62
|
|
|
67
63
|
Apply its Step 2 (compose your continuation) per the structure guidance.
|
|
68
64
|
|
|
@@ -62,11 +62,7 @@ no session end. Exit code 1. The skill is the wrong tool for non-tmux agents.
|
|
|
62
62
|
|
|
63
63
|
### 2. Read the shared snapshot-composition partial
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
```text
|
|
68
|
-
${REPO}/claude-plugin/commands/_snapshot-protocol.md
|
|
69
|
-
```
|
|
65
|
+
Invoke the /thrum:snapshot-protocol skill and follow it.
|
|
70
66
|
|
|
71
67
|
Apply its Step 2 (compose your continuation) per the structure guidance.
|
|
72
68
|
|
|
@@ -104,7 +104,7 @@ updating.
|
|
|
104
104
|
|
|
105
105
|
1. **Header line** — Update `Last Updated` date and `Phase` status summary. Also
|
|
106
106
|
derive and insert the Authored-against stamp, placing it immediately after
|
|
107
|
-
the `Last Updated` line (see
|
|
107
|
+
the `Last Updated` line (see the /thrum:stamp-protocol skill
|
|
108
108
|
for the exact two-line format).
|
|
109
109
|
|
|
110
110
|
2. **Current State Summary — LIVE STATE ONLY, SUPERSEDED EACH SESSION.**
|
|
@@ -32,7 +32,7 @@ answer," do this instead:
|
|
|
32
32
|
clear question, plus 2-3 concrete options (A/B/C) so the Steward has
|
|
33
33
|
something to decide between, not an open-ended essay prompt.
|
|
34
34
|
2. Send it as a `NEED` to your steward, per the NEED/ANSWER convention
|
|
35
|
-
(
|
|
35
|
+
(the NEED/ANSWER convention spec in the project's design docs):
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
38
|
thrum send --to @<steward> --stdin <<'EOF'
|
|
@@ -72,7 +72,7 @@ thread:
|
|
|
72
72
|
- **Push — inbox scan.** Each cycle, read your inbox (`thrum inbox`) for
|
|
73
73
|
messages from a roster brainstormer whose first line matches
|
|
74
74
|
`NEED [<topic>]:` (the convention from
|
|
75
|
-
|
|
75
|
+
the NEED/ANSWER convention spec in the project's design docs). Read
|
|
76
76
|
the topic, question, and options straight from the prose — there is no
|
|
77
77
|
structured payload to parse; you are a judgment agent reading a message
|
|
78
78
|
the way you'd read any message. The sender identity tells you which
|
|
@@ -242,9 +242,9 @@ state as soon as the brainstormer advances past it.
|
|
|
242
242
|
|
|
243
243
|
## Reuse note
|
|
244
244
|
|
|
245
|
-
|
|
245
|
+
The brainstorm-steward watch-params template in the project's design docs is the canonical
|
|
246
246
|
starting config for a new Brainstorm Steward — it uses the schema documented
|
|
247
|
-
in
|
|
247
|
+
in the watch-params schema spec unchanged, with an
|
|
248
248
|
empty `roster` to be populated as brainstormers are launched under it. Its
|
|
249
249
|
`parent` field ships pre-filled with this fleet's own escalation target —
|
|
250
250
|
when copying the template to a different fleet or box, replace that value
|