opencode-thrum-pro 0.1.12 → 0.1.14
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 +5 -0
- package/assets/commands/thrum-compact.md +5 -0
- package/assets/skills/coordinator-assessing-agent-completion/SKILL.md +17 -20
- package/assets/skills/coordinator-deploying-a-node/SKILL.md +2 -2
- package/assets/skills/coordinator-hotpath-merge-gate/SKILL.md +11 -2
- package/assets/skills/coordinator-merging-code/SKILL.md +79 -5
- package/assets/skills/coordinator-philosophy-merge-gate/SKILL.md +2 -2
- package/assets/skills/coordinator-rolling-out-to-nodes/SKILL.md +2 -2
- package/assets/skills/diagnosing-fleet-and-daemon/SKILL.md +1 -1
- package/assets/skills/implementer-receiving-dispatch/SKILL.md +1 -1
- package/assets/skills/orchestrate/SKILL.md +1 -1
- package/assets/skills/persistent-watcher-archetype/SKILL.md +24 -8
- package/assets/skills/persistent-watcher-archetype/resources/roster-watch.sh +3 -3
- package/assets/skills/project-setup/SKILL.md +7 -12
- package/assets/skills/project-setup/resources/implementation-agent.md +2 -2
- package/assets/skills/researcher-maintaining-memory/SKILL.md +1 -1
- package/assets/skills/thrum/resources/CLI_REFERENCE.md +1 -1
- package/assets/skills/thrum/resources/LISTENER_PATTERN.md +2 -2
- package/assets/skills/using-monitors/SKILL.md +156 -18
- package/assets/skills/using-tmux-ssh/SKILL.md +121 -0
- package/assets/skills/using-tmux-ssh/resources/tmux-ssh +1158 -0
- package/assets/skills/verify-against-plan/SKILL.md +1 -1
- package/dist/installer.js +3 -5
- package/package.json +1 -1
- package/assets/skills/coordinator-context-monitoring/SKILL.md +0 -685
- package/assets/skills/coordinator-post-restart-sweep/SKILL.md +0 -135
|
@@ -1,135 +0,0 @@
|
|
|
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.
|