opencode-thrum-pro 0.1.4 → 0.1.5
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/skills/agent-messaging-protocol/SKILL.md +35 -0
- package/assets/skills/brainstormer-staying-current/SKILL.md +116 -0
- package/assets/skills/coordinator-running-brainstorm-cycles/SKILL.md +38 -52
- package/assets/skills/efficient-multi-agent-research/SKILL.md +3 -4
- package/assets/skills/persistent-watcher-archetype/SKILL.md +16 -12
- package/assets/skills/state-migration/SKILL.md +1 -1
- package/assets/skills/using-thrum-state/SKILL.md +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-messaging-protocol
|
|
3
|
+
description: "Use when forwarding or relaying information between parties, routing an owner answer, carrying a decision or request through an intermediary, summarizing another author's message, or adding interpretation to someone else's words."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Messaging Protocol for Forwarding and Relaying
|
|
7
|
+
|
|
8
|
+
- Communicate directly with the intended party whenever possible.
|
|
9
|
+
- Treat the original message as the authoritative source.
|
|
10
|
+
- Forward a pointer to the original message instead of retyping or paraphrasing its body.
|
|
11
|
+
- Include the original author, original message ID, intended recipient, and requested action.
|
|
12
|
+
- Attach `message:<original-message-id>` as a message reference when supported.
|
|
13
|
+
- Read the original message before acting: `thrum message get <message-id> --json`.
|
|
14
|
+
- Reply against the original message: `thrum reply <message-id> ...`.
|
|
15
|
+
- Do not route the response back through the intermediary.
|
|
16
|
+
- Add commentary or interpretation only when requested or necessary.
|
|
17
|
+
- Label added reasoning as `INTERPRETATION - @agent`.
|
|
18
|
+
- Never present an interpretation, summary, or recommendation as words or authority from the original author.
|
|
19
|
+
- Label a requested summary as `SUMMARY - @agent` and retain the original message ID.
|
|
20
|
+
- Preserve the original scope, urgency, constraints, and requested action.
|
|
21
|
+
- Do not introduce new requirements, decisions, risks, or authorization while routing.
|
|
22
|
+
- Ask the original author directly when clarification is required.
|
|
23
|
+
- Continue referencing the original message rather than an intermediary's summary.
|
|
24
|
+
- Identify corrections by the exact message they supersede.
|
|
25
|
+
- Distinguish delivery, acknowledgement, execution, and verification.
|
|
26
|
+
- Preserve the original thread audience when replying unless a deliberately narrower audience is required.
|
|
27
|
+
|
|
28
|
+
## Routing Envelope
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
ROUTE POINTER
|
|
32
|
+
From: @original-author
|
|
33
|
+
Message: msg_...
|
|
34
|
+
Action: Read and reply to the original message.
|
|
35
|
+
```
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstormer-staying-current
|
|
3
|
+
description: "Use when a long-lived brainstormer worktree may be behind its configured merge target, before review or handoff, or when asked to merge-forward and leave the worktree clean. Resolves the target and merge owner from Thrum config, preserves local work, and verifies freshness after the merge."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brainstormer: Stay Current with the Merge Target
|
|
7
|
+
|
|
8
|
+
Keep a long-lived brainstorm branch current without landing it into the merge
|
|
9
|
+
target. Every git write in this skill (commit, merge, revert, push) stays with
|
|
10
|
+
you — never delegate a git write to a subagent. Every `fetch` also stays with
|
|
11
|
+
you, the acting agent, per Preserve and Bind freshness below. If you delegate
|
|
12
|
+
the read-only merge-base/status analysis, load `choosing-subagent-models`
|
|
13
|
+
first and fence the subagent to `show`, `log`, `diff`, `grep`, `rev-parse`,
|
|
14
|
+
`merge-base`, `status` — the same read-only git surface CLAUDE.md requires for
|
|
15
|
+
every sub-agent — never `stash`, `reset`, `rebase`, `restore`, `clean`,
|
|
16
|
+
`commit`, `push`, or `checkout`.
|
|
17
|
+
|
|
18
|
+
## Resolve authority from config
|
|
19
|
+
|
|
20
|
+
Locate the canonical config from the current worktree:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
CONFIG=.thrum/config.json
|
|
24
|
+
if [ ! -f "$CONFIG" ]; then
|
|
25
|
+
COMMON_DIR=$(git rev-parse --path-format=absolute --git-common-dir)
|
|
26
|
+
CONFIG="${COMMON_DIR%/.git}/.thrum/config.json"
|
|
27
|
+
fi
|
|
28
|
+
test -f "$CONFIG"
|
|
29
|
+
TARGET=$(jq -er '.orchestration.merge_target | select(type == "string" and length > 0)' "$CONFIG")
|
|
30
|
+
MERGE_KING=$(jq -r --arg target "$TARGET" '.orchestration.merge_kings[$target] // "unset"' "$CONFIG")
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Treat an absent config or target as a blocker — merge-forward has nowhere to
|
|
34
|
+
target without them. A merge-forward only brings `origin/$TARGET` into the
|
|
35
|
+
brainstorm branch; it never grants permission to merge the brainstorm branch
|
|
36
|
+
into `$TARGET`, so it needs no landing authority to run and an `unset`
|
|
37
|
+
`MERGE_KING` never blocks it.
|
|
38
|
+
|
|
39
|
+
`orchestration.merge_kings` may not be populated for every target yet: `unset`
|
|
40
|
+
does NOT mean "nobody owns landing, proceed however" — it means the map
|
|
41
|
+
hasn't caught up (same gap `coordinator-merging-code/SKILL.md` documents for
|
|
42
|
+
branch-keyed lookups). `MERGE_KING` matters only when a conflict needs routing
|
|
43
|
+
or at final report. With it `unset` at either point, fall back to whichever
|
|
44
|
+
coordinator has actually been the merge authority for `$TARGET` in practice
|
|
45
|
+
(check with your team, or the project's operational convention) and
|
|
46
|
+
route/report to them the same as if the map had named them explicitly.
|
|
47
|
+
|
|
48
|
+
## Preserve before merging
|
|
49
|
+
|
|
50
|
+
Record the current branch, HEAD, status, and ahead/behind counts. Require an
|
|
51
|
+
attached non-target feature branch. Fetch the target branch explicitly:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
git fetch origin "refs/heads/$TARGET:refs/remotes/origin/$TARGET"
|
|
55
|
+
git rev-list --left-right --count HEAD..."origin/$TARGET"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
If the worktree is dirty, preserve tracked and untracked changes as a WIP
|
|
59
|
+
commit and record its SHA — never `git stash`. `stash` is a single shared
|
|
60
|
+
stack across every worktree on this box, not scoped to this worktree or to
|
|
61
|
+
you; a stash push or pop here can silently destroy or restore another agent's
|
|
62
|
+
uncommitted work, with no reflog entry and no recoverable blob for unstaged
|
|
63
|
+
content. A commit is yours alone and fully recoverable.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git add -A
|
|
67
|
+
git commit -m "wip: preserve <branch> before merge-forward <timestamp>"
|
|
68
|
+
git rev-parse HEAD
|
|
69
|
+
git status --short
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Do not squash, drop, or revert the WIP commit when the requested outcome is a
|
|
73
|
+
clean worktree — it is real history now, not something to discard.
|
|
74
|
+
|
|
75
|
+
Stop if the worktree is still dirty after the WIP commit. Never use `stash`,
|
|
76
|
+
reset, rebase, force checkout, clean, or force push to obtain a clean state —
|
|
77
|
+
`stash` is banned here exactly like the others, with no worktree-scoped
|
|
78
|
+
exception.
|
|
79
|
+
|
|
80
|
+
## Merge-forward
|
|
81
|
+
|
|
82
|
+
Merge the remote-tracking target into the brainstorm branch:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
git merge --no-edit "origin/$TARGET"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Resolve a conflict only when the correct result is supported by current source
|
|
89
|
+
and the branch's intended work. Otherwise stop with the conflict intact and
|
|
90
|
+
send the branch, worktree, target, and conflicted paths to the user or
|
|
91
|
+
`$MERGE_KING` for direction — falling back to the operational-convention
|
|
92
|
+
authority per above if `$MERGE_KING` is `unset`.
|
|
93
|
+
|
|
94
|
+
After a successful merge, run validation relevant to every resolved file and
|
|
95
|
+
always run `git diff --check origin/$TARGET..HEAD`.
|
|
96
|
+
|
|
97
|
+
## Bind freshness to handoff
|
|
98
|
+
|
|
99
|
+
Immediately before reporting success, fetch the target branch explicitly again
|
|
100
|
+
and verify the fetched target is an ancestor of HEAD:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
git fetch origin "refs/heads/$TARGET:refs/remotes/origin/$TARGET"
|
|
104
|
+
git rev-list --left-right --count HEAD..."origin/$TARGET"
|
|
105
|
+
git merge-base --is-ancestor "origin/$TARGET" HEAD
|
|
106
|
+
git status --short
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If the target advanced, repeat the merge-forward and verification, up to three
|
|
110
|
+
merge cycles in one run. After three moving-target results, stop and report the
|
|
111
|
+
new target SHA instead of claiming the branch is current.
|
|
112
|
+
|
|
113
|
+
Report the branch and target SHAs, ahead/behind counts, `$MERGE_KING` (or the
|
|
114
|
+
fallback authority if `unset`), validation, clean status, and the WIP commit
|
|
115
|
+
SHA if one was made. Do not push, squash, or drop the WIP commit unless the
|
|
116
|
+
user separately asks.
|
|
@@ -43,9 +43,10 @@ at every stage:
|
|
|
43
43
|
each time (`verify-against-source` + a prose-quality reviewer, sonnet sub-agents
|
|
44
44
|
in parallel — see "Review-loop mechanics" below). Skipping any review gate is a
|
|
45
45
|
documented anti-pattern. The brainstorm review catches design issues; the plan
|
|
46
|
-
review
|
|
47
|
-
|
|
48
|
-
the
|
|
46
|
+
review is the SOLE quality gate on the plan doc — the researcher authors the
|
|
47
|
+
plan directly (no external tool with its own internal reviewer sits upstream of
|
|
48
|
+
this gate); the prompt review catches plan→prompt translation errors before the
|
|
49
|
+
implementer executes against them.
|
|
49
50
|
|
|
50
51
|
## Subagent model selection
|
|
51
52
|
|
|
@@ -81,7 +82,7 @@ forwarding.
|
|
|
81
82
|
### Footer → commit → stamp (per stage)
|
|
82
83
|
|
|
83
84
|
1. After the artifact is written, append the gate footer:
|
|
84
|
-
`<!-- THRUM-GATE: stage=<brainstorm|plan|prompt> next=<dual-review|
|
|
85
|
+
`<!-- THRUM-GATE: stage=<brainstorm|plan|prompt> next=<dual-review|plan|project-setup|dispatch> -->`
|
|
85
86
|
2. **Commit the artifact (WIP) including the footer** — this gives the
|
|
86
87
|
supplementary `requesting-code-review` pass a real `HEAD~1..HEAD` range.
|
|
87
88
|
3. Run the dual review against that range; each fix cycle commits its changes
|
|
@@ -120,7 +121,7 @@ forwarding.
|
|
|
120
121
|
|
|
121
122
|
### Soft pre-flight greps (the SOFT enforcement tier)
|
|
122
123
|
|
|
123
|
-
Before
|
|
124
|
+
Before writing the plan (Phase 6) and before `project-setup` (Phase 7),
|
|
124
125
|
grep the prior artifact for `THRUM-REVIEW: stage=<S> verdict=Ready:Yes` (or
|
|
125
126
|
`verdict=OVERRIDE`); absent → STOP and run the review first. Anchor the match —
|
|
126
127
|
`grep -E '...verdict=Ready:Yes([[:space:]]|-->|$)'`, never `grep -F` — or an
|
|
@@ -150,32 +151,22 @@ structurally-enforceable gate is `project-setup` Phase 0 (it hard-bails).
|
|
|
150
151
|
`## Deviations from Source` block with attribution `owner decision`, never
|
|
151
152
|
silently absorbed.
|
|
152
153
|
|
|
153
|
-
###
|
|
154
|
+
### No external plugin drives this pipeline (D6)
|
|
154
155
|
|
|
155
|
-
|
|
156
|
-
|
|
156
|
+
Neither the brainstorm stage (Phase 2) nor the plan stage (Phase 6) invokes an
|
|
157
|
+
external skill — the researcher writes both artifacts directly, governed by
|
|
158
|
+
this skill's own protocol block (Phase 2) and structure/stamp/deviations
|
|
159
|
+
requirements (Phase 6). There is nothing to pre-flight-check or bail on for
|
|
160
|
+
either stage, and no `/plugin install` path: no such plugin is declared
|
|
161
|
+
anywhere in this repo's `.claude-plugin/marketplace.json` (thrum-tsaq4).
|
|
157
162
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
163
|
+
The one genuinely optional external supplement is `requesting-code-review`
|
|
164
|
+
(Review-loop mechanics, "Quality" row) — not resolvable → SKIP the
|
|
165
|
+
supplementary quality pass gracefully; the loop still runs on the
|
|
166
|
+
general-purpose primary, which is authoritative regardless.
|
|
162
167
|
|
|
163
|
-
`verify-against-source`
|
|
164
|
-
|
|
165
|
-
### Countermand the superpowers chain (outcome-based)
|
|
166
|
-
|
|
167
|
-
`brainstorming` auto-chains to `writing-plans`, and `writing-plans` defaults
|
|
168
|
-
pull toward subagent-driven execution — both bypass thrum's `project-setup`. At
|
|
169
|
-
each invocation, inject (keyed on the concept, so it survives upstream
|
|
170
|
-
rewording):
|
|
171
|
-
|
|
172
|
-
> Regardless of any execution-handoff, "recommended" sub-skill, or save-location
|
|
173
|
-
> default these skills emit, the ONLY downstream path in thrum is the next thrum
|
|
174
|
-
> stage. After the artifact is written, STOP — do not auto-chain. Save to the
|
|
175
|
-
> thrum path, not the superpowers default. For `writing-plans`: remove/replace
|
|
176
|
-
> the plan-header line matching the stable substring
|
|
177
|
-
> `REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development` and ignore
|
|
178
|
-
> the Execution-Handoff offer — the plan feeds `project-setup`.
|
|
168
|
+
`verify-against-source` and the general-purpose prose-quality pass carry no
|
|
169
|
+
external-plugin dependency and always work.
|
|
179
170
|
|
|
180
171
|
## Phase 1 — Set up the worktree, branch, and agent
|
|
181
172
|
|
|
@@ -353,12 +344,10 @@ distinction in the inbox display):
|
|
|
353
344
|
8. **Go-deep-then-ready instruction** — one sentence telling them to confirm
|
|
354
345
|
readiness, research aggressively, and have meaty material ready when the user
|
|
355
346
|
joins (not to sit idle waiting).
|
|
356
|
-
9. **
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
then Phase 6 runs `writing-plans` deliberately (with its own countermand).
|
|
361
|
-
See "Review-loop mechanics → Countermand the superpowers chain."
|
|
347
|
+
9. **Stop-at-the-artifact instruction** — tell the researcher explicitly: once
|
|
348
|
+
the brainstorm design doc is drafted, STOP there. It goes through the
|
|
349
|
+
Phase 3 review gate before anything else happens; the plan doc is a
|
|
350
|
+
separate, deliberate Phase 6 step after the brainstorm is LOCKED.
|
|
362
351
|
|
|
363
352
|
Send the whole thing as one `thrum send` call. The recipient's runtime will
|
|
364
353
|
display it as a single inbox message; structure beats brevity here.
|
|
@@ -475,23 +464,21 @@ expensive footguns hide.
|
|
|
475
464
|
## Phase 6 — Researcher writes the plan (with dual-review gate)
|
|
476
465
|
|
|
477
466
|
Once the brainstorm is LOCKED (and any companion design spec is LOCKED), the
|
|
478
|
-
researcher
|
|
479
|
-
|
|
480
|
-
brainstorm for its `THRUM-REVIEW: stage=brainstorm
|
|
481
|
-
`OVERRIDE`) stamp — absent → STOP and finish the
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
path, and strip the `subagent-driven-development` plan-header line — the plan
|
|
485
|
-
feeds `project-setup`, not superpowers execution.
|
|
467
|
+
researcher writes the implementation plan doc directly, converting the
|
|
468
|
+
brainstorm + spec into concrete steps. (First, the soft pre-flight grep:
|
|
469
|
+
`grep -F` the brainstorm for its `THRUM-REVIEW: stage=brainstorm
|
|
470
|
+
verdict=Ready:Yes` (or `OVERRIDE`) stamp — absent → STOP and finish the
|
|
471
|
+
brainstorm review.) The plan feeds `project-setup` — there is no other
|
|
472
|
+
downstream path.
|
|
486
473
|
|
|
487
474
|
**The plan doc gets the SAME dual-review treatment as the brainstorm.** This
|
|
488
|
-
review step is mandatory
|
|
489
|
-
|
|
490
|
-
contract-drift and quality issues
|
|
475
|
+
review step is mandatory: there is no internal reviewer upstream of it, so
|
|
476
|
+
this gate is the plan's only quality check. Independent review catches
|
|
477
|
+
contract-drift and quality issues a single author would miss.
|
|
491
478
|
|
|
492
479
|
**The researcher (not coord) dispatches the dual-review** in their own worktree:
|
|
493
480
|
|
|
494
|
-
1. Researcher writes plan v1
|
|
481
|
+
1. Researcher writes plan v1 directly.
|
|
495
482
|
2. Researcher authors the `## Deviations from Source` block per
|
|
496
483
|
`claude-plugin/commands/_deviations-protocol.md`, diffing plan v1 against
|
|
497
484
|
the brainstorm + design spec — BEFORE dual-review, so
|
|
@@ -573,9 +560,8 @@ review catches translation errors (plan → prompt) plus prompt-specific quality
|
|
|
573
560
|
4. Researcher signals "project-setup complete + post-setup dual-review applied"
|
|
574
561
|
back to coord, citing both review passes + final artifact paths.
|
|
575
562
|
|
|
576
|
-
Reaffirmation (
|
|
577
|
-
|
|
578
|
-
superpowers skill suggests it.
|
|
563
|
+
Reaffirmation (at the prompt stage): `project-setup` is the only downstream
|
|
564
|
+
path for the implementer prompt.
|
|
579
565
|
|
|
580
566
|
If the researcher signals "project-setup complete" WITHOUT mentioning the
|
|
581
567
|
post-setup reviews, ASK explicitly: "did the post-setup dual-review run on the
|
|
@@ -607,9 +593,9 @@ encodes this; include the verbatim protocol block in every briefing.
|
|
|
607
593
|
❌ **Half-batched findings.** Sending review findings before BOTH dual reviews
|
|
608
594
|
complete. Researcher fixes batch 1 and never sees batch 2.
|
|
609
595
|
|
|
610
|
-
❌ **Skipping the post-plan dual-review.**
|
|
611
|
-
|
|
612
|
-
|
|
596
|
+
❌ **Skipping the post-plan dual-review.** Proceeding directly to
|
|
597
|
+
`project-setup` without an independent review of the plan doc — there is no
|
|
598
|
+
internal reviewer upstream of it to lean on. The plan and the impl
|
|
613
599
|
prompt MUST get the same dual-axis review treatment the brainstorm gets — Phase
|
|
614
600
|
6 + Phase 7 explicit.
|
|
615
601
|
|
|
@@ -15,10 +15,9 @@ single report.
|
|
|
15
15
|
**Core principle:** The coordinator decides, sub-agents investigate. Keep
|
|
16
16
|
investigation results out of the main context until consolidated.
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
workflow: partition, investigate to disk, consolidate, then decide.
|
|
18
|
+
This skill is self-contained: partition, investigate to disk, consolidate,
|
|
19
|
+
then decide — the full dispatch mechanics (Agent tool syntax, background mode,
|
|
20
|
+
read-only scoping) are in "Core Pattern" below.
|
|
22
21
|
|
|
23
22
|
## When to Use
|
|
24
23
|
|
|
@@ -227,18 +227,22 @@ stability check, writes one report file, and emits one matchable summary
|
|
|
227
227
|
line. It is mechanical only — no auto-escalate, no auto-key — exactly the
|
|
228
228
|
scope this section already describes; judgment stays in your own turn.
|
|
229
229
|
|
|
230
|
-
**Setup (one-time per watcher instance):**
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
230
|
+
**Setup (one-time per watcher instance):** the script cannot locate itself
|
|
231
|
+
inside the plugin tree at run time — `thrum monitor`'s scheduled-process
|
|
232
|
+
environment has none of the plugin-root env vars a hook invocation gets
|
|
233
|
+
(`CLAUDE_PLUGIN_ROOT`, codex's `PLUGIN_ROOT`), and neither is reliably set
|
|
234
|
+
in an ordinary interactive turn either, so a shell `cp` against either
|
|
235
|
+
variable is not runtime-safe in any host. Copy both scripts out of the
|
|
236
|
+
skill's `resources/` into your own agent directory using your Read/Write
|
|
237
|
+
tools instead — the same skill-relative resolution every other `resources/`
|
|
238
|
+
reference in this plugin already uses, with no env var and no
|
|
239
|
+
runtime-versioned path involved:
|
|
240
|
+
|
|
241
|
+
1. Read `resources/thrum-watch-pane-capture.sh` (relative to this skill) and
|
|
242
|
+
Write its exact content to `.thrum/agents/<you>/thrum-watch-pane-capture.sh`.
|
|
243
|
+
2. Read `resources/thrum-capture-fallback.sh` and Write its exact content to
|
|
244
|
+
`.thrum/agents/<you>/thrum-capture-fallback.sh`.
|
|
245
|
+
3. `chmod +x .thrum/agents/<you>/thrum-watch-pane-capture.sh .thrum/agents/<you>/thrum-capture-fallback.sh`
|
|
242
246
|
|
|
243
247
|
Then register the monitor against that absolute copy path —
|
|
244
248
|
**`--notify-on-success` is MANDATORY, not optional decoration**: a
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: state-migration
|
|
3
|
-
description: "Use when your agent-local thrum state is empty AND you have an existing State.md file in your agent directory - this is a ONE-TIME conditional onboarding that fires only on that exact combination. Do NOT use if thrum state already has entries (nothing to migrate) or if you have no State.md (brand-new agent, nothing to migrate). Triggers on
|
|
3
|
+
description: "Use when your agent-local thrum state is empty AND you have an existing State.md file in your agent directory - this is a ONE-TIME conditional onboarding that fires only on that exact combination. Do NOT use if thrum state already has entries (nothing to migrate) or if you have no State.md (brand-new agent, nothing to migrate). Triggers on - first session after the thrum state redesign lands, `thrum state list` returning empty while State.md exists on disk, being asked to migrate your personal state."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Migrating personal State.md into `thrum state`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: using-thrum-state
|
|
3
|
-
description: "Use when reading or writing thrum state - checking your own agent-local current state at session start, updating your status/next-actions, reading a fleet fact like deploy state or topology before acting on it, citing a SHA or box fact in a decision, deciding whether a fleet row is fresh enough to trust, or responding to a freshness-sweep ping. Also use before writing any fleet row - deploy state, topology, worktree, agent pool, or a standing ruling - to confirm you are writing from a by-effect measurement, not a guess. Triggers on
|
|
3
|
+
description: "Use when reading or writing thrum state - checking your own agent-local current state at session start, updating your status/next-actions, reading a fleet fact like deploy state or topology before acting on it, citing a SHA or box fact in a decision, deciding whether a fleet row is fresh enough to trust, or responding to a freshness-sweep ping. Also use before writing any fleet row - deploy state, topology, worktree, agent pool, or a standing ruling - to confirm you are writing from a by-effect measurement, not a guess. Triggers on - citing a fleet fact, deploying, restarting a daemon, migrating schema, reconciling state at session start, receiving a stale-row ping."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Using Thrum State
|