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.
- package/assets/commands/thrum-_deviations-protocol.md +87 -0
- package/assets/commands/thrum-_generator-idempotency-protocol.md +15 -0
- package/assets/commands/thrum-_project-rules-protocol.md +18 -0
- package/assets/commands/thrum-_snapshot-protocol.md +265 -0
- package/assets/commands/thrum-_stamp-protocol.md +112 -0
- package/assets/commands/thrum-_verify-before-write-protocol.md +27 -0
- package/assets/commands/thrum-inbox.md +22 -0
- package/assets/commands/thrum-load-context.md +17 -0
- package/assets/commands/thrum-overview.md +17 -0
- package/assets/commands/thrum-prime.md +30 -0
- package/assets/commands/thrum-quickstart.md +14 -0
- package/assets/commands/thrum-reply.md +28 -0
- package/assets/commands/thrum-restart-extended.md +195 -0
- package/assets/commands/thrum-restart.md +293 -0
- package/assets/commands/thrum-send.md +31 -0
- package/assets/commands/thrum-sleep-extended.md +186 -0
- package/assets/commands/thrum-sleep.md +212 -0
- package/assets/commands/thrum-team.md +12 -0
- package/assets/commands/thrum-update-project.md +259 -0
- package/assets/commands/thrum-wait.md +14 -0
- package/assets/skills/adversarial-critique/SKILL.md +242 -0
- package/assets/skills/brainstorm-queue-aware/SKILL.md +167 -0
- package/assets/skills/brainstorm-steward/SKILL.md +181 -0
- package/assets/skills/choosing-subagent-models/SKILL.md +244 -0
- package/assets/skills/closing-findings-while-warm/SKILL.md +104 -0
- package/assets/skills/configure-roles/SKILL.md +229 -0
- package/assets/skills/coordinator-assessing-agent-completion/SKILL.md +205 -0
- package/assets/skills/coordinator-assessing-agent-completion/scan.py +117 -0
- package/assets/skills/coordinator-branch-split-on-block/SKILL.md +168 -0
- package/assets/skills/coordinator-context-monitoring/SKILL.md +674 -0
- package/assets/skills/coordinator-dispatching-work/SKILL.md +288 -0
- package/assets/skills/coordinator-hotpath-merge-gate/SKILL.md +522 -0
- package/assets/skills/coordinator-interacting-with-the-owner/SKILL.md +171 -0
- package/assets/skills/coordinator-maintaining-memory/SKILL.md +89 -0
- package/assets/skills/coordinator-managing-state-and-lifecycle/SKILL.md +192 -0
- package/assets/skills/coordinator-merging-code/SKILL.md +331 -0
- package/assets/skills/coordinator-philosophy-merge-gate/SKILL.md +442 -0
- package/assets/skills/coordinator-plan-reconcile-gate/SKILL.md +198 -0
- package/assets/skills/coordinator-post-restart-sweep/SKILL.md +135 -0
- package/assets/skills/coordinator-running-autonomous-feature-development/SKILL.md +199 -0
- package/assets/skills/coordinator-running-brainstorm-cycles/SKILL.md +654 -0
- package/assets/skills/coordinator-running-review-cycles/SKILL.md +153 -0
- package/assets/skills/coordinator-single-responsibility-merge-gate/SKILL.md +14 -0
- package/assets/skills/diagnosing-fleet-and-daemon/SKILL.md +255 -0
- package/assets/skills/efficient-multi-agent-research/SKILL.md +177 -0
- package/assets/skills/fixing-documentation-errors/SKILL.md +258 -0
- package/assets/skills/implementer-maintaining-memory/SKILL.md +84 -0
- package/assets/skills/implementer-orchestrating-execution/SKILL.md +125 -0
- package/assets/skills/implementer-receiving-dispatch/SKILL.md +127 -0
- package/assets/skills/implementer-receiving-review-feedback/SKILL.md +125 -0
- package/assets/skills/implementer-status-and-handoff/SKILL.md +150 -0
- package/assets/skills/implementer-tdd-and-quality/SKILL.md +99 -0
- package/assets/skills/memory-audit-recover/SKILL.md +153 -0
- package/assets/skills/memory-curate/SKILL.md +139 -0
- package/assets/skills/memory-maintenance/SKILL.md +87 -0
- package/assets/skills/memory-read-discipline/SKILL.md +164 -0
- package/assets/skills/memory-search-advanced/SKILL.md +217 -0
- package/assets/skills/memory-write-discipline/SKILL.md +135 -0
- package/assets/skills/orchestrate/SKILL.md +795 -0
- package/assets/skills/persistent-watcher-archetype/SKILL.md +225 -0
- package/assets/skills/prime-agent/SKILL.md +92 -0
- package/assets/skills/project-hotpath-gate/SKILL.md +255 -0
- package/assets/skills/project-philosophy/SKILL.md +418 -0
- package/assets/skills/project-philosophy/resources/philosophy-template.md +155 -0
- package/assets/skills/project-philosophy/resources/reliability-class-library.md +653 -0
- package/assets/skills/project-setup/SKILL.md +1007 -0
- package/assets/skills/project-setup/resources/implementation-agent.md +826 -0
- package/assets/skills/researcher-answering-queries/SKILL.md +100 -0
- package/assets/skills/researcher-investigating/SKILL.md +152 -0
- package/assets/skills/researcher-maintaining-memory/SKILL.md +176 -0
- package/assets/skills/state-migration/SKILL.md +54 -0
- package/assets/skills/thrum/SKILL.md +161 -0
- package/assets/skills/thrum/resources/ANTI_PATTERNS.md +132 -0
- package/assets/skills/thrum/resources/BOUNDARIES.md +56 -0
- package/assets/skills/thrum/resources/CLI_REFERENCE.md +1066 -0
- package/assets/skills/thrum/resources/IDENTITY.md +49 -0
- package/assets/skills/thrum/resources/LISTENER_PATTERN.md +64 -0
- package/assets/skills/thrum/resources/MESSAGING.md +163 -0
- package/assets/skills/thrum/resources/TMUX_SESSIONS.md +118 -0
- package/assets/skills/thrum/resources/WORKTREES.md +117 -0
- package/assets/skills/thrum-memory/SKILL.md +138 -0
- package/assets/skills/trace-spec-to-plan/SKILL.md +104 -0
- package/assets/skills/trace-spec-to-plan/resources/sweep-agent-prompt.md +57 -0
- package/assets/skills/update-queue/SKILL.md +149 -0
- package/assets/skills/using-the-queue/SKILL.md +172 -0
- package/assets/skills/using-thrum-state/SKILL.md +104 -0
- package/assets/skills/verify-against-plan/SKILL.md +323 -0
- package/assets/skills/verify-against-source/SKILL.md +237 -0
- package/assets/skills/watcher-archetype/SKILL.md +84 -0
- package/assets/skills/writing-durable-markdown/SKILL.md +66 -0
- package/dist/hooks/block-sync-cd.d.ts +9 -0
- package/dist/hooks/block-sync-cd.js +71 -0
- package/dist/hooks/block-sync-cd.test.d.ts +1 -0
- package/dist/hooks/block-sync-cd.test.js +61 -0
- package/dist/hooks/shell-env.d.ts +8 -0
- package/dist/hooks/shell-env.js +22 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +25 -0
- package/dist/installer.d.ts +2 -0
- package/dist/installer.js +86 -0
- package/package.json +49 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Anti-Patterns
|
|
2
|
+
|
|
3
|
+
Common mistakes when using Thrum and how to avoid them.
|
|
4
|
+
|
|
5
|
+
## 1. Using Thrum for Task Management
|
|
6
|
+
|
|
7
|
+
**Wrong:** Sending messages like "TODO: implement auth" to yourself. **Right:**
|
|
8
|
+
Use Beads (`bd create`) for task tracking. Use Thrum for coordination messages
|
|
9
|
+
between agents.
|
|
10
|
+
|
|
11
|
+
## 2. Polling Instead of Waiting
|
|
12
|
+
|
|
13
|
+
**Wrong:** Looping `thrum inbox` every 10 seconds. **Right:** Use `thrum wait`
|
|
14
|
+
which blocks efficiently until a message arrives. Or use the message-listener
|
|
15
|
+
sub-agent pattern for background monitoring.
|
|
16
|
+
|
|
17
|
+
## 3. Forgetting to Re-arm the Listener
|
|
18
|
+
|
|
19
|
+
**Wrong:** Processing messages from listener, then continuing work without
|
|
20
|
+
re-arming. **Right:** After processing listener results, always spawn a new
|
|
21
|
+
message-listener:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
Task(subagent_type="message-listener", run_in_background=true, prompt="...")
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 4. Sending Without an Explicit Recipient Flag
|
|
28
|
+
|
|
29
|
+
`thrum send 'msg'` with no `--to` or `--broadcast` is a hard error. The
|
|
30
|
+
previous default — silent broadcast to every team agent — was a real footgun,
|
|
31
|
+
so the CLI now requires the recipient to be explicit:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Wrong — hard-errors with a "missing recipient" prompt
|
|
35
|
+
thrum send "msg"
|
|
36
|
+
|
|
37
|
+
# Right — directed send (canonical form)
|
|
38
|
+
thrum send --to @your_coordinator --stdin <<'EOF'
|
|
39
|
+
msg
|
|
40
|
+
EOF
|
|
41
|
+
|
|
42
|
+
# Right — explicit team-wide fanout
|
|
43
|
+
thrum send --broadcast --stdin <<'EOF'
|
|
44
|
+
msg
|
|
45
|
+
EOF
|
|
46
|
+
|
|
47
|
+
# Right — legacy keyword form (still works; --broadcast preferred)
|
|
48
|
+
thrum send --to @everyone --stdin <<'EOF'
|
|
49
|
+
msg
|
|
50
|
+
EOF
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`--to` and `--broadcast` are mutually exclusive. `@everyone` continues to be
|
|
54
|
+
auto-created and handles membership dynamically.
|
|
55
|
+
|
|
56
|
+
## 5. Skipping Registration
|
|
57
|
+
|
|
58
|
+
**Wrong:** Sending messages without running `thrum quickstart` first. **Right:**
|
|
59
|
+
Always register at session start. Without registration, messages won't be routed
|
|
60
|
+
correctly and `thrum inbox` won't know who you are.
|
|
61
|
+
|
|
62
|
+
## 6. Vague Intents
|
|
63
|
+
|
|
64
|
+
**Wrong:**
|
|
65
|
+
`thrum quickstart --name <agent-name> --role <role> --module <module> --intent "Working on stuff"`
|
|
66
|
+
**Right:**
|
|
67
|
+
`thrum quickstart --name <agent-name> --role <role> --module <module>`
|
|
68
|
+
`--intent "Implementing JWT auth for login endpoint (bd-123)"`
|
|
69
|
+
|
|
70
|
+
Specific intents help other agents understand what you're doing via
|
|
71
|
+
`thrum team`.
|
|
72
|
+
|
|
73
|
+
## 7. Leaving Sessions Open
|
|
74
|
+
|
|
75
|
+
**Wrong:** Finishing work but not ending the session. **Right:** Run
|
|
76
|
+
`thrum session end` when done. Stale sessions make `thrum team` unreliable.
|
|
77
|
+
|
|
78
|
+
## 8. Reading Files Instead of Using CLI
|
|
79
|
+
|
|
80
|
+
**Wrong:** Reading `.git/thrum-sync/` files directly with the Read tool.
|
|
81
|
+
**Right:** Use `thrum inbox`, `thrum overview`, `thrum prime`. The SKILL.md
|
|
82
|
+
`allowed-tools` is `Bash(thrum:*)` — no Read permission needed.
|
|
83
|
+
|
|
84
|
+
## 9. Sending Messages to Yourself
|
|
85
|
+
|
|
86
|
+
**Wrong:** `thrum send --to @me --body-file note.md` (note to self) **Right:**
|
|
87
|
+
Use Beads notes (`bd update <id> --notes "..."`) for self-notes. Thrum is for
|
|
88
|
+
inter-agent communication.
|
|
89
|
+
|
|
90
|
+
## 10. Spamming Status Updates
|
|
91
|
+
|
|
92
|
+
**Wrong:** Sending a message after every line of code. **Right:** Batch updates
|
|
93
|
+
at natural breakpoints — after completing a subtask, hitting a blocker, or
|
|
94
|
+
finishing the main task.
|
|
95
|
+
|
|
96
|
+
## 11. Not Including Context in Messages
|
|
97
|
+
|
|
98
|
+
**Wrong:** `thrum send --to @lead --body-file done.md` with body `done`
|
|
99
|
+
**Right:** `thrum send --to @lead --body-file completion.md` with body
|
|
100
|
+
`Completed bd-123: JWT auth with tests passing. 3 files changed.`
|
|
101
|
+
|
|
102
|
+
Include Beads IDs, file paths, commit hashes — anything that helps the recipient
|
|
103
|
+
act on the message.
|
|
104
|
+
|
|
105
|
+
## 12. Using @role to Address One Agent
|
|
106
|
+
|
|
107
|
+
**Wrong:** `thrum send --to @implementer --body-file msg.md` — fans out to all
|
|
108
|
+
implementers. **Right:** `thrum send --to @alice --body-file msg.md` — use the
|
|
109
|
+
agent's name.
|
|
110
|
+
|
|
111
|
+
`@role` sends to **all agents** with that role (via the auto-created role group)
|
|
112
|
+
and emits a warning. Use `@name` for direct messages. Check names with
|
|
113
|
+
`thrum team`.
|
|
114
|
+
|
|
115
|
+
## 13. Sending to Unknown Recipients
|
|
116
|
+
|
|
117
|
+
**Wrong:** `thrum send --to @typo --body-file msg.md` — hard error if recipient
|
|
118
|
+
doesn't exist. **Right:** Verify the agent name with `thrum team` first, then
|
|
119
|
+
send.
|
|
120
|
+
|
|
121
|
+
## 14. Agent Name Same as Role
|
|
122
|
+
|
|
123
|
+
**Wrong:** `thrum quickstart --name coordinator --role coordinator` —
|
|
124
|
+
registration rejects name==role. **Right:** Use a descriptive name that differs
|
|
125
|
+
from the role, e.g., `--name lead-agent --role coordinator`.
|
|
126
|
+
|
|
127
|
+
## 15. Trusting the Default Inbox Page to Find Old Messages
|
|
128
|
+
|
|
129
|
+
**Wrong:** Reading `thrum inbox --unread` (default page: 10, newest-first) and
|
|
130
|
+
concluding there's nothing important waiting. **Right:** See MESSAGING.md
|
|
131
|
+
"Message Lifecycle" step 6 (Search — do not page through the inbox) for why
|
|
132
|
+
and how.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Boundaries: When to Use Thrum
|
|
2
|
+
|
|
3
|
+
## Thrum vs TaskList/SendMessage
|
|
4
|
+
|
|
5
|
+
| Need | Use Thrum | Use TaskList/SendMessage |
|
|
6
|
+
| ------------------------- | ------------------------------- | ------------------------ |
|
|
7
|
+
| Cross-worktree messages | `thrum send --to @name` | Not possible |
|
|
8
|
+
| Persist across compaction | Messages survive in git | Lost on compaction |
|
|
9
|
+
| Background notifications | `thrum wait` + listener pattern | Polling only |
|
|
10
|
+
| Multi-machine sync | Git push/pull via daemon | Local only |
|
|
11
|
+
| Group messaging | `thrum send --to @group` | Broadcast to all |
|
|
12
|
+
| Track who's editing files | `thrum who-has <file>` | Not available |
|
|
13
|
+
| Simple session task list | Overkill | TaskList is better |
|
|
14
|
+
| Same-session DM | Works but heavier | SendMessage is simpler |
|
|
15
|
+
|
|
16
|
+
## Thrum vs Beads
|
|
17
|
+
|
|
18
|
+
| Thrum (messaging) | Beads (task tracking) |
|
|
19
|
+
| ------------------------ | ------------------------- |
|
|
20
|
+
| Real-time coordination | Persistent work items |
|
|
21
|
+
| Status updates, Q&A | Dependencies and blockers |
|
|
22
|
+
| Review requests | Progress tracking |
|
|
23
|
+
| Notifications and alerts | Work discovery |
|
|
24
|
+
|
|
25
|
+
**They coexist.** Use Beads to track tasks, Thrum to coordinate about them:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
bd update bd-123 --status in_progress # Track in Beads
|
|
29
|
+
thrum send --to @lead --stdin <<'EOF'
|
|
30
|
+
Starting bd-123
|
|
31
|
+
EOF # Announce via Thrum
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## MCP Server vs CLI
|
|
35
|
+
|
|
36
|
+
Thrum provides both an MCP server (`thrum mcp serve`) and CLI commands.
|
|
37
|
+
|
|
38
|
+
| MCP Server | CLI (`thrum` commands) |
|
|
39
|
+
| -------------------------------------- | ------------------------------ |
|
|
40
|
+
| Native tool integration in Claude Code | Shell-out via Bash |
|
|
41
|
+
| Real-time subscriptions | `thrum wait` for blocking |
|
|
42
|
+
| Structured JSON responses | Human-readable + `--json` flag |
|
|
43
|
+
| Requires MCP support in runtime | Works everywhere |
|
|
44
|
+
|
|
45
|
+
**Rule of thumb:** Use CLI via `Bash(thrum:*)`. The SKILL.md `allowed-tools` is
|
|
46
|
+
set to `Bash(thrum:*)` — all data is accessed via CLI output, not file reads.
|
|
47
|
+
|
|
48
|
+
## Decision Flowchart
|
|
49
|
+
|
|
50
|
+
1. **Need to communicate with agents in other worktrees?** → Thrum
|
|
51
|
+
2. **Need messages to survive compaction?** → Thrum
|
|
52
|
+
3. **Need background message monitoring?** → Thrum (listener pattern)
|
|
53
|
+
4. **Simple same-session task tracking?** → TaskList
|
|
54
|
+
5. **Quick one-off DM to teammate in same session?** → SendMessage
|
|
55
|
+
6. **Tracking work items with dependencies?** → Beads
|
|
56
|
+
7. **No coordination needed at all?** → Neither
|