panopticon-cli 0.4.5 → 0.4.7

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 (169) hide show
  1. package/README.md +84 -2695
  2. package/dist/{agents-B5NRTVHK.js → agents-54LDKMHR.js} +8 -3
  3. package/dist/chunk-44EOY2ZL.js +58 -0
  4. package/dist/chunk-44EOY2ZL.js.map +1 -0
  5. package/dist/chunk-BWGFN44T.js +224 -0
  6. package/dist/chunk-BWGFN44T.js.map +1 -0
  7. package/dist/chunk-F7NQZD6H.js +49 -0
  8. package/dist/chunk-F7NQZD6H.js.map +1 -0
  9. package/dist/chunk-HCTJFIJJ.js +159 -0
  10. package/dist/chunk-HCTJFIJJ.js.map +1 -0
  11. package/dist/chunk-JM6V62LT.js +650 -0
  12. package/dist/chunk-JM6V62LT.js.map +1 -0
  13. package/dist/chunk-K45YD6A3.js +254 -0
  14. package/dist/chunk-K45YD6A3.js.map +1 -0
  15. package/dist/chunk-KGPRXDMX.js +137 -0
  16. package/dist/chunk-KGPRXDMX.js.map +1 -0
  17. package/dist/chunk-KQAEUOML.js +278 -0
  18. package/dist/chunk-KQAEUOML.js.map +1 -0
  19. package/dist/chunk-NYVQC3D7.js +90 -0
  20. package/dist/chunk-NYVQC3D7.js.map +1 -0
  21. package/dist/chunk-PUR532O7.js +1556 -0
  22. package/dist/chunk-PUR532O7.js.map +1 -0
  23. package/dist/chunk-VTDDVLCK.js +1977 -0
  24. package/dist/chunk-VTDDVLCK.js.map +1 -0
  25. package/dist/chunk-Z24TY3XN.js +916 -0
  26. package/dist/chunk-Z24TY3XN.js.map +1 -0
  27. package/dist/chunk-ZHC57RCV.js +44 -0
  28. package/dist/chunk-ZHC57RCV.js.map +1 -0
  29. package/dist/{chunk-ITI4IC5A.js → chunk-ZZ3477GY.js} +69 -100
  30. package/dist/chunk-ZZ3477GY.js.map +1 -0
  31. package/dist/cli/index.js +4664 -2912
  32. package/dist/cli/index.js.map +1 -1
  33. package/dist/dashboard/public/assets/index-CRqsEkmn.css +32 -0
  34. package/dist/dashboard/public/assets/index-DPSUbu4A.js +645 -0
  35. package/dist/dashboard/public/index.html +15 -3
  36. package/dist/dashboard/server.js +45663 -17860
  37. package/dist/dns-L3L2BB27.js +30 -0
  38. package/dist/dns-L3L2BB27.js.map +1 -0
  39. package/dist/index.d.ts +63 -3
  40. package/dist/index.js +42 -18
  41. package/dist/index.js.map +1 -1
  42. package/dist/projects-ESIB34QQ.js +43 -0
  43. package/dist/projects-ESIB34QQ.js.map +1 -0
  44. package/dist/remote-agents-Z3R2A5BN.js +25 -0
  45. package/dist/remote-agents-Z3R2A5BN.js.map +1 -0
  46. package/dist/remote-workspace-HI4VML6H.js +179 -0
  47. package/dist/remote-workspace-HI4VML6H.js.map +1 -0
  48. package/dist/specialist-context-SNCJ7O7G.js +256 -0
  49. package/dist/specialist-context-SNCJ7O7G.js.map +1 -0
  50. package/dist/specialist-logs-A7ODEK2T.js +43 -0
  51. package/dist/specialist-logs-A7ODEK2T.js.map +1 -0
  52. package/dist/specialists-C7XLNSXQ.js +121 -0
  53. package/dist/specialists-C7XLNSXQ.js.map +1 -0
  54. package/dist/traefik-WI3KSRGG.js +12 -0
  55. package/dist/traefik-WI3KSRGG.js.map +1 -0
  56. package/package.json +2 -1
  57. package/skills/beads/README.md +120 -0
  58. package/skills/beads/SKILL.md +214 -0
  59. package/skills/beads/adr/0001-bd-prime-as-source-of-truth.md +59 -0
  60. package/skills/beads/resources/AGENTS.md +62 -0
  61. package/skills/beads/resources/ASYNC_GATES.md +168 -0
  62. package/skills/beads/resources/BOUNDARIES.md +469 -0
  63. package/skills/beads/resources/CHEMISTRY_PATTERNS.md +197 -0
  64. package/skills/beads/resources/CLI_REFERENCE.md +558 -0
  65. package/skills/beads/resources/DEPENDENCIES.md +747 -0
  66. package/skills/beads/resources/INTEGRATION_PATTERNS.md +407 -0
  67. package/skills/beads/resources/ISSUE_CREATION.md +139 -0
  68. package/skills/beads/resources/MOLECULES.md +354 -0
  69. package/skills/beads/resources/PATTERNS.md +341 -0
  70. package/skills/beads/resources/RESUMABILITY.md +207 -0
  71. package/skills/beads/resources/STATIC_DATA.md +54 -0
  72. package/skills/beads/resources/TROUBLESHOOTING.md +489 -0
  73. package/skills/beads/resources/WORKFLOWS.md +623 -0
  74. package/skills/beads/resources/WORKTREES.md +94 -0
  75. package/skills/beads-completion-check/SKILL.md +90 -0
  76. package/skills/beads-panopticon-guide/SKILL.md +171 -0
  77. package/skills/bug-fix/SKILL.md +32 -0
  78. package/skills/clear-writing/SKILL.md +105 -0
  79. package/skills/clear-writing/references/elements-of-style/01-introductory.md +3 -0
  80. package/skills/clear-writing/references/elements-of-style/02-elementary-rules-of-usage.md +214 -0
  81. package/skills/clear-writing/references/elements-of-style/03-elementary-principles-of-composition.md +398 -0
  82. package/skills/clear-writing/references/elements-of-style/04-a-few-matters-of-form.md +89 -0
  83. package/skills/clear-writing/references/elements-of-style/05-words-and-expressions-commonly-misused.md +342 -0
  84. package/skills/clear-writing/references/signs-of-ai-writing.md +901 -0
  85. package/skills/code-review/SKILL.md +37 -0
  86. package/skills/code-review-performance/SKILL.md +53 -0
  87. package/skills/code-review-security/SKILL.md +35 -0
  88. package/skills/dependency-update/SKILL.md +30 -0
  89. package/skills/feature-work/SKILL.md +39 -0
  90. package/skills/incident-response/SKILL.md +32 -0
  91. package/skills/knowledge-capture/SKILL.md +463 -0
  92. package/skills/onboard-codebase/SKILL.md +34 -0
  93. package/skills/opus-plan/SKILL.md +400 -0
  94. package/skills/pan-approve/SKILL.md +136 -0
  95. package/skills/pan-code-review/SKILL.md +249 -0
  96. package/skills/pan-config/SKILL.md +164 -0
  97. package/skills/pan-convoy-synthesis/SKILL.md +249 -0
  98. package/skills/pan-diagnose/SKILL.md +360 -0
  99. package/skills/pan-docker/SKILL.md +279 -0
  100. package/skills/pan-docs/SKILL.md +113 -0
  101. package/skills/pan-down/SKILL.md +434 -0
  102. package/skills/pan-health/SKILL.md +240 -0
  103. package/skills/pan-help/SKILL.md +237 -0
  104. package/skills/pan-install/SKILL.md +339 -0
  105. package/skills/pan-issue/SKILL.md +596 -0
  106. package/skills/pan-kill/SKILL.md +172 -0
  107. package/skills/pan-logs/SKILL.md +255 -0
  108. package/skills/pan-network/SKILL.md +320 -0
  109. package/skills/pan-oversee/SKILL.md +290 -0
  110. package/skills/pan-plan/SKILL.md +521 -0
  111. package/skills/pan-projects/SKILL.md +239 -0
  112. package/skills/pan-quickstart/SKILL.md +440 -0
  113. package/skills/pan-reload/SKILL.md +44 -0
  114. package/skills/pan-rescue/SKILL.md +271 -0
  115. package/skills/pan-restart/SKILL.md +53 -0
  116. package/skills/pan-setup/SKILL.md +478 -0
  117. package/skills/pan-skill-creator/SKILL.md +168 -0
  118. package/skills/pan-skill-creator/references/output-patterns.md +141 -0
  119. package/skills/pan-skill-creator/references/workflows.md +90 -0
  120. package/skills/pan-skill-creator/scripts/init_skill.py +176 -0
  121. package/skills/pan-status/SKILL.md +493 -0
  122. package/skills/pan-subagent-creator/SKILL.md +295 -0
  123. package/skills/pan-subagent-creator/assets/validate-readonly-query.sh +35 -0
  124. package/skills/pan-subagent-creator/references/example-agents.md +308 -0
  125. package/skills/pan-subagent-creator/scripts/init_agent.py +126 -0
  126. package/skills/pan-sync/SKILL.md +272 -0
  127. package/skills/pan-tell/SKILL.md +157 -0
  128. package/skills/pan-test-config/SKILL.md +208 -0
  129. package/skills/pan-tracker/SKILL.md +288 -0
  130. package/skills/pan-up/SKILL.md +458 -0
  131. package/skills/pan-workspace-config/SKILL.md +303 -0
  132. package/skills/refactor/SKILL.md +30 -0
  133. package/skills/refactor-radar/SKILL.md +475 -0
  134. package/skills/release/SKILL.md +25 -0
  135. package/skills/send-feedback-to-agent/SKILL.md +98 -0
  136. package/skills/session-health/SKILL.md +76 -0
  137. package/skills/session-health/scripts/check_sessions.py +166 -0
  138. package/skills/skill-creator/SKILL.md +92 -0
  139. package/skills/skill-creator/scripts/init_skill.py +152 -0
  140. package/skills/skill-creator/scripts/package_skill.py +123 -0
  141. package/skills/stitch-design-md/README.md +34 -0
  142. package/skills/stitch-design-md/SKILL.md +172 -0
  143. package/skills/stitch-design-md/examples/DESIGN.md +154 -0
  144. package/skills/stitch-react-components/README.md +36 -0
  145. package/skills/stitch-react-components/SKILL.md +47 -0
  146. package/skills/stitch-react-components/examples/gold-standard-card.tsx +80 -0
  147. package/skills/stitch-react-components/package-lock.json +231 -0
  148. package/skills/stitch-react-components/package.json +16 -0
  149. package/skills/stitch-react-components/resources/architecture-checklist.md +15 -0
  150. package/skills/stitch-react-components/resources/component-template.tsx +37 -0
  151. package/skills/stitch-react-components/resources/stitch-api-reference.md +14 -0
  152. package/skills/stitch-react-components/resources/style-guide.json +27 -0
  153. package/skills/stitch-react-components/scripts/fetch-stitch.sh +30 -0
  154. package/skills/stitch-react-components/scripts/validate.js +68 -0
  155. package/skills/stitch-setup/SKILL.md +94 -0
  156. package/skills/web-design-guidelines/SKILL.md +39 -0
  157. package/skills/work-complete/SKILL.md +79 -0
  158. package/templates/traefik/docker-compose.yml +1 -1
  159. package/templates/traefik/dynamic/panopticon.yml.template +41 -0
  160. package/templates/traefik/traefik.yml +8 -0
  161. package/dist/chunk-7HHDVXBM.js +0 -349
  162. package/dist/chunk-7HHDVXBM.js.map +0 -1
  163. package/dist/chunk-H45CLB7E.js +0 -2044
  164. package/dist/chunk-H45CLB7E.js.map +0 -1
  165. package/dist/chunk-ITI4IC5A.js.map +0 -1
  166. package/dist/dashboard/public/assets/index-BDd8hGYb.css +0 -32
  167. package/dist/dashboard/public/assets/index-sFwLPko-.js +0 -556
  168. package/templates/traefik/dynamic/panopticon.yml +0 -51
  169. /package/dist/{agents-B5NRTVHK.js.map → agents-54LDKMHR.js.map} +0 -0
