opencode-thrum-pro 0.1.13 → 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.
Files changed (24) hide show
  1. package/assets/skills/coordinator-assessing-agent-completion/SKILL.md +17 -20
  2. package/assets/skills/coordinator-deploying-a-node/SKILL.md +2 -2
  3. package/assets/skills/coordinator-hotpath-merge-gate/SKILL.md +9 -1
  4. package/assets/skills/coordinator-merging-code/SKILL.md +79 -5
  5. package/assets/skills/coordinator-philosophy-merge-gate/SKILL.md +1 -1
  6. package/assets/skills/coordinator-rolling-out-to-nodes/SKILL.md +2 -2
  7. package/assets/skills/diagnosing-fleet-and-daemon/SKILL.md +1 -1
  8. package/assets/skills/implementer-receiving-dispatch/SKILL.md +1 -1
  9. package/assets/skills/orchestrate/SKILL.md +1 -1
  10. package/assets/skills/persistent-watcher-archetype/SKILL.md +1 -1
  11. package/assets/skills/persistent-watcher-archetype/resources/roster-watch.sh +3 -3
  12. package/assets/skills/project-setup/SKILL.md +7 -12
  13. package/assets/skills/project-setup/resources/implementation-agent.md +2 -2
  14. package/assets/skills/researcher-maintaining-memory/SKILL.md +1 -1
  15. package/assets/skills/thrum/resources/CLI_REFERENCE.md +1 -1
  16. package/assets/skills/thrum/resources/LISTENER_PATTERN.md +2 -2
  17. package/assets/skills/using-monitors/SKILL.md +8 -3
  18. package/assets/skills/using-tmux-ssh/SKILL.md +32 -21
  19. package/assets/skills/using-tmux-ssh/resources/tmux-ssh +1158 -0
  20. package/assets/skills/verify-against-plan/SKILL.md +1 -1
  21. package/dist/installer.js +3 -5
  22. package/package.json +1 -1
  23. package/assets/skills/coordinator-context-monitoring/SKILL.md +0 -685
  24. 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.