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.
Files changed (101) hide show
  1. package/assets/commands/thrum-_deviations-protocol.md +87 -0
  2. package/assets/commands/thrum-_generator-idempotency-protocol.md +15 -0
  3. package/assets/commands/thrum-_project-rules-protocol.md +18 -0
  4. package/assets/commands/thrum-_snapshot-protocol.md +265 -0
  5. package/assets/commands/thrum-_stamp-protocol.md +112 -0
  6. package/assets/commands/thrum-_verify-before-write-protocol.md +27 -0
  7. package/assets/commands/thrum-inbox.md +22 -0
  8. package/assets/commands/thrum-load-context.md +17 -0
  9. package/assets/commands/thrum-overview.md +17 -0
  10. package/assets/commands/thrum-prime.md +30 -0
  11. package/assets/commands/thrum-quickstart.md +14 -0
  12. package/assets/commands/thrum-reply.md +28 -0
  13. package/assets/commands/thrum-restart-extended.md +195 -0
  14. package/assets/commands/thrum-restart.md +293 -0
  15. package/assets/commands/thrum-send.md +31 -0
  16. package/assets/commands/thrum-sleep-extended.md +186 -0
  17. package/assets/commands/thrum-sleep.md +212 -0
  18. package/assets/commands/thrum-team.md +12 -0
  19. package/assets/commands/thrum-update-project.md +259 -0
  20. package/assets/commands/thrum-wait.md +14 -0
  21. package/assets/skills/adversarial-critique/SKILL.md +242 -0
  22. package/assets/skills/brainstorm-queue-aware/SKILL.md +167 -0
  23. package/assets/skills/brainstorm-steward/SKILL.md +181 -0
  24. package/assets/skills/choosing-subagent-models/SKILL.md +244 -0
  25. package/assets/skills/closing-findings-while-warm/SKILL.md +104 -0
  26. package/assets/skills/configure-roles/SKILL.md +229 -0
  27. package/assets/skills/coordinator-assessing-agent-completion/SKILL.md +205 -0
  28. package/assets/skills/coordinator-assessing-agent-completion/scan.py +117 -0
  29. package/assets/skills/coordinator-branch-split-on-block/SKILL.md +168 -0
  30. package/assets/skills/coordinator-context-monitoring/SKILL.md +674 -0
  31. package/assets/skills/coordinator-dispatching-work/SKILL.md +288 -0
  32. package/assets/skills/coordinator-hotpath-merge-gate/SKILL.md +522 -0
  33. package/assets/skills/coordinator-interacting-with-the-owner/SKILL.md +171 -0
  34. package/assets/skills/coordinator-maintaining-memory/SKILL.md +89 -0
  35. package/assets/skills/coordinator-managing-state-and-lifecycle/SKILL.md +192 -0
  36. package/assets/skills/coordinator-merging-code/SKILL.md +331 -0
  37. package/assets/skills/coordinator-philosophy-merge-gate/SKILL.md +442 -0
  38. package/assets/skills/coordinator-plan-reconcile-gate/SKILL.md +198 -0
  39. package/assets/skills/coordinator-post-restart-sweep/SKILL.md +135 -0
  40. package/assets/skills/coordinator-running-autonomous-feature-development/SKILL.md +199 -0
  41. package/assets/skills/coordinator-running-brainstorm-cycles/SKILL.md +654 -0
  42. package/assets/skills/coordinator-running-review-cycles/SKILL.md +153 -0
  43. package/assets/skills/coordinator-single-responsibility-merge-gate/SKILL.md +14 -0
  44. package/assets/skills/diagnosing-fleet-and-daemon/SKILL.md +255 -0
  45. package/assets/skills/efficient-multi-agent-research/SKILL.md +177 -0
  46. package/assets/skills/fixing-documentation-errors/SKILL.md +258 -0
  47. package/assets/skills/implementer-maintaining-memory/SKILL.md +84 -0
  48. package/assets/skills/implementer-orchestrating-execution/SKILL.md +125 -0
  49. package/assets/skills/implementer-receiving-dispatch/SKILL.md +127 -0
  50. package/assets/skills/implementer-receiving-review-feedback/SKILL.md +125 -0
  51. package/assets/skills/implementer-status-and-handoff/SKILL.md +150 -0
  52. package/assets/skills/implementer-tdd-and-quality/SKILL.md +99 -0
  53. package/assets/skills/memory-audit-recover/SKILL.md +153 -0
  54. package/assets/skills/memory-curate/SKILL.md +139 -0
  55. package/assets/skills/memory-maintenance/SKILL.md +87 -0
  56. package/assets/skills/memory-read-discipline/SKILL.md +164 -0
  57. package/assets/skills/memory-search-advanced/SKILL.md +217 -0
  58. package/assets/skills/memory-write-discipline/SKILL.md +135 -0
  59. package/assets/skills/orchestrate/SKILL.md +795 -0
  60. package/assets/skills/persistent-watcher-archetype/SKILL.md +225 -0
  61. package/assets/skills/prime-agent/SKILL.md +92 -0
  62. package/assets/skills/project-hotpath-gate/SKILL.md +255 -0
  63. package/assets/skills/project-philosophy/SKILL.md +418 -0
  64. package/assets/skills/project-philosophy/resources/philosophy-template.md +155 -0
  65. package/assets/skills/project-philosophy/resources/reliability-class-library.md +653 -0
  66. package/assets/skills/project-setup/SKILL.md +1007 -0
  67. package/assets/skills/project-setup/resources/implementation-agent.md +826 -0
  68. package/assets/skills/researcher-answering-queries/SKILL.md +100 -0
  69. package/assets/skills/researcher-investigating/SKILL.md +152 -0
  70. package/assets/skills/researcher-maintaining-memory/SKILL.md +176 -0
  71. package/assets/skills/state-migration/SKILL.md +54 -0
  72. package/assets/skills/thrum/SKILL.md +161 -0
  73. package/assets/skills/thrum/resources/ANTI_PATTERNS.md +132 -0
  74. package/assets/skills/thrum/resources/BOUNDARIES.md +56 -0
  75. package/assets/skills/thrum/resources/CLI_REFERENCE.md +1066 -0
  76. package/assets/skills/thrum/resources/IDENTITY.md +49 -0
  77. package/assets/skills/thrum/resources/LISTENER_PATTERN.md +64 -0
  78. package/assets/skills/thrum/resources/MESSAGING.md +163 -0
  79. package/assets/skills/thrum/resources/TMUX_SESSIONS.md +118 -0
  80. package/assets/skills/thrum/resources/WORKTREES.md +117 -0
  81. package/assets/skills/thrum-memory/SKILL.md +138 -0
  82. package/assets/skills/trace-spec-to-plan/SKILL.md +104 -0
  83. package/assets/skills/trace-spec-to-plan/resources/sweep-agent-prompt.md +57 -0
  84. package/assets/skills/update-queue/SKILL.md +149 -0
  85. package/assets/skills/using-the-queue/SKILL.md +172 -0
  86. package/assets/skills/using-thrum-state/SKILL.md +104 -0
  87. package/assets/skills/verify-against-plan/SKILL.md +323 -0
  88. package/assets/skills/verify-against-source/SKILL.md +237 -0
  89. package/assets/skills/watcher-archetype/SKILL.md +84 -0
  90. package/assets/skills/writing-durable-markdown/SKILL.md +66 -0
  91. package/dist/hooks/block-sync-cd.d.ts +9 -0
  92. package/dist/hooks/block-sync-cd.js +71 -0
  93. package/dist/hooks/block-sync-cd.test.d.ts +1 -0
  94. package/dist/hooks/block-sync-cd.test.js +61 -0
  95. package/dist/hooks/shell-env.d.ts +8 -0
  96. package/dist/hooks/shell-env.js +22 -0
  97. package/dist/index.d.ts +6 -0
  98. package/dist/index.js +25 -0
  99. package/dist/installer.d.ts +2 -0
  100. package/dist/installer.js +86 -0
  101. 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