@@ -0,0 +1,469 @@
1
+ # Boundaries: When to Use bd vs TodoWrite
2
+
3
+ This reference provides detailed decision criteria for choosing between bd issue tracking and TodoWrite for task management.
4
+
5
+ ## Contents
6
+
7
+ - [The Core Question](#the-core-question)
8
+ - [Decision Matrix](#decision-matrix)
9
+ - [Use bd for](#use-bd-for): Multi-Session Work, Complex Dependencies, Knowledge Work, Side Quests, Project Memory
10
+ - [Use TodoWrite for](#use-todowrite-for): Single-Session Tasks, Linear Execution, Immediate Context, Simple Tracking
11
+ - [Detailed Comparison](#detailed-comparison)
12
+ - [Integration Patterns](#integration-patterns)
13
+ - Pattern 1: bd as Strategic, TodoWrite as Tactical
14
+ - Pattern 2: TodoWrite as Working Copy of bd
15
+ - Pattern 3: Transition Mid-Session
16
+ - [Real-World Examples](#real-world-examples)
17
+ - Strategic Document Development, Simple Feature Implementation, Bug Investigation, Refactoring with Dependencies
18
+ - [Common Mistakes](#common-mistakes)
19
+ - Using TodoWrite for multi-session work, using bd for simple tasks, not transitioning when complexity emerges, creating too many bd issues, never using bd
20
+ - [The Transition Point](#the-transition-point)
21
+ - [Summary Heuristics](#summary-heuristics)
22
+
23
+ ## The Core Question
24
+
25
+ **"Could I resume this work after 2 weeks away?"**
26
+
27
+ - If bd would help you resume → **use bd**
28
+ - If markdown skim would suffice → **TodoWrite is fine**
29
+
30
+ This heuristic captures the essential difference: bd provides structured context that persists across long gaps, while TodoWrite excels at immediate session tracking.
31
+
32
+ ## Decision Matrix
33
+
34
+ ### Use bd for:
35
+
36
+ #### Multi-Session Work
37
+ Work spanning multiple compaction cycles or days where context needs to persist.
38
+
39
+ **Examples:**
40
+ - Strategic document development requiring research across multiple sessions
41
+ - Feature implementation split across several coding sessions
42
+ - Bug investigation requiring experimentation over time
43
+ - Architecture design evolving through multiple iterations
44
+
45
+ **Why bd wins**: Issues capture context that survives compaction. Return weeks later and see full history, design decisions, and current status.
46
+
47
+ #### Complex Dependencies
48
+ Work with blockers, prerequisites, or hierarchical structure.
49
+
50
+ **Examples:**
51
+ - OAuth integration requiring database setup, endpoint creation, and frontend changes
52
+ - Research project with multiple parallel investigation threads
53
+ - Refactoring with dependencies between different code areas
54
+ - Migration requiring sequential steps in specific order
55
+
56
+ **Why bd wins**: Dependency graph shows what's blocking what. `bd ready` automatically surfaces unblocked work. No manual tracking required.
57
+
58
+ #### Knowledge Work
59
+ Tasks with fuzzy boundaries, exploration, or strategic thinking.
60
+
61
+ **Examples:**
62
+ - Architecture decision requiring research into frameworks and trade-offs
63
+ - API design requiring research into multiple options
64
+ - Performance optimization requiring measurement and experimentation
65
+ - Documentation requiring understanding system architecture
66
+
67
+ **Why bd wins**: `design` and `acceptance_criteria` fields capture evolving understanding. Issues can be refined as exploration reveals more information.
68
+
69
+ #### Side Quests
70
+ Exploratory work that might pause the main task.
71
+
72
+ **Examples:**
73
+ - During feature work, discover a better pattern worth exploring
74
+ - While debugging, notice related architectural issue
75
+ - During code review, identify potential improvement
76
+ - While writing tests, find edge case requiring research
77
+
78
+ **Why bd wins**: Create issue with `discovered-from` dependency, pause main work safely. Context preserved for both tracks. Resume either one later.
79
+
80
+ #### Project Memory
81
+ Need to resume work after significant time with full context.
82
+
83
+ **Examples:**
84
+ - Open source contributions across months
85
+ - Part-time projects with irregular schedule
86
+ - Complex features split across sprints
87
+ - Research projects with long investigation periods
88
+
89
+ **Why bd wins**: Git-backed database persists indefinitely. All context, decisions, and history available on resume. No relying on conversation scrollback or markdown files.
90
+
91
+ ---
92
+
93
+ ### Use TodoWrite for:
94
+
95
+ #### Single-Session Tasks
96
+ Work that completes within current conversation.
97
+
98
+ **Examples:**
99
+ - Implementing a single function based on clear spec
100
+ - Fixing a bug with known root cause
101
+ - Adding unit tests for existing code
102
+ - Updating documentation for recent changes
103
+
104
+ **Why TodoWrite wins**: Simple checklist is perfect for linear execution. No need for persistence or dependencies. Clear completion within session.
105
+
106
+ #### Linear Execution
107
+ Straightforward step-by-step tasks with no branching.
108
+
109
+ **Examples:**
110
+ - Database migration with clear sequence
111
+ - Deployment checklist
112
+ - Code style cleanup across files
113
+ - Dependency updates following upgrade guide
114
+
115
+ **Why TodoWrite wins**: Steps are predetermined and sequential. No discovery, no blockers, no side quests. Just execute top to bottom.
116
+
117
+ #### Immediate Context
118
+ All information already in conversation.
119
+
120
+ **Examples:**
121
+ - User provides complete spec and asks for implementation
122
+ - Bug report with reproduction steps and fix approach
123
+ - Refactoring request with clear before/after vision
124
+ - Config changes based on user preferences
125
+
126
+ **Why TodoWrite wins**: No external context to track. Everything needed is in current conversation. TodoWrite provides user visibility, nothing more needed.
127
+
128
+ #### Simple Tracking
129
+ Just need a checklist to show progress to user.
130
+
131
+ **Examples:**
132
+ - Breaking down implementation into visible steps
133
+ - Showing validation workflow progress
134
+ - Demonstrating systematic approach
135
+ - Providing reassurance work is proceeding
136
+
137
+ **Why TodoWrite wins**: User wants to see thinking and progress. TodoWrite is visible in conversation. bd is invisible background structure.
138
+
139
+ ---
140
+
141
+ ## Detailed Comparison
142
+
143
+ | Aspect | bd | TodoWrite |
144
+ |--------|-----|-----------|
145
+ | **Persistence** | Git-backed, survives compaction | Session-only, lost after conversation |
146
+ | **Dependencies** | Graph-based, automatic ready detection | Manual, no automatic tracking |
147
+ | **Discoverability** | `bd ready` surfaces work | Scroll conversation for todos |
148
+ | **Complexity** | Handles nested epics, blockers | Flat list only |
149
+ | **Visibility** | Background structure, not in conversation | Visible to user in chat |
150
+ | **Setup** | Requires `.beads/` directory in project | Always available |
151
+ | **Best for** | Complex, multi-session, explorative | Simple, single-session, linear |
152
+ | **Context capture** | Design notes, acceptance criteria, links | Just task description |
153
+ | **Evolution** | Issues can be updated, refined over time | Static once written |
154
+ | **Audit trail** | Full history of changes | Only visible in conversation |
155
+
156
+ ## Integration Patterns
157
+
158
+ bd and TodoWrite can coexist effectively in a session. Use both strategically.
159
+
160
+ ### Pattern 1: bd as Strategic, TodoWrite as Tactical
161
+
162
+ **Setup:**
163
+ - bd tracks high-level issues and dependencies
164
+ - TodoWrite tracks current session's execution steps
165
+
166
+ **Example:**
167
+ ```
168
+ bd issue: "Implement user authentication" (epic)
169
+ ├─ Child issue: "Create login endpoint"
170
+ ├─ Child issue: "Add JWT token validation" ← Currently working on this
171
+ └─ Child issue: "Implement logout"
172
+
173
+ TodoWrite (for JWT validation):
174
+ - [ ] Install JWT library
175
+ - [ ] Create token validation middleware
176
+ - [ ] Add tests for token expiry
177
+ - [ ] Update API documentation
178
+ ```
179
+
180
+ **When to use:**
181
+ - Complex features with clear implementation steps
182
+ - User wants to see current progress but larger context exists
183
+ - Multi-session work currently in single-session execution phase
184
+
185
+ ### Pattern 2: TodoWrite as Working Copy of bd
186
+
187
+ **Setup:**
188
+ - Start with bd issue containing full context
189
+ - Create TodoWrite checklist from bd issue's acceptance criteria
190
+ - Update bd as TodoWrite items complete
191
+
192
+ **Example:**
193
+ ```
194
+ Session start:
195
+ - Check bd: "issue-auth-42: Add JWT token validation" is ready
196
+ - Extract acceptance criteria into TodoWrite
197
+ - Mark bd issue as in_progress
198
+ - Work through TodoWrite items
199
+ - Update bd design notes as you learn
200
+ - When TodoWrite completes, close bd issue
201
+ ```
202
+
203
+ **When to use:**
204
+ - bd issue is ready but execution is straightforward
205
+ - User wants visible progress tracking
206
+ - Need structured approach to larger issue
207
+
208
+ ### Pattern 3: Transition Mid-Session
209
+
210
+ **From TodoWrite to bd:**
211
+
212
+ Recognize mid-execution that work is more complex than anticipated.
213
+
214
+ **Trigger signals:**
215
+ - Discovering blockers or dependencies
216
+ - Realizing work won't complete this session
217
+ - Finding side quests or related issues
218
+ - Needing to pause and resume later
219
+
220
+ **How to transition:**
221
+ ```
222
+ 1. Create bd issue with current TodoWrite content
223
+ 2. Note: "Discovered this is multi-session work during implementation"
224
+ 3. Add dependencies as discovered
225
+ 4. Keep TodoWrite for current session
226
+ 5. Update bd issue before session ends
227
+ 6. Next session: resume from bd, create new TodoWrite if needed
228
+ ```
229
+
230
+ **From bd to TodoWrite:**
231
+
232
+ Rare, but happens when bd issue turns out simpler than expected.
233
+
234
+ **Trigger signals:**
235
+ - All context already clear
236
+ - No dependencies discovered
237
+ - Can complete within session
238
+ - User wants execution visibility
239
+
240
+ **How to transition:**
241
+ ```
242
+ 1. Keep bd issue for historical record
243
+ 2. Create TodoWrite from issue description
244
+ 3. Execute via TodoWrite
245
+ 4. Close bd issue when done
246
+ 5. Note: "Completed in single session, simpler than expected"
247
+ ```
248
+
249
+ ## Real-World Examples
250
+
251
+ ### Example 1: Database Migration Planning
252
+
253
+ **Scenario**: Planning migration from MySQL to PostgreSQL for production application.
254
+
255
+ **Why bd**:
256
+ - Multi-session work across days/weeks
257
+ - Fuzzy boundaries - scope emerges through investigation
258
+ - Side quests - discover schema incompatibilities requiring refactoring
259
+ - Dependencies - can't migrate data until schema validated
260
+ - Project memory - need to resume after interruptions
261
+
262
+ **bd structure**:
263
+ ```
264
+ db-epic: "Migrate production database to PostgreSQL"
265
+ ├─ db-1: "Audit current MySQL schema and queries"
266
+ ├─ db-2: "Research PostgreSQL equivalents for MySQL features" (blocks schema design)
267
+ ├─ db-3: "Design PostgreSQL schema with type mappings"
268
+ └─ db-4: "Create migration scripts and test data integrity" (blocked by db-3)
269
+ ```
270
+
271
+ **TodoWrite role**: None initially. Might use TodoWrite for single-session testing sprints once migration scripts ready.
272
+
273
+ ### Example 2: Simple Feature Implementation
274
+
275
+ **Scenario**: Add logging to existing endpoint based on clear specification.
276
+
277
+ **Why TodoWrite**:
278
+ - Single session work
279
+ - Linear execution - add import, call logger, add test
280
+ - All context in user message
281
+ - Completes within conversation
282
+
283
+ **TodoWrite**:
284
+ ```
285
+ - [ ] Import logging library
286
+ - [ ] Add log statements to endpoint
287
+ - [ ] Add test for log output
288
+ - [ ] Run tests
289
+ ```
290
+
291
+ **bd role**: None. Overkill for straightforward task.
292
+
293
+ ### Example 3: Bug Investigation
294
+
295
+ **Initial assessment**: Seems simple, try TodoWrite first.
296
+
297
+ **TodoWrite**:
298
+ ```
299
+ - [ ] Reproduce bug
300
+ - [ ] Identify root cause
301
+ - [ ] Implement fix
302
+ - [ ] Add regression test
303
+ ```
304
+
305
+ **What actually happens**: Reproducing bug reveals it's intermittent. Root cause investigation shows multiple potential issues. Needs time to investigate.
306
+
307
+ **Transition to bd**:
308
+ ```
309
+ Create bd issue: "Fix intermittent auth failure in production"
310
+ - Description: Initially seemed simple but reproduction shows complex race condition
311
+ - Design: Three potential causes identified, need to test each
312
+ - Created issues for each hypothesis with discovered-from dependency
313
+
314
+ Pause for day, resume next session from bd context
315
+ ```
316
+
317
+ ### Example 4: Refactoring with Dependencies
318
+
319
+ **Scenario**: Extract common validation logic from three controllers.
320
+
321
+ **Why bd**:
322
+ - Dependencies - must extract before modifying callers
323
+ - Multi-file changes need coordination
324
+ - Potential side quest - might discover better pattern during extraction
325
+ - Need to track which controllers updated
326
+
327
+ **bd structure**:
328
+ ```
329
+ refactor-1: "Create shared validation module"
330
+ → blocks refactor-2, refactor-3, refactor-4
331
+
332
+ refactor-2: "Update auth controller to use shared validation"
333
+ refactor-3: "Update user controller to use shared validation"
334
+ refactor-4: "Update payment controller to use shared validation"
335
+ ```
336
+
337
+ **TodoWrite role**: Could use TodoWrite for individual controller updates as implementing.
338
+
339
+ **Why this works**: bd ensures you don't forget to update a controller. `bd ready` shows next available work. Dependencies prevent starting controller update before extraction complete.
340
+
341
+ ## Common Mistakes
342
+
343
+ ### Mistake 1: Using TodoWrite for Multi-Session Work
344
+
345
+ **What happens**:
346
+ - Next session, forget what was done
347
+ - Scroll conversation history to reconstruct
348
+ - Lose design decisions made during implementation
349
+ - Start over or duplicate work
350
+
351
+ **Solution**: Create bd issue instead. Persist context across sessions.
352
+
353
+ ### Mistake 2: Using bd for Simple Linear Tasks
354
+
355
+ **What happens**:
356
+ - Overhead of creating issue not justified
357
+ - User can't see progress in conversation
358
+ - Extra tool use for no benefit
359
+
360
+ **Solution**: Use TodoWrite. It's designed for exactly this case.
361
+
362
+ ### Mistake 3: Not Transitioning When Complexity Emerges
363
+
364
+ **What happens**:
365
+ - Start with TodoWrite for "simple" task
366
+ - Discover blockers and dependencies mid-way
367
+ - Keep using TodoWrite despite poor fit
368
+ - Lose context when conversation ends
369
+
370
+ **Solution**: Transition to bd when complexity signal appears. Not too late mid-session.
371
+
372
+ ### Mistake 4: Creating Too Many bd Issues
373
+
374
+ **What happens**:
375
+ - Every tiny task gets an issue
376
+ - Database cluttered with trivial items
377
+ - Hard to find meaningful work in `bd ready`
378
+
379
+ **Solution**: Reserve bd for work that actually benefits from persistence. Use "2 week test" - would bd help resume after 2 weeks? If no, skip it.
380
+
381
+ ### Mistake 5: Never Using bd Because TodoWrite is Familiar
382
+
383
+ **What happens**:
384
+ - Multi-session projects become markdown swamps
385
+ - Lose track of dependencies and blockers
386
+ - Can't resume work effectively
387
+ - Rotten half-implemented plans
388
+
389
+ **Solution**: Force yourself to use bd for next multi-session project. Experience the difference in organization and resumability.
390
+
391
+ ### Mistake 6: Always Asking Before Creating Issues (or Never Asking)
392
+
393
+ **When to create directly** (no user question needed):
394
+ - **Bug reports**: Clear scope, specific problem ("Found: auth doesn't check profile permissions")
395
+ - **Research tasks**: Investigative work ("Research workaround for Slides export")
396
+ - **Technical TODOs**: Discovered during implementation ("Add validation to form handler")
397
+ - **Side quest capture**: Discoveries that need tracking ("Issue: MCP can't read Shared Drive files")
398
+
399
+ **Why create directly**: Asking slows discovery capture. User expects proactive issue creation for clear-cut problems.
400
+
401
+ **When to ask first** (get user input):
402
+ - **Strategic work**: Fuzzy boundaries, multiple valid approaches ("Should we implement X or Y pattern?")
403
+ - **Potential duplicates**: Might overlap with existing work
404
+ - **Large epics**: Multiple approaches, unclear scope ("Plan migration strategy")
405
+ - **Major scope changes**: Changing direction of existing issue
406
+
407
+ **Why ask**: Ensures alignment on fuzzy work, prevents duplicate effort, clarifies scope before investment.
408
+
409
+ **Rule of thumb**: If you can write a clear, specific issue title and description in one sentence, create directly. If you need user input to clarify the work, ask first.
410
+
411
+ **Examples**:
412
+ - ✅ Create directly: "workspace MCP: Google Doc → .docx export fails with UTF-8 encoding error"
413
+ - ✅ Create directly: "Research: Workarounds for reading Google Slides from Shared Drives"
414
+ - ❓ Ask first: "Should we refactor the auth system now or later?" (strategic decision)
415
+ - ❓ Ask first: "I found several data validation issues, should I file them all?" (potential overwhelming)
416
+
417
+ ## The Transition Point
418
+
419
+ Most work starts with an implicit mental model:
420
+
421
+ **"This looks straightforward"** → TodoWrite
422
+
423
+ **As work progresses:**
424
+
425
+ ✅ **Stays straightforward** → Continue with TodoWrite, complete in session
426
+
427
+ ⚠️ **Complexity emerges** → Transition to bd, preserve context
428
+
429
+ The skill is recognizing the transition point:
430
+
431
+ **Transition signals:**
432
+ - "This is taking longer than expected"
433
+ - "I've discovered a blocker"
434
+ - "This needs more research"
435
+ - "I should pause this and investigate X first"
436
+ - "The user might not be available to continue today"
437
+ - "I found three related issues while working on this"
438
+
439
+ **When you notice these signals**: Create bd issue, preserve context, work from structured foundation.
440
+
441
+ ## Summary Heuristics
442
+
443
+ Quick decision guides:
444
+
445
+ **Time horizon:**
446
+ - Same session → TodoWrite
447
+ - Multiple sessions → bd
448
+
449
+ **Dependency structure:**
450
+ - Linear steps → TodoWrite
451
+ - Blockers/prerequisites → bd
452
+
453
+ **Scope clarity:**
454
+ - Well-defined → TodoWrite
455
+ - Exploratory → bd
456
+
457
+ **Context complexity:**
458
+ - Conversation has everything → TodoWrite
459
+ - External context needed → bd
460
+
461
+ **User interaction:**
462
+ - User watching progress → TodoWrite visible in chat
463
+ - Background work → bd invisible structure
464
+
465
+ **Resume difficulty:**
466
+ - Easy from markdown → TodoWrite
467
+ - Need structured history → bd
468
+
469
+ When in doubt: **Use the 2-week test**. If you'd struggle to resume this work after 2 weeks without bd, use bd.
@@ -0,0 +1,197 @@
1
+ # Chemistry Patterns
2
+
3
+ > Adapted from ACF beads skill
4
+
5
+ Beads uses a chemistry metaphor for work templates. This guide covers when and how to use each phase.
6
+
7
+ ## Phase Transitions
8
+
9
+ ```
10
+ ┌─────────────────────────────────────────────────────────────┐
11
+ │ PROTO (Solid) │
12
+ │ Frozen template, reusable pattern │
13
+ │ .beads/ with template label │
14
+ └─────────────────────────┬───────────────────────────────────┘
15
+
16
+ ┌───────────────┼───────────────┐
17
+ │ │ │
18
+ ▼ │ ▼
19
+ ┌─────────────────┐ │ ┌─────────────────┐
20
+ │ MOL (Liquid) │ │ │ WISP (Vapor) │
21
+ │ bd pour │ │ │ bd wisp create │
22
+ │ │ │ │ │
23
+ │ Persistent │ │ │ Ephemeral │
24
+ │ .beads/ │ │ │ .beads-wisp/ │
25
+ │ Git synced │ │ │ Gitignored │
26
+ └────────┬────────┘ │ └────────┬────────┘
27
+ │ │ │
28
+ │ │ ┌───────┴───────┐
29
+ │ │ │ │
30
+ ▼ │ ▼ ▼
31
+ ┌──────────┐ │ ┌─────────┐ ┌─────────┐
32
+ │ CLOSE │ │ │ SQUASH │ │ BURN │
33
+ │ normally │ │ │ → digest│ │ → gone │
34
+ └──────────┘ │ └─────────┘ └─────────┘
35
+
36
+
37
+ ┌───────────────┐
38
+ │ DISTILL │
39
+ │ Extract proto │
40
+ │ from ad-hoc │
41
+ │ epic │
42
+ └───────────────┘
43
+ ```
44
+
45
+ ## Decision Tree: Mol vs Wisp
46
+
47
+ ```
48
+ Will this work be referenced later?
49
+
50
+ ├─ YES → Does it need audit trail / git history?
51
+ │ │
52
+ │ ├─ YES → MOL (bd pour)
53
+ │ │ Examples: Features, bugs, specs
54
+ │ │
55
+ │ └─ NO → Could go either way
56
+ │ Consider: Will someone else see this?
57
+ │ │
58
+ │ ├─ YES → MOL
59
+ │ └─ NO → WISP (then squash if valuable)
60
+
61
+ └─ NO → WISP (bd wisp create)
62
+ Examples: Grooming, health checks, scratch work
63
+ End state: burn (no value) or squash (capture learnings)
64
+ ```
65
+
66
+ ## Quick Reference
67
+
68
+ | Scenario | Use | Command | End State |
69
+ |----------|-----|---------|-----------|
70
+ | New feature work | Mol | `bd pour spec` | Close normally |
71
+ | Bug fix | Mol | `bd pour bug` | Close normally |
72
+ | Grooming session | Wisp | `bd wisp create grooming` | Squash → digest |
73
+ | Code review | Wisp | `bd wisp create review` | Squash findings |
74
+ | Research spike | Wisp | `bd wisp create spike` | Squash or burn |
75
+ | Session health check | Wisp | `bd wisp create health` | Burn |
76
+ | Agent coordination | Wisp | `bd wisp create coordinator` | Burn |
77
+
78
+ ## Common Patterns
79
+
80
+ ### Pattern 1: Grooming Wisp
81
+
82
+ Use for periodic backlog maintenance.
83
+
84
+ ```bash
85
+ # Start grooming
86
+ bd wisp create grooming --var date="2025-01-02"
87
+
88
+ # Work through checklist (stale, duplicates, verification)
89
+ # Track findings in wisp notes
90
+
91
+ # End: capture summary
92
+ bd mol squash <wisp-id> # Creates digest: "Closed 3, added 5 relationships"
93
+ ```
94
+
95
+ **Why wisp?** Grooming is operational—you don't need permanent issues for "reviewed stale items."
96
+
97
+ ### Pattern 2: Code Review Wisp
98
+
99
+ Use for PR review checklists.
100
+
101
+ ```bash
102
+ # Start review
103
+ bd wisp create pr-review --var pr="123" --var repo="myproject"
104
+
105
+ # Track review findings (security, performance, style)
106
+ # Each finding is a child issue in the wisp
107
+
108
+ # End: promote real issues, discard noise
109
+ bd mol squash <wisp-id> # Creates permanent issues for real findings
110
+ ```
111
+
112
+ **Why wisp?** Review checklists are ephemeral. Only actual findings become permanent issues.
113
+
114
+ ### Pattern 3: Research Spike Wisp
115
+
116
+ Use for time-boxed exploration.
117
+
118
+ ```bash
119
+ # Start spike (2 hour timebox)
120
+ bd wisp create spike --var topic="GraphQL pagination"
121
+
122
+ # Explore, take notes in wisp issues
123
+ # Track sources, findings, dead ends
124
+
125
+ # End: decide outcome
126
+ bd mol squash <wisp-id> # If valuable → creates research summary issue
127
+ # OR
128
+ bd mol burn <wisp-id> # If dead end → no trace
129
+ ```
130
+
131
+ **Why wisp?** Research might lead nowhere. Don't pollute the database with abandoned explorations.
132
+
133
+ ## Commands Reference
134
+
135
+ ### Creating Work
136
+
137
+ ```bash
138
+ # Persistent mol (solid → liquid)
139
+ bd pour <proto> # Synced to git
140
+ bd pour <proto> --var key=value
141
+
142
+ # Ephemeral wisp (solid → vapor)
143
+ bd wisp create <proto> # Not synced
144
+ bd wisp create <proto> --var key=value
145
+ ```
146
+
147
+ ### Ending Work
148
+
149
+ ```bash
150
+ # Mol: close normally
151
+ bd close <mol-id>
152
+
153
+ # Wisp: squash (condense to digest)
154
+ bd mol squash <wisp-id> # Creates permanent digest issue
155
+
156
+ # Wisp: burn (evaporate, no trace)
157
+ bd mol burn <wisp-id> # Deletes with no record
158
+ ```
159
+
160
+ ### Managing
161
+
162
+ ```bash
163
+ # List wisps
164
+ bd wisp list
165
+
166
+ # Garbage collect orphaned wisps
167
+ bd wisp gc
168
+
169
+ # View proto/mol structure
170
+ bd mol show <id>
171
+
172
+ # List available protos
173
+ bd mol catalog
174
+ ```
175
+
176
+ ## Storage Locations
177
+
178
+ | Type | Location | Git Behavior |
179
+ |------|----------|--------------|
180
+ | Proto | `.beads/` | Synced (template label) |
181
+ | Mol | `.beads/` | Synced |
182
+ | Wisp | `.beads-wisp/` | Gitignored |
183
+
184
+ ## Anti-Patterns
185
+
186
+ | Don't | Do Instead |
187
+ |-------|------------|
188
+ | Create mol for one-time diagnostic | Use wisp, then burn |
189
+ | Create wisp for real feature work | Use mol (needs audit trail) |
190
+ | Burn wisp with valuable findings | Squash first (captures digest) |
191
+ | Let wisps accumulate | Burn or squash at session end |
192
+ | Create ad-hoc epics for repeatable patterns | Distill into proto |
193
+
194
+ ## Related Resources
195
+
196
+ - [MOLECULES.md](MOLECULES.md) — Proto definitions
197
+ - [WORKFLOWS.md](WORKFLOWS.md) — General beads workflows