opencode-swarm-plugin 0.14.0 → 0.15.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.
@@ -32,6 +32,7 @@
32
32
  {"id":"opencode-swarm-plugin-0lidx","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:41.181135-08:00","updated_at":"2025-12-08T11:12:43.741036-08:00","closed_at":"2025-12-08T11:12:43.741036-08:00"}
33
33
  {"id":"opencode-swarm-plugin-0llr","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.509809-08:00","updated_at":"2025-12-07T19:56:44.737443-08:00","closed_at":"2025-12-07T19:56:44.737443-08:00"}
34
34
  {"id":"opencode-swarm-plugin-0lo41","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:06:06.208543-08:00","updated_at":"2025-12-10T09:06:09.912935-08:00","closed_at":"2025-12-10T09:06:09.912935-08:00"}
35
+ {"id":"opencode-swarm-plugin-0nso6","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-13T14:48:40.259854-08:00","updated_at":"2025-12-13T14:48:44.582836-08:00","closed_at":"2025-12-13T14:48:44.582836-08:00"}
35
36
  {"id":"opencode-swarm-plugin-0oku","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.956973-08:00","updated_at":"2025-12-08T08:11:42.61703-08:00","closed_at":"2025-12-08T08:11:42.61703-08:00"}
36
37
  {"id":"opencode-swarm-plugin-0pd7","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.598833-08:00","updated_at":"2025-12-08T11:12:28.0058-08:00","closed_at":"2025-12-08T11:12:28.0058-08:00"}
37
38
  {"id":"opencode-swarm-plugin-0phkm","title":"swarm.ts:920-956 - queryCassHistory returns null with no distinction on failure types","description":"swarm.ts:920-956 - queryCassHistory returns null for \"unavailable\", \"failed\", and \"no results\" cases without distinction. Callers can't tell if they should retry or if CASS is disabled. Suggested fix: Return structured result with status enum.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-10T09:06:31.086042-08:00","updated_at":"2025-12-10T11:56:18.166564-08:00","closed_at":"2025-12-10T11:56:18.166564-08:00"}
@@ -63,6 +64,7 @@
63
64
  {"id":"opencode-swarm-plugin-1dpc.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:19.498318-08:00","updated_at":"2025-12-08T08:23:19.595083-08:00","closed_at":"2025-12-08T08:23:19.595083-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-1dpc.2","depends_on_id":"opencode-swarm-plugin-1dpc","type":"parent-child","created_at":"2025-12-08T08:23:19.498652-08:00","created_by":"daemon"}]}
64
65
  {"id":"opencode-swarm-plugin-1fga","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:11.347823-08:00","updated_at":"2025-12-08T07:49:11.427718-08:00","closed_at":"2025-12-08T07:49:11.427718-08:00"}
65
66
  {"id":"opencode-swarm-plugin-1fj","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:33.890179-08:00","updated_at":"2025-12-07T19:37:36.077012-08:00","closed_at":"2025-12-07T19:37:36.077012-08:00"}
67
+ {"id":"opencode-swarm-plugin-1fskr","title":"Feature: Coordinator delegates planning to swarm/planner subagent","description":"## Problem\nCoordinators currently do planning inline, which:\n- Consumes main thread context with decomposition reasoning\n- Pollutes coordinator context with file contents, analysis, etc.\n- Makes long swarms hit context limits faster\n\n## Solution\nAdd a `swarm_delegate_planning` tool that:\n1. Creates a planning bead with full task context\n2. Spawns swarm/planner subagent with the bead\n3. Subagent returns ONLY structured BeadTree JSON\n4. Coordinator validates and creates beads from response\n\n## Implementation\n\n### New Tool: swarm_delegate_planning\n```typescript\ninterface DelegatePlanningArgs {\n task: string\n context?: string // Additional context to include\n max_subtasks?: number\n strategy?: \"auto\" | \"file-based\" | \"feature-based\" | \"risk-based\" | \"socratic\"\n}\n\ninterface DelegatePlanningResult {\n bead_tree: BeadTree // Validated decomposition\n planning_bead_id: string // For reference\n strategy_used: string\n}\n```\n\n### Workflow Change\n**Before (context-heavy):**\n```\nCoordinator:\n → swarm_select_strategy (inline)\n → swarm_plan_prompt (inline, dumps context)\n → Agent reasons about decomposition (inline)\n → swarm_validate_decomposition (inline)\n → beads_create_epic\n```\n\n**After (context-lean):**\n```\nCoordinator:\n → swarm_delegate_planning(task, context)\n └─ [Subagent does all planning work]\n └─ Returns only BeadTree JSON\n → beads_create_epic (from validated result)\n```\n\n### Benefits\n- Coordinator context stays lean (orchestration only)\n- Planning reasoning isolated in subagent\n- Subagent can use skills, search CASS, read files without polluting main thread\n- Failed planning doesn't corrupt coordinator state\n\n## Files to Modify\n- src/swarm.ts - Add swarm_delegate_planning tool\n- src/index.ts - Export new tool\n- examples/commands/swarm.md - Update coordinator workflow\n- global-skills/swarm-coordination/SKILL.md - Document pattern\n\n## Success Criteria\n- Coordinator can decompose complex tasks without context bloat\n- Planning failures don't crash coordinator\n- BeadTree validation happens before coordinator sees it\n- Backward compatible (existing tools still work)","status":"open","priority":1,"issue_type":"feature","created_at":"2025-12-13T14:08:54.208003-08:00","updated_at":"2025-12-13T14:08:54.208003-08:00"}
66
68
  {"id":"opencode-swarm-plugin-1gtm","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:39.569462-08:00","updated_at":"2025-12-08T08:11:42.010151-08:00","closed_at":"2025-12-08T08:11:42.010151-08:00"}
67
69
  {"id":"opencode-swarm-plugin-1i8","title":"Test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:23:49.873224-08:00","updated_at":"2025-12-07T19:24:13.408304-08:00","closed_at":"2025-12-07T19:24:13.408304-08:00"}
68
70
  {"id":"opencode-swarm-plugin-1j0t","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:49.618076-08:00","updated_at":"2025-12-08T07:46:49.644609-08:00","closed_at":"2025-12-08T07:46:49.644609-08:00"}
@@ -76,6 +78,7 @@
76
78
  {"id":"opencode-swarm-plugin-1m18k","title":"storage.ts:225 - Missing error handling in store() method","description":"src/storage.ts:225 - The store() method in SemanticMemoryStorage silently swallows errors. If execSemanticMemory fails, no error is thrown or logged. Suggested fix: Check result.exitCode and throw if non-zero, or at minimum log the error.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-10T09:05:47.181965-08:00","updated_at":"2025-12-10T11:56:07.964661-08:00","closed_at":"2025-12-10T11:56:07.964661-08:00"}
77
79
  {"id":"opencode-swarm-plugin-1mre","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.126035-08:00","updated_at":"2025-12-08T07:49:11.799933-08:00","closed_at":"2025-12-08T07:49:11.799933-08:00"}
78
80
  {"id":"opencode-swarm-plugin-1no","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:39:18.620094-08:00","updated_at":"2025-12-07T19:39:20.597336-08:00","closed_at":"2025-12-07T19:39:20.597336-08:00"}
81
+ {"id":"opencode-swarm-plugin-1nxpv","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:41.910945-08:00","updated_at":"2025-12-13T14:48:45.335721-08:00","closed_at":"2025-12-13T14:48:45.335721-08:00"}
79
82
  {"id":"opencode-swarm-plugin-1o0m","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:25.048321-08:00","updated_at":"2025-12-08T11:10:27.497308-08:00","closed_at":"2025-12-08T11:10:27.497308-08:00"}
80
83
  {"id":"opencode-swarm-plugin-1ovn","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.407876-08:00","updated_at":"2025-12-08T11:11:26.09423-08:00","closed_at":"2025-12-08T11:11:26.09423-08:00"}
81
84
  {"id":"opencode-swarm-plugin-1pejv","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:55.689845-08:00","updated_at":"2025-12-08T11:12:58.14791-08:00","closed_at":"2025-12-08T11:12:58.14791-08:00"}
@@ -113,8 +116,10 @@
113
116
  {"id":"opencode-swarm-plugin-2agi3","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T11:20:48.702046-08:00","updated_at":"2025-12-13T11:20:52.133475-08:00","closed_at":"2025-12-13T11:20:52.133475-08:00"}
114
117
  {"id":"opencode-swarm-plugin-2agi3.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T11:20:48.757338-08:00","updated_at":"2025-12-13T11:20:52.174432-08:00","closed_at":"2025-12-13T11:20:52.174432-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-2agi3.1","depends_on_id":"opencode-swarm-plugin-2agi3","type":"parent-child","created_at":"2025-12-13T11:20:48.758493-08:00","created_by":"daemon"}]}
115
118
  {"id":"opencode-swarm-plugin-2c3on","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:56.287189-08:00","updated_at":"2025-12-08T11:12:56.312704-08:00","closed_at":"2025-12-08T11:12:56.312704-08:00"}
119
+ {"id":"opencode-swarm-plugin-2c6jt","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:41.594675-08:00","updated_at":"2025-12-13T14:48:45.291216-08:00","closed_at":"2025-12-13T14:48:45.291216-08:00"}
116
120
  {"id":"opencode-swarm-plugin-2cm","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:54.024663-08:00","updated_at":"2025-12-07T19:34:55.333759-08:00","closed_at":"2025-12-07T19:34:55.333759-08:00"}
117
121
  {"id":"opencode-swarm-plugin-2d06","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:44.368643-08:00","updated_at":"2025-12-08T07:53:46.554363-08:00","closed_at":"2025-12-08T07:53:46.554363-08:00"}
122
+ {"id":"opencode-swarm-plugin-2d1nd","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:41.313635-08:00","updated_at":"2025-12-13T14:48:45.150971-08:00","closed_at":"2025-12-13T14:48:45.150971-08:00"}
118
123
  {"id":"opencode-swarm-plugin-2dgp","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.972688-08:00","updated_at":"2025-12-08T11:12:28.230821-08:00","closed_at":"2025-12-08T11:12:28.230821-08:00"}
119
124
  {"id":"opencode-swarm-plugin-2e5","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.695902-08:00","updated_at":"2025-12-07T19:39:11.80833-08:00","closed_at":"2025-12-07T19:39:11.80833-08:00"}
120
125
  {"id":"opencode-swarm-plugin-2en2","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:16.538491-08:00","updated_at":"2025-12-08T08:36:19.141453-08:00","closed_at":"2025-12-08T08:36:19.141453-08:00"}
@@ -125,6 +130,7 @@
125
130
  {"id":"opencode-swarm-plugin-2gp2","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:11:39.680689-08:00","updated_at":"2025-12-08T08:11:42.060492-08:00","closed_at":"2025-12-08T08:11:42.060492-08:00"}
126
131
  {"id":"opencode-swarm-plugin-2h3o","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:22.619593-08:00","updated_at":"2025-12-08T11:11:25.389157-08:00","closed_at":"2025-12-08T11:11:25.389157-08:00"}
127
132
  {"id":"opencode-swarm-plugin-2j38","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:24.714793-08:00","updated_at":"2025-12-08T11:10:27.316849-08:00","closed_at":"2025-12-08T11:10:27.316849-08:00"}
133
+ {"id":"opencode-swarm-plugin-2klp9","title":"Pattern: CSO - Claude Search Optimization for Skills","description":"## CSO - Claude Search Optimization (from obra/superpowers)\n\n**Purpose:** Claude reads skill descriptions to decide which skills to load. Make descriptions answer: \"Should I read this skill right now?\"\n\n### Description Field Format\n- Start with \"Use when...\" to focus on triggering conditions\n- Third-person only (injected into system prompt)\n- Include BOTH what it does AND when to use it\n- Max 1024 chars (aim for \u003c500)\n\n### Examples\n```yaml\n# ❌ BAD: Too abstract\ndescription: For async testing\n\n# ❌ BAD: First person\ndescription: I can help you with async tests\n\n# ❌ BAD: Technology-specific but skill isn't\ndescription: Use when tests use setTimeout and are flaky\n\n# ✅ GOOD: Trigger + problem + solution\ndescription: Use when tests have race conditions, timing dependencies, or pass/fail inconsistently - replaces arbitrary timeouts with condition polling\n```\n\n### Keyword Coverage\nUse words Claude would search for:\n- **Error messages:** \"Hook timed out\", \"ENOTEMPTY\", \"race condition\"\n- **Symptoms:** \"flaky\", \"hanging\", \"zombie\", \"pollution\"\n- **Synonyms:** \"timeout/hang/freeze\", \"cleanup/teardown/afterEach\"\n- **Tools:** Actual commands, library names, file types\n\n### Token Efficiency\n- getting-started workflows: \u003c150 words\n- Frequently-loaded skills: \u003c200 words\n- Other skills: \u003c500 words\n- Move details to tool --help\n- Use cross-references instead of repeating\n\n### Naming Conventions\n- Active voice, verb-first: `creating-skills` not `skill-creation`\n- Gerunds work well: `testing-skills`, `debugging-with-logs`\n- Name by what you DO: `condition-based-waiting` \u003e `async-test-helpers`\n\n**Full analysis:** .beads/analysis/skill-architecture-meta-skills.md","status":"open","priority":1,"issue_type":"feature","created_at":"2025-12-13T14:00:50.930936-08:00","updated_at":"2025-12-13T14:00:50.930936-08:00"}
128
134
  {"id":"opencode-swarm-plugin-2kpi","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T11:12:40.799487-08:00","updated_at":"2025-12-08T11:12:43.550149-08:00","closed_at":"2025-12-08T11:12:43.550149-08:00"}
129
135
  {"id":"opencode-swarm-plugin-2l1z","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:25.634298-08:00","updated_at":"2025-12-08T11:10:27.704419-08:00","closed_at":"2025-12-08T11:10:27.704419-08:00"}
130
136
  {"id":"opencode-swarm-plugin-2l4d","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:09.9045-08:00","updated_at":"2025-12-08T08:25:12.384034-08:00","closed_at":"2025-12-08T08:25:12.384034-08:00"}
@@ -217,6 +223,7 @@
217
223
  {"id":"opencode-swarm-plugin-486","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:39:18.672014-08:00","updated_at":"2025-12-07T19:39:20.618967-08:00","closed_at":"2025-12-07T19:39:20.618967-08:00"}
218
224
  {"id":"opencode-swarm-plugin-4942","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:09.50503-08:00","updated_at":"2025-12-08T11:11:11.381465-08:00","closed_at":"2025-12-08T11:11:11.381465-08:00"}
219
225
  {"id":"opencode-swarm-plugin-4bitt","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:20:46.452234-08:00","updated_at":"2025-12-13T11:20:51.060861-08:00","closed_at":"2025-12-13T11:20:51.060861-08:00"}
226
+ {"id":"opencode-swarm-plugin-4c0th","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.369138-08:00","updated_at":"2025-12-13T14:48:44.668923-08:00","closed_at":"2025-12-13T14:48:44.668923-08:00"}
220
227
  {"id":"opencode-swarm-plugin-4cbdw","title":"Document schema_name enum values in structured_validate","description":"src/structured.ts:351-353 - schema_name enum [\"evaluation\", \"task_decomposition\", \"bead_tree\"] not documented. Add description: \"Schema to validate against (evaluation=agent self-eval, task_decomposition=swarm breakdown, bead_tree=epic+subtasks)\"","status":"open","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:54.29152-08:00","updated_at":"2025-12-10T09:06:54.29152-08:00"}
221
228
  {"id":"opencode-swarm-plugin-4ctd","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.745673-08:00","updated_at":"2025-12-08T11:12:28.126517-08:00","closed_at":"2025-12-08T11:12:28.126517-08:00"}
222
229
  {"id":"opencode-swarm-plugin-4d44w","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:07:22.27411-08:00","updated_at":"2025-12-10T09:07:25.689481-08:00","closed_at":"2025-12-10T09:07:25.689481-08:00"}
@@ -247,6 +254,7 @@
247
254
  {"id":"opencode-swarm-plugin-4n7d","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:32.610309-08:00","updated_at":"2025-12-08T08:05:35.108781-08:00","closed_at":"2025-12-08T08:05:35.108781-08:00"}
248
255
  {"id":"opencode-swarm-plugin-4nbl","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:38.02379-08:00","updated_at":"2025-12-08T11:11:40.651507-08:00","closed_at":"2025-12-08T11:11:40.651507-08:00"}
249
256
  {"id":"opencode-swarm-plugin-4nru","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.593204-08:00","updated_at":"2025-12-08T08:11:42.542927-08:00","closed_at":"2025-12-08T08:11:42.542927-08:00"}
257
+ {"id":"opencode-swarm-plugin-4o5fm","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.804066-08:00","updated_at":"2025-12-13T14:48:44.883008-08:00","closed_at":"2025-12-13T14:48:44.883008-08:00"}
250
258
  {"id":"opencode-swarm-plugin-4p4h","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:24.771767-08:00","updated_at":"2025-12-08T11:10:27.342638-08:00","closed_at":"2025-12-08T11:10:27.342638-08:00"}
251
259
  {"id":"opencode-swarm-plugin-4pp1","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.97576-08:00","updated_at":"2025-12-08T07:53:46.371284-08:00","closed_at":"2025-12-08T07:53:46.371284-08:00"}
252
260
  {"id":"opencode-swarm-plugin-4pzf","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:05:33.705473-08:00","updated_at":"2025-12-08T08:05:35.648987-08:00","closed_at":"2025-12-08T08:05:35.648987-08:00"}
@@ -261,6 +269,7 @@
261
269
  {"id":"opencode-swarm-plugin-4uy9.1","title":"Add tests for swarm_select_strategy and swarm_plan_prompt","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:08:24.640194-08:00","updated_at":"2025-12-08T11:13:15.209806-08:00","closed_at":"2025-12-08T11:13:15.209806-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-4uy9.1","depends_on_id":"opencode-swarm-plugin-4uy9","type":"parent-child","created_at":"2025-12-08T11:08:24.640519-08:00","created_by":"daemon"}]}
262
270
  {"id":"opencode-swarm-plugin-4uy9.2","title":"Add strategy tracking to swarm_record_outcome","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:08:24.675275-08:00","updated_at":"2025-12-08T11:13:16.248925-08:00","closed_at":"2025-12-08T11:13:16.248925-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-4uy9.2","depends_on_id":"opencode-swarm-plugin-4uy9","type":"parent-child","created_at":"2025-12-08T11:08:24.675587-08:00","created_by":"daemon"}]}
263
271
  {"id":"opencode-swarm-plugin-4uy9.3","title":"Update README with strategy documentation","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:08:24.709732-08:00","updated_at":"2025-12-08T11:13:17.200743-08:00","closed_at":"2025-12-08T11:13:17.200743-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-4uy9.3","depends_on_id":"opencode-swarm-plugin-4uy9","type":"parent-child","created_at":"2025-12-08T11:08:24.710095-08:00","created_by":"daemon"}]}
272
+ {"id":"opencode-swarm-plugin-4vhyb","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.916817-08:00","updated_at":"2025-12-13T14:48:44.972958-08:00","closed_at":"2025-12-13T14:48:44.972958-08:00"}
264
273
  {"id":"opencode-swarm-plugin-4wxp","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:07.728694-08:00","updated_at":"2025-12-08T11:11:10.267547-08:00","closed_at":"2025-12-08T11:11:10.267547-08:00"}
265
274
  {"id":"opencode-swarm-plugin-4xq","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.267048-08:00","updated_at":"2025-12-07T19:39:20.41329-08:00","closed_at":"2025-12-07T19:39:20.41329-08:00"}
266
275
  {"id":"opencode-swarm-plugin-4y7","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:07.658033-08:00","updated_at":"2025-12-07T19:36:09.192204-08:00","closed_at":"2025-12-07T19:36:09.192204-08:00"}
@@ -309,6 +318,8 @@
309
318
  {"id":"opencode-swarm-plugin-5p7c.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:26.966917-08:00","updated_at":"2025-12-08T11:12:28.738153-08:00","closed_at":"2025-12-08T11:12:28.738153-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5p7c.4","depends_on_id":"opencode-swarm-plugin-5p7c","type":"parent-child","created_at":"2025-12-08T11:12:26.967265-08:00","created_by":"daemon"}]}
310
319
  {"id":"opencode-swarm-plugin-5poz6","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:08:33.966416-08:00","updated_at":"2025-12-10T09:08:36.677016-08:00","closed_at":"2025-12-10T09:08:36.677016-08:00"}
311
320
  {"id":"opencode-swarm-plugin-5ppk","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:17.380739-08:00","updated_at":"2025-12-08T08:36:19.457354-08:00","closed_at":"2025-12-08T08:36:19.457354-08:00"}
321
+ {"id":"opencode-swarm-plugin-5qm5s","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T14:48:42.620577-08:00","updated_at":"2025-12-13T14:48:45.735102-08:00","closed_at":"2025-12-13T14:48:45.735102-08:00"}
322
+ {"id":"opencode-swarm-plugin-5qm5s.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T14:48:42.674983-08:00","updated_at":"2025-12-13T14:48:45.780443-08:00","closed_at":"2025-12-13T14:48:45.780443-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5qm5s.1","depends_on_id":"opencode-swarm-plugin-5qm5s","type":"parent-child","created_at":"2025-12-13T14:48:42.675806-08:00","created_by":"daemon"}]}
312
323
  {"id":"opencode-swarm-plugin-5quov","title":"Gap: isDatabaseHealthy swallows errors silently","description":"src/streams/index.ts:220-230 - isDatabaseHealthy() returns false on any error but doesn't log what failed. In production, you'd want to know WHY health check failed (connection refused, timeout, corrupted DB). Should log the caught error before returning false. Also consider returning error details for diagnostics.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:25:26.470966-08:00","updated_at":"2025-12-13T09:55:54.723524-08:00","closed_at":"2025-12-13T09:55:54.723524-08:00"}
313
324
  {"id":"opencode-swarm-plugin-5s1ar","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:12:42.038981-08:00","updated_at":"2025-12-08T11:12:43.988396-08:00","closed_at":"2025-12-08T11:12:43.988396-08:00"}
314
325
  {"id":"opencode-swarm-plugin-5s1ar.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:42.076079-08:00","updated_at":"2025-12-08T11:12:44.011223-08:00","closed_at":"2025-12-08T11:12:44.011223-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5s1ar.1","depends_on_id":"opencode-swarm-plugin-5s1ar","type":"parent-child","created_at":"2025-12-08T11:12:42.076451-08:00","created_by":"daemon"}]}
@@ -316,6 +327,7 @@
316
327
  {"id":"opencode-swarm-plugin-5s1ar.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:12:42.14615-08:00","updated_at":"2025-12-08T11:12:44.058059-08:00","closed_at":"2025-12-08T11:12:44.058059-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5s1ar.3","depends_on_id":"opencode-swarm-plugin-5s1ar","type":"parent-child","created_at":"2025-12-08T11:12:42.146502-08:00","created_by":"daemon"}]}
317
328
  {"id":"opencode-swarm-plugin-5sm","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:10.233019-08:00","updated_at":"2025-12-07T19:39:10.257081-08:00","closed_at":"2025-12-07T19:39:10.257081-08:00"}
318
329
  {"id":"opencode-swarm-plugin-5t4k0","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.667287-08:00","updated_at":"2025-12-09T10:00:25.879488-08:00","closed_at":"2025-12-09T10:00:25.879488-08:00"}
330
+ {"id":"opencode-swarm-plugin-5thwp","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.139604-08:00","updated_at":"2025-12-13T14:48:44.495697-08:00","closed_at":"2025-12-13T14:48:44.495697-08:00"}
319
331
  {"id":"opencode-swarm-plugin-5tio","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:38.963071-08:00","updated_at":"2025-12-08T08:11:41.63682-08:00","closed_at":"2025-12-08T08:11:41.63682-08:00"}
320
332
  {"id":"opencode-swarm-plugin-5tk","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:10.779775-08:00","updated_at":"2025-12-07T19:39:12.330046-08:00","closed_at":"2025-12-07T19:39:12.330046-08:00"}
321
333
  {"id":"opencode-swarm-plugin-5tk.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:10.809874-08:00","updated_at":"2025-12-07T19:39:12.353042-08:00","closed_at":"2025-12-07T19:39:12.353042-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5tk.1","depends_on_id":"opencode-swarm-plugin-5tk","type":"parent-child","created_at":"2025-12-07T19:39:10.810153-08:00","created_by":"daemon"}]}
@@ -328,6 +340,7 @@
328
340
  {"id":"opencode-swarm-plugin-5xy17","title":"Swarm should support research task decomposition with pdf-brain","description":"Currently swarm coordinator treats \"research\" tasks as single-agent work. Should decompose research into parallel agents that:\n\n1. Search different sources (pdf-brain, repo-crawl, cass, web)\n2. Focus on different aspects of the question\n3. Synthesize findings into coherent answer\n\nExample decomposition for \"debug levers for agent mail\":\n- Agent 1: Search pdf-brain for \"agent debugging\", \"MCP server configuration\"\n- Agent 2: Crawl the repo README, .env.example, config.py\n- Agent 3: Search cass for past sessions dealing with agent-mail errors\n- Agent 4: Synthesize findings from other agents\n\nStrategy selection should recognize research keywords:\n- research, investigate, explore, find, discover, understand, learn, analyze\n\nTool availability check:\n- If pdf-brain available, include PDF search subtask\n- If repo-crawl available, include repo exploration subtask\n- If cass available, include history search subtask\n\nFiles: src/swarm.ts (add research strategy), src/tool-availability.ts","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-10T10:59:41.26917-08:00","updated_at":"2025-12-10T11:01:35.90704-08:00","closed_at":"2025-12-10T11:01:35.90704-08:00"}
329
341
  {"id":"opencode-swarm-plugin-5zh46","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:18:42.20558-08:00","updated_at":"2025-12-13T11:18:46.259977-08:00","closed_at":"2025-12-13T11:18:46.259977-08:00"}
330
342
  {"id":"opencode-swarm-plugin-5ztv","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T11:12:40.764593-08:00","updated_at":"2025-12-08T11:12:43.52524-08:00","closed_at":"2025-12-08T11:12:43.52524-08:00"}
343
+ {"id":"opencode-swarm-plugin-613dp","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.603068-08:00","updated_at":"2025-12-13T14:48:44.753868-08:00","closed_at":"2025-12-13T14:48:44.753868-08:00"}
331
344
  {"id":"opencode-swarm-plugin-61t","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:36:07.443401-08:00","updated_at":"2025-12-07T19:36:09.031886-08:00","closed_at":"2025-12-07T19:36:09.031886-08:00"}
332
345
  {"id":"opencode-swarm-plugin-62afc","title":"Gap: Reservation conflicts detected but still grants reservation","description":"src/streams/agent-mail.ts:373-416 - reserveAgentFiles() checks conflicts (line 386-391) but ALWAYS creates reservations afterward (line 393-400). Conflicts are returned to caller but reservation is granted anyway. This is wrong - should NOT grant reservation if conflicts exist. Fix: return conflicts without creating reservations, or add flag to force reservation despite conflicts.","status":"closed","priority":1,"issue_type":"chore","created_at":"2025-12-13T09:25:20.417963-08:00","updated_at":"2025-12-13T09:34:09.124759-08:00","closed_at":"2025-12-13T09:34:09.124759-08:00"}
333
346
  {"id":"opencode-swarm-plugin-62da","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:38.733772-08:00","updated_at":"2025-12-08T11:11:41.037318-08:00","closed_at":"2025-12-08T11:11:41.037318-08:00"}
@@ -338,6 +351,7 @@
338
351
  {"id":"opencode-swarm-plugin-679z.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.165666-08:00","updated_at":"2025-12-08T08:11:42.205856-08:00","closed_at":"2025-12-08T08:11:42.205856-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-679z.1","depends_on_id":"opencode-swarm-plugin-679z","type":"parent-child","created_at":"2025-12-08T08:11:40.165959-08:00","created_by":"daemon"}]}
339
352
  {"id":"opencode-swarm-plugin-679z.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T08:11:40.198674-08:00","updated_at":"2025-12-08T08:11:42.232434-08:00","closed_at":"2025-12-08T08:11:42.232434-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-679z.2","depends_on_id":"opencode-swarm-plugin-679z","type":"parent-child","created_at":"2025-12-08T08:11:40.198981-08:00","created_by":"daemon"}]}
340
353
  {"id":"opencode-swarm-plugin-67l","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.107212-08:00","updated_at":"2025-12-07T19:37:36.183136-08:00","closed_at":"2025-12-07T19:37:36.183136-08:00"}
354
+ {"id":"opencode-swarm-plugin-68y4o","title":"Epic: Superpowers Pattern Integration - Verification, CSO, 3-Strike, Socratic","description":"## Goal\nIntegrate the best patterns from obra/superpowers analysis into opencode-swarm-plugin.\n\n## Features to Implement\n\n### 1. Verification Gate in swarm_complete\nAdd the Gate Function (IDENTIFY → RUN → READ → VERIFY → CLAIM) to swarm_complete:\n- Run UBS scan (already exists)\n- Run typecheck\n- Verify tests pass\n- Only then mark complete\n- Block completion if verification fails\n\n**Files:** src/swarm.ts (swarm_complete function)\n\n### 2. CSO Validation in skills_create\nAdd Claude Search Optimization validation when creating skills:\n- Description starts with \"Use when...\"\n- Description \u003c 500 chars (warn if \u003e 1024)\n- Third-person only (no \"I\", \"you\")\n- Contains trigger keywords\n- Name follows conventions (gerunds, verb-first)\n\n**Files:** src/skills.ts (skills_create function)\n\n### 3. 3-Strike Detection in debug-plus\nTrack fix attempts per issue. After 3 failures:\n- STOP and surface architecture question\n- Don't attempt Fix #4\n- Require human decision before continuing\n\n**Files:** examples/commands/debug-plus.md (or create if doesn't exist)\n\n### 4. Socratic Strategy for Swarm\nAdd \"socratic\" strategy to swarm decomposition:\n- Detect ambiguous tasks (no files, vague verbs, large scope)\n- One question at a time refinement\n- Multiple choice preferred\n- 200-300 word validation sections\n- Auto-transition to decomposition when validated\n\n**Files:** src/swarm.ts (swarm_select_strategy, swarm_plan_prompt)\n\n### 5. Coordinator Context Preservation Pattern\nUpdate swarm coordinator workflow to:\n- Create planning bead with full context FIRST\n- Delegate planning to subagent (not main thread)\n- Subagent returns structured BeadTree JSON\n- Coordinator validates and creates beads\n\n**Files:** examples/commands/swarm.md, global-skills/swarm-coordination/SKILL.md\n\n## Reference Documents\n- docs/analysis-socratic-planner-pattern.md\n- VERIFICATION_QUALITY_PATTERNS.md\n- docs/analysis/subagent-coordination-patterns.md\n- .beads/analysis/skill-architecture-meta-skills.md\n\n## Pattern Beads (for reference)\n- opencode-swarm-plugin-xwlda (Socratic Planner)\n- opencode-swarm-plugin-cyc8w (Verification Before Completion)\n- opencode-swarm-plugin-9lksy (3-Strike Architecture Rule)\n- opencode-swarm-plugin-2klp9 (CSO)\n\n## Success Criteria\n- swarm_complete blocks on failed verification\n- skills_create warns on poor CSO\n- debug-plus stops after 3 failed fixes\n- /swarm detects ambiguous tasks and refines them\n- Coordinator delegates planning to subagent","status":"open","priority":0,"issue_type":"epic","created_at":"2025-12-13T14:07:39.259162-08:00","updated_at":"2025-12-13T14:07:39.259162-08:00"}
341
355
  {"id":"opencode-swarm-plugin-6ank","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:29.200873-08:00","updated_at":"2025-12-08T08:21:29.286191-08:00","closed_at":"2025-12-08T08:21:29.286191-08:00"}
342
356
  {"id":"opencode-swarm-plugin-6bf0","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T08:11:39.059587-08:00","updated_at":"2025-12-08T08:11:41.716689-08:00","closed_at":"2025-12-08T08:11:41.716689-08:00"}
343
357
  {"id":"opencode-swarm-plugin-6bq","title":"Test link","description":"[thread:test-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:39.895527-08:00","updated_at":"2025-12-08T08:36:25.487657-08:00","closed_at":"2025-12-08T08:36:25.487657-08:00"}
@@ -366,12 +380,14 @@
366
380
  {"id":"opencode-swarm-plugin-6qjn","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.810469-08:00","updated_at":"2025-12-08T11:12:28.179291-08:00","closed_at":"2025-12-08T11:12:28.179291-08:00"}
367
381
  {"id":"opencode-swarm-plugin-6rs3","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:11.205193-08:00","updated_at":"2025-12-07T19:41:13.573642-08:00","closed_at":"2025-12-07T19:41:13.573642-08:00"}
368
382
  {"id":"opencode-swarm-plugin-6rtj","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T07:46:48.614431-08:00","updated_at":"2025-12-08T07:46:51.457319-08:00","closed_at":"2025-12-08T07:46:51.457319-08:00"}
383
+ {"id":"opencode-swarm-plugin-6syoc","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:43.003342-08:00","updated_at":"2025-12-13T14:48:46.043397-08:00","closed_at":"2025-12-13T14:48:46.043397-08:00"}
369
384
  {"id":"opencode-swarm-plugin-6tb8u","title":"beads.ts:163-172 - No validation of bd create output before parsing","description":"beads.ts:163-172 - beads_create assumes bd create --json always returns valid JSON. If bd crashes or returns non-JSON error, parseBead throws generic error. Suggested fix: Check if stdout is empty or contains \"error\" before parsing.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-10T09:06:11.381852-08:00","updated_at":"2025-12-10T11:59:34.843893-08:00","closed_at":"2025-12-10T11:59:34.843893-08:00"}
370
385
  {"id":"opencode-swarm-plugin-6um3","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.518628-08:00","updated_at":"2025-12-08T11:11:26.121955-08:00","closed_at":"2025-12-08T11:11:26.121955-08:00"}
371
386
  {"id":"opencode-swarm-plugin-6wkm","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:09.055636-08:00","updated_at":"2025-12-08T11:11:11.145613-08:00","closed_at":"2025-12-08T11:11:11.145613-08:00"}
372
387
  {"id":"opencode-swarm-plugin-6wkv","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:14:29.792336-08:00","updated_at":"2025-12-08T08:14:31.557975-08:00","closed_at":"2025-12-08T08:14:31.557975-08:00"}
373
388
  {"id":"opencode-swarm-plugin-6x0s9","title":"Gap: Race condition in singleton creation","description":"src/streams/index.ts:58-78 - getDatabase() has race condition: two concurrent calls with same dbPath could both pass the `if (db)` check before either sets the instance in the Map, causing duplicate PGLite instances. Should use async lock/mutex or check-and-set pattern with await. Consider using a Promise cache instead of instance cache to handle pending initialization.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:24:53.052581-08:00","updated_at":"2025-12-13T09:55:52.819054-08:00","closed_at":"2025-12-13T09:55:52.819054-08:00"}
374
389
  {"id":"opencode-swarm-plugin-6xjq","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:54.620984-08:00","updated_at":"2025-12-08T11:10:56.415356-08:00","closed_at":"2025-12-08T11:10:56.415356-08:00"}
390
+ {"id":"opencode-swarm-plugin-6zfmn","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:41.714622-08:00","updated_at":"2025-12-13T14:48:41.757184-08:00","closed_at":"2025-12-13T14:48:41.757184-08:00"}
375
391
  {"id":"opencode-swarm-plugin-6zh1","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.58612-08:00","updated_at":"2025-12-07T19:39:31.471458-08:00","closed_at":"2025-12-07T19:39:31.471458-08:00"}
376
392
  {"id":"opencode-swarm-plugin-6zq4","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:25.166215-08:00","updated_at":"2025-12-08T11:10:27.547433-08:00","closed_at":"2025-12-08T11:10:27.547433-08:00"}
377
393
  {"id":"opencode-swarm-plugin-703wf","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:42.544143-08:00","updated_at":"2025-12-08T11:12:44.314103-08:00","closed_at":"2025-12-08T11:12:44.314103-08:00"}
@@ -531,6 +547,7 @@
531
547
  {"id":"opencode-swarm-plugin-9ioz","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:43.947868-08:00","updated_at":"2025-12-07T19:56:45.455609-08:00","closed_at":"2025-12-07T19:56:45.455609-08:00"}
532
548
  {"id":"opencode-swarm-plugin-9itda","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.953258-08:00","updated_at":"2025-12-09T10:00:25.985697-08:00","closed_at":"2025-12-09T10:00:25.985697-08:00"}
533
549
  {"id":"opencode-swarm-plugin-9khpl","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:06:06.9783-08:00","updated_at":"2025-12-10T09:06:07.013143-08:00","closed_at":"2025-12-10T09:06:07.013143-08:00"}
550
+ {"id":"opencode-swarm-plugin-9lksy","title":"Pattern: 3-Strike Architecture Rule - Question Fundamentals After 3 Failures","description":"## 3-Strike Architecture Rule (from obra/superpowers)\n\n**Iron Law:** If 3+ fixes have failed, you have an architectural problem, not a bug.\n\n### The Rule\n```\nIF 3+ fixes have failed:\n STOP → Question the architecture\n DON'T attempt Fix #4\n Discuss with human partner\n\nThis is NOT a failed hypothesis.\nThis is a WRONG ARCHITECTURE.\n```\n\n### Pattern Indicators\n- Each fix reveals new shared state/coupling/problem in different place\n- Fixes require \"massive refactoring\" to implement\n- Each fix creates new symptoms elsewhere\n- \"Sticking with it through sheer inertia\"\n\n### What To Do\n1. STOP and question fundamentals\n2. Is this pattern fundamentally sound?\n3. Should we refactor architecture vs. continue fixing symptoms?\n4. Discuss with human partner before attempting more fixes\n\n### 4-Phase Debugging Framework\n| Phase | Key Activities | Success Criteria |\n|-------|---------------|------------------|\n| 1. Root Cause | Read errors, reproduce, check changes, trace data flow | Understand WHAT and WHY |\n| 2. Pattern Analysis | Find working examples, compare, identify differences | Know what's different |\n| 3. Hypothesis | Form single theory, test minimally, one variable | Confirmed or new hypothesis |\n| 4. Implementation | Create test, fix, verify | Bug resolved |\n| **4.5. Architecture** | If 3+ failures: STOP, question pattern | Discuss with human |\n\n### Key Quote\n\"Random fixes waste time and create new bugs. Quick patches mask underlying issues. Systematic debugging is FASTER than guess-and-check thrashing.\"\n\n**Full analysis:** VERIFICATION_QUALITY_PATTERNS.md","status":"open","priority":0,"issue_type":"feature","created_at":"2025-12-13T14:00:30.082677-08:00","updated_at":"2025-12-13T14:00:30.082677-08:00"}
534
551
  {"id":"opencode-swarm-plugin-9m1x9","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:20:49.895996-08:00","updated_at":"2025-12-13T11:20:52.545509-08:00","closed_at":"2025-12-13T11:20:52.545509-08:00"}
535
552
  {"id":"opencode-swarm-plugin-9mc1","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:56.068796-08:00","updated_at":"2025-12-08T08:56:58.30395-08:00","closed_at":"2025-12-08T08:56:58.30395-08:00"}
536
553
  {"id":"opencode-swarm-plugin-9mjt","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:56:44.363301-08:00","updated_at":"2025-12-07T19:56:44.53648-08:00","closed_at":"2025-12-07T19:56:44.53648-08:00"}
@@ -553,6 +570,7 @@
553
570
  {"id":"opencode-swarm-plugin-9wo","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.299301-08:00","updated_at":"2025-12-07T19:39:20.43669-08:00","closed_at":"2025-12-07T19:39:20.43669-08:00"}
554
571
  {"id":"opencode-swarm-plugin-9wofd","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:08:32.646896-08:00","updated_at":"2025-12-10T09:08:35.879026-08:00","closed_at":"2025-12-10T09:08:35.879026-08:00"}
555
572
  {"id":"opencode-swarm-plugin-9yct","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:57.344571-08:00","updated_at":"2025-12-08T08:56:57.424671-08:00","closed_at":"2025-12-08T08:56:57.424671-08:00"}
573
+ {"id":"opencode-swarm-plugin-9yo1u","title":"Pattern: TDD for Documentation - Test Skills Before Writing","description":"## TDD for Documentation (from obra/superpowers)\n\n**Core Insight:** If you didn't watch an agent fail without the skill, you don't know if the skill teaches the right thing.\n\n### TDD Mapping\n| TDD Concept | Skill Creation |\n|-------------|----------------|\n| Test case | Pressure scenario with subagent |\n| Production code | SKILL.md document |\n| Test fails (RED) | Agent violates rule without skill |\n| Test passes (GREEN) | Agent complies with skill present |\n| Refactor | Close loopholes while maintaining compliance |\n\n### The Iron Law\n```\nNO SKILL WITHOUT A FAILING TEST FIRST\n```\n\nApplies to NEW skills AND EDITS to existing skills.\n\n### RED-GREEN-REFACTOR for Skills\n**RED (Baseline):**\n1. Run pressure scenario WITHOUT skill\n2. Document exact rationalizations verbatim\n3. Note specific violations\n\n**GREEN (Write Skill):**\n1. Write skill addressing observed failures\n2. Run same scenario WITH skill\n3. Verify agent now complies\n\n**REFACTOR (Close Loopholes):**\n1. Find new rationalizations\n2. Add explicit counters\n3. Re-verify compliance\n\n### Testing by Skill Type\n- **Discipline-enforcing:** Academic questions + pressure scenarios + combined pressures\n- **Technique skills:** Application scenarios + variations + missing info tests\n- **Pattern skills:** Recognition + application + counter-examples\n- **Reference skills:** Retrieval + application + gap testing\n\n### Bulletproofing Against Rationalization\n- Close every loophole explicitly\n- Address \"spirit vs letter\" arguments early\n- Build rationalization table from baseline testing\n- Create red flags list for self-checking\n\n**Full analysis:** .beads/analysis/skill-architecture-meta-skills.md","status":"open","priority":1,"issue_type":"feature","created_at":"2025-12-13T14:01:01.518288-08:00","updated_at":"2025-12-13T14:01:01.518288-08:00"}
556
574
  {"id":"opencode-swarm-plugin-9zy1","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T11:11:08.072584-08:00","updated_at":"2025-12-08T11:11:10.722977-08:00","closed_at":"2025-12-08T11:11:10.722977-08:00"}
557
575
  {"id":"opencode-swarm-plugin-a1j","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.676752-08:00","updated_at":"2025-12-07T19:37:36.40688-08:00","closed_at":"2025-12-07T19:37:36.40688-08:00"}
558
576
  {"id":"opencode-swarm-plugin-a1q2","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.705459-08:00","updated_at":"2025-12-08T07:49:12.14698-08:00","closed_at":"2025-12-08T07:49:12.14698-08:00"}
@@ -603,6 +621,7 @@
603
621
  {"id":"opencode-swarm-plugin-b39i","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T11:11:38.123705-08:00","updated_at":"2025-12-08T11:11:40.7258-08:00","closed_at":"2025-12-08T11:11:40.7258-08:00"}
604
622
  {"id":"opencode-swarm-plugin-b3pr","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:17.77563-08:00","updated_at":"2025-12-08T08:23:20.062473-08:00","closed_at":"2025-12-08T08:23:20.062473-08:00"}
605
623
  {"id":"opencode-swarm-plugin-b40","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:52.696949-08:00","updated_at":"2025-12-07T19:34:54.75136-08:00","closed_at":"2025-12-07T19:34:54.75136-08:00"}
624
+ {"id":"opencode-swarm-plugin-b4y3u","title":"Feature: Deep semantic-memory integration throughout plugin","description":"## Vision\nMake semantic-memory a first-class citizen in the plugin, not just an available tool.\n\n## Integration Points\n\n### 1. Swarm Learning\n- After swarm_complete: auto-store learnings about what worked/failed\n- After 3-strike: store architectural insights\n- Pattern maturity transitions: store why patterns got promoted/deprecated\n\n### 2. Decomposition\n- Before decomposing: query semantic-memory for similar past tasks\n- Store successful decomposition strategies with task characteristics\n- Learn which strategies work for which task types\n\n### 3. Skills\n- When skill is used successfully: reinforce in memory\n- When skill fails to help: store negative signal\n- Auto-suggest skills based on memory of past similar situations\n\n### 4. Error Handling\n- Store error patterns and their solutions\n- Query memory when hitting errors (before CASS)\n- Build project-specific error knowledge base\n\n### 5. Beads\n- Store context when closing beads (what was learned)\n- Query memory when starting similar beads\n- Track which approaches worked for which problem types\n\n## Implementation Ideas\n\n### Auto-store on key events\n```typescript\n// In swarm_complete\nif (success) {\n semantic_memory_store({\n information: `Task \"${title}\" succeeded with strategy \"${strategy}\". Key insight: ${summary}`,\n metadata: `swarm, ${strategy}, success`\n })\n}\n\n// In 3-strike detection\nsemantic_memory_store({\n information: `Architecture problem in ${bead_id}: ${prompt}. Required human decision.`,\n metadata: `architecture, 3-strike, ${bead_id}`\n})\n```\n\n### Auto-query before actions\n```typescript\n// In swarm_decompose\nconst memories = await semantic_memory_find({\n query: task,\n limit: 3\n})\n// Include relevant memories in decomposition context\n```\n\n### Validation on retrieval\n```typescript\n// When memory helps solve a problem\nsemantic_memory_validate({ id: memory.id }) // Reset decay timer\n```\n\n## Success Criteria\n- Every swarm completion stores a learning\n- Decomposition queries memory before CASS\n- Error patterns accumulate and help future debugging\n- Memory decay keeps knowledge fresh and relevant","status":"open","priority":1,"issue_type":"feature","created_at":"2025-12-13T14:18:23.293815-08:00","updated_at":"2025-12-13T14:18:23.293815-08:00"}
606
625
  {"id":"opencode-swarm-plugin-b5m","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:10.175896-08:00","updated_at":"2025-12-07T19:39:12.06669-08:00","closed_at":"2025-12-07T19:39:12.06669-08:00"}
607
626
  {"id":"opencode-swarm-plugin-b6ff","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:24.911696-08:00","updated_at":"2025-12-08T11:10:27.394162-08:00","closed_at":"2025-12-08T11:10:27.394162-08:00"}
608
627
  {"id":"opencode-swarm-plugin-b74w","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:24.853218-08:00","updated_at":"2025-12-08T11:10:27.368339-08:00","closed_at":"2025-12-08T11:10:27.368339-08:00"}
@@ -621,6 +640,7 @@
621
640
  {"id":"opencode-swarm-plugin-bjrtc","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.91158-08:00","updated_at":"2025-12-09T10:00:25.015472-08:00","closed_at":"2025-12-09T10:00:25.015472-08:00"}
622
641
  {"id":"opencode-swarm-plugin-bkxk","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:26.773358-08:00","updated_at":"2025-12-08T11:10:26.851958-08:00","closed_at":"2025-12-08T11:10:26.851958-08:00"}
623
642
  {"id":"opencode-swarm-plugin-blhh","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.544524-08:00","updated_at":"2025-12-07T19:41:14.154813-08:00","closed_at":"2025-12-07T19:41:14.154813-08:00"}
643
+ {"id":"opencode-swarm-plugin-bmyr9","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.860785-08:00","updated_at":"2025-12-13T14:48:44.928384-08:00","closed_at":"2025-12-13T14:48:44.928384-08:00"}
624
644
  {"id":"opencode-swarm-plugin-bnpn6","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-10T09:06:06.721342-08:00","updated_at":"2025-12-10T09:06:10.157952-08:00","closed_at":"2025-12-10T09:06:10.157952-08:00"}
625
645
  {"id":"opencode-swarm-plugin-bnx47","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:55.816648-08:00","updated_at":"2025-12-08T11:12:58.248106-08:00","closed_at":"2025-12-08T11:12:58.248106-08:00"}
626
646
  {"id":"opencode-swarm-plugin-bo3t","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:07.590376-08:00","updated_at":"2025-12-07T19:57:08.981729-08:00","closed_at":"2025-12-07T19:57:08.981729-08:00"}
@@ -675,6 +695,7 @@
675
695
  {"id":"opencode-swarm-plugin-cbu","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:52.748259-08:00","updated_at":"2025-12-07T19:34:54.778599-08:00","closed_at":"2025-12-07T19:34:54.778599-08:00"}
676
696
  {"id":"opencode-swarm-plugin-cca2v","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:41.817811-08:00","updated_at":"2025-12-08T11:12:43.941239-08:00","closed_at":"2025-12-08T11:12:43.941239-08:00"}
677
697
  {"id":"opencode-swarm-plugin-cck6","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:53.736456-08:00","updated_at":"2025-12-08T11:10:55.983837-08:00","closed_at":"2025-12-08T11:10:55.983837-08:00"}
698
+ {"id":"opencode-swarm-plugin-ccuia","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.753041-08:00","updated_at":"2025-12-13T14:48:44.837762-08:00","closed_at":"2025-12-13T14:48:44.837762-08:00"}
678
699
  {"id":"opencode-swarm-plugin-cert","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:40.697512-08:00","updated_at":"2025-12-08T11:12:43.475157-08:00","closed_at":"2025-12-08T11:12:43.475157-08:00"}
679
700
  {"id":"opencode-swarm-plugin-cf7z","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:10.601954-08:00","updated_at":"2025-12-07T19:41:13.224334-08:00","closed_at":"2025-12-07T19:41:13.224334-08:00"}
680
701
  {"id":"opencode-swarm-plugin-cjq3","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:19.197074-08:00","updated_at":"2025-12-08T08:23:20.668185-08:00","closed_at":"2025-12-08T08:23:20.668185-08:00"}
@@ -696,6 +717,7 @@
696
717
  {"id":"opencode-swarm-plugin-csdh.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.919215-08:00","updated_at":"2025-12-08T08:25:12.863883-08:00","closed_at":"2025-12-08T08:25:12.863883-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-csdh.3","depends_on_id":"opencode-swarm-plugin-csdh","type":"parent-child","created_at":"2025-12-08T08:25:10.919511-08:00","created_by":"daemon"}]}
697
718
  {"id":"opencode-swarm-plugin-csdh.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.956259-08:00","updated_at":"2025-12-08T08:25:12.892858-08:00","closed_at":"2025-12-08T08:25:12.892858-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-csdh.4","depends_on_id":"opencode-swarm-plugin-csdh","type":"parent-child","created_at":"2025-12-08T08:25:10.956706-08:00","created_by":"daemon"}]}
698
719
  {"id":"opencode-swarm-plugin-cu23","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:53.554617-08:00","updated_at":"2025-12-08T11:10:55.905197-08:00","closed_at":"2025-12-08T11:10:55.905197-08:00"}
720
+ {"id":"opencode-swarm-plugin-cu2e8","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:43.590501-08:00","updated_at":"2025-12-13T14:48:46.174472-08:00","closed_at":"2025-12-13T14:48:46.174472-08:00"}
699
721
  {"id":"opencode-swarm-plugin-cunrb","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-10T09:07:23.765175-08:00","updated_at":"2025-12-10T09:07:26.373157-08:00","closed_at":"2025-12-10T09:07:26.373157-08:00"}
700
722
  {"id":"opencode-swarm-plugin-cunrb.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-10T09:07:23.811222-08:00","updated_at":"2025-12-10T09:07:26.411145-08:00","closed_at":"2025-12-10T09:07:26.411145-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-cunrb.1","depends_on_id":"opencode-swarm-plugin-cunrb","type":"parent-child","created_at":"2025-12-10T09:07:23.8123-08:00","created_by":"daemon"}]}
701
723
  {"id":"opencode-swarm-plugin-cw2","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-07T19:36:06.242265-08:00","updated_at":"2025-12-07T19:36:08.47632-08:00","closed_at":"2025-12-07T19:36:08.47632-08:00"}
@@ -707,6 +729,7 @@
707
729
  {"id":"opencode-swarm-plugin-cxss9.2","title":"Rewrite bin/swarm.ts with clack - setup, doctor, init, version commands","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-09T09:26:03.400398-08:00","updated_at":"2025-12-09T09:31:15.343298-08:00","closed_at":"2025-12-09T09:31:15.343298-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-cxss9.2","depends_on_id":"opencode-swarm-plugin-cxss9","type":"parent-child","created_at":"2025-12-09T09:26:03.400797-08:00","created_by":"daemon"}]}
708
730
  {"id":"opencode-swarm-plugin-cxss9.3","title":"Update README with new CLI usage and screenshots","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T09:26:03.441881-08:00","updated_at":"2025-12-09T09:32:20.702615-08:00","closed_at":"2025-12-09T09:32:20.702615-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-cxss9.3","depends_on_id":"opencode-swarm-plugin-cxss9","type":"parent-child","created_at":"2025-12-09T09:26:03.442265-08:00","created_by":"daemon"}]}
709
731
  {"id":"opencode-swarm-plugin-cy71","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.854814-08:00","updated_at":"2025-12-08T08:21:27.88217-08:00","closed_at":"2025-12-08T08:21:27.88217-08:00"}
732
+ {"id":"opencode-swarm-plugin-cyc8w","title":"Pattern: Verification Before Completion - Evidence Before Claims","description":"## Verification Before Completion (from obra/superpowers)\n\n**Iron Law:** NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE\n\n### The Gate Function\nBEFORE claiming ANY status or expressing satisfaction:\n1. **IDENTIFY** - What command proves this claim?\n2. **RUN** - Execute the FULL command (fresh, complete)\n3. **READ** - Full output, check exit code, count failures\n4. **VERIFY** - Does output confirm the claim?\n5. **ONLY THEN** - Make the claim\n\n**Skip any step = lying, not verifying**\n\n### Red Flags (STOP IMMEDIATELY)\n- Using \"should\", \"probably\", \"seems to\"\n- Expressing satisfaction before verification (\"Great!\", \"Perfect!\", \"Done!\")\n- About to commit/push/PR without verification\n- Trusting agent success reports\n- Relying on partial verification\n- Thinking \"just this once\"\n- **ANY wording implying success without having run verification**\n\n### Common Failures Table\n| Claim | Requires | Not Sufficient |\n|-------|----------|----------------|\n| Tests pass | Test command output: 0 failures | Previous run, \"should pass\" |\n| Build succeeds | Build command: exit 0 | Linter passing |\n| Bug fixed | Test original symptom: passes | Code changed, assumed fixed |\n| Agent completed | VCS diff shows changes | Agent reports \"success\" |\n\n### Key Quote\n\"Claiming work is complete without verification is dishonesty, not efficiency.\"\n\n**Full analysis:** VERIFICATION_QUALITY_PATTERNS.md","status":"open","priority":0,"issue_type":"feature","created_at":"2025-12-13T14:00:18.604763-08:00","updated_at":"2025-12-13T14:00:18.604763-08:00"}
710
733
  {"id":"opencode-swarm-plugin-cz40","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T08:23:17.156935-08:00","updated_at":"2025-12-08T08:23:19.744801-08:00","closed_at":"2025-12-08T08:23:19.744801-08:00"}
711
734
  {"id":"opencode-swarm-plugin-czxx","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:39.285554-08:00","updated_at":"2025-12-08T11:11:41.20997-08:00","closed_at":"2025-12-08T11:11:41.20997-08:00"}
712
735
  {"id":"opencode-swarm-plugin-czxx.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:39.329633-08:00","updated_at":"2025-12-08T11:11:41.23602-08:00","closed_at":"2025-12-08T11:11:41.23602-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-czxx.1","depends_on_id":"opencode-swarm-plugin-czxx","type":"parent-child","created_at":"2025-12-08T11:11:39.329975-08:00","created_by":"daemon"}]}
@@ -746,6 +769,7 @@
746
769
  {"id":"opencode-swarm-plugin-dbzw","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:29.36563-08:00","updated_at":"2025-12-08T08:14:31.330993-08:00","closed_at":"2025-12-08T08:14:31.330993-08:00"}
747
770
  {"id":"opencode-swarm-plugin-dc1v","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:30.330077-08:00","updated_at":"2025-12-07T19:39:31.848388-08:00","closed_at":"2025-12-07T19:39:31.848388-08:00"}
748
771
  {"id":"opencode-swarm-plugin-dc8i","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T07:49:09.200537-08:00","updated_at":"2025-12-08T07:49:11.852812-08:00","closed_at":"2025-12-08T07:49:11.852812-08:00"}
772
+ {"id":"opencode-swarm-plugin-dcf6e","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:43.180116-08:00","updated_at":"2025-12-13T14:48:46.086984-08:00","closed_at":"2025-12-13T14:48:46.086984-08:00"}
749
773
  {"id":"opencode-swarm-plugin-ddt0p","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:38.014007-08:00","updated_at":"2025-12-13T11:16:41.054956-08:00","closed_at":"2025-12-13T11:16:41.054956-08:00"}
750
774
  {"id":"opencode-swarm-plugin-de3t","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:32.976239-08:00","updated_at":"2025-12-08T08:05:35.351366-08:00","closed_at":"2025-12-08T08:05:35.351366-08:00"}
751
775
  {"id":"opencode-swarm-plugin-derc7","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:55.914846-08:00","updated_at":"2025-12-08T11:12:58.272157-08:00","closed_at":"2025-12-08T11:12:58.272157-08:00"}
@@ -815,6 +839,7 @@
815
839
  {"id":"opencode-swarm-plugin-enbl","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.783674-08:00","updated_at":"2025-12-08T08:21:30.206569-08:00","closed_at":"2025-12-08T08:21:30.206569-08:00"}
816
840
  {"id":"opencode-swarm-plugin-enxw","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:10.932192-08:00","updated_at":"2025-12-07T19:41:13.424375-08:00","closed_at":"2025-12-07T19:41:13.424375-08:00"}
817
841
  {"id":"opencode-swarm-plugin-esh5","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:25:10.383101-08:00","updated_at":"2025-12-08T08:25:12.512699-08:00","closed_at":"2025-12-08T08:25:12.512699-08:00"}
842
+ {"id":"opencode-swarm-plugin-espkk","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-13T14:48:40.199366-08:00","updated_at":"2025-12-13T14:48:44.542392-08:00","closed_at":"2025-12-13T14:48:44.542392-08:00"}
818
843
  {"id":"opencode-swarm-plugin-euumy","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:18:42.874076-08:00","updated_at":"2025-12-13T11:18:46.527654-08:00","closed_at":"2025-12-13T11:18:46.527654-08:00"}
819
844
  {"id":"opencode-swarm-plugin-evr9p","title":"Fix skill-builder PR issues","description":"Fix critical bugs and improvements identified in skill-builder branch review: __dirname bug, path traversal validation, code duplication, global-skills quality","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-12T21:14:01.993571-08:00","updated_at":"2025-12-12T21:25:08.600282-08:00","closed_at":"2025-12-12T21:25:08.600282-08:00"}
820
845
  {"id":"opencode-swarm-plugin-evr9p.1","title":"Fix __dirname ES module bug in skills.ts","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-12T21:14:02.045699-08:00","updated_at":"2025-12-12T21:14:30.779437-08:00","closed_at":"2025-12-12T21:14:30.779437-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-evr9p.1","depends_on_id":"opencode-swarm-plugin-evr9p","type":"parent-child","created_at":"2025-12-12T21:14:02.046676-08:00","created_by":"daemon"}]}
@@ -938,6 +963,7 @@
938
963
  {"id":"opencode-swarm-plugin-gq4y","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:26.032848-08:00","updated_at":"2025-12-08T11:12:28.256366-08:00","closed_at":"2025-12-08T11:12:28.256366-08:00"}
939
964
  {"id":"opencode-swarm-plugin-gr8j","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T11:11:08.754659-08:00","updated_at":"2025-12-08T11:11:11.067841-08:00","closed_at":"2025-12-08T11:11:11.067841-08:00"}
940
965
  {"id":"opencode-swarm-plugin-gswv","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:44.538704-08:00","updated_at":"2025-12-08T07:53:46.579794-08:00","closed_at":"2025-12-08T07:53:46.579794-08:00"}
966
+ {"id":"opencode-swarm-plugin-gulqn","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.470464-08:00","updated_at":"2025-12-13T14:48:44.711279-08:00","closed_at":"2025-12-13T14:48:44.711279-08:00"}
941
967
  {"id":"opencode-swarm-plugin-gv0f","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.833154-08:00","updated_at":"2025-12-08T09:09:33.206848-08:00","closed_at":"2025-12-08T09:09:33.206848-08:00"}
942
968
  {"id":"opencode-swarm-plugin-gv83","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.193886-08:00","updated_at":"2025-12-08T08:21:29.896242-08:00","closed_at":"2025-12-08T08:21:29.896242-08:00"}
943
969
  {"id":"opencode-swarm-plugin-gvib","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:53:45.028986-08:00","updated_at":"2025-12-08T07:53:46.85409-08:00","closed_at":"2025-12-08T07:53:46.85409-08:00"}
@@ -946,6 +972,9 @@
946
972
  {"id":"opencode-swarm-plugin-gvib.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:45.121896-08:00","updated_at":"2025-12-08T07:53:46.925552-08:00","closed_at":"2025-12-08T07:53:46.925552-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gvib.3","depends_on_id":"opencode-swarm-plugin-gvib","type":"parent-child","created_at":"2025-12-08T07:53:45.122196-08:00","created_by":"daemon"}]}
947
973
  {"id":"opencode-swarm-plugin-gvib.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:45.153067-08:00","updated_at":"2025-12-08T07:53:46.949802-08:00","closed_at":"2025-12-08T07:53:46.949802-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gvib.4","depends_on_id":"opencode-swarm-plugin-gvib","type":"parent-child","created_at":"2025-12-08T07:53:45.15336-08:00","created_by":"daemon"}]}
948
974
  {"id":"opencode-swarm-plugin-gx8dk","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:36.908835-08:00","updated_at":"2025-12-13T11:16:40.364238-08:00","closed_at":"2025-12-13T11:16:40.364238-08:00"}
975
+ {"id":"opencode-swarm-plugin-gxw1e","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T14:48:42.453139-08:00","updated_at":"2025-12-13T14:48:45.598776-08:00","closed_at":"2025-12-13T14:48:45.598776-08:00"}
976
+ {"id":"opencode-swarm-plugin-gxw1e.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:42.515525-08:00","updated_at":"2025-12-13T14:48:45.646022-08:00","closed_at":"2025-12-13T14:48:45.646022-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gxw1e.1","depends_on_id":"opencode-swarm-plugin-gxw1e","type":"parent-child","created_at":"2025-12-13T14:48:42.516685-08:00","created_by":"daemon"}]}
977
+ {"id":"opencode-swarm-plugin-gxw1e.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:42.56898-08:00","updated_at":"2025-12-13T14:48:45.691423-08:00","closed_at":"2025-12-13T14:48:45.691423-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gxw1e.2","depends_on_id":"opencode-swarm-plugin-gxw1e","type":"parent-child","created_at":"2025-12-13T14:48:42.57026-08:00","created_by":"daemon"}]}
949
978
  {"id":"opencode-swarm-plugin-gyl8","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:24.03063-08:00","updated_at":"2025-12-08T11:11:25.911093-08:00","closed_at":"2025-12-08T11:11:25.911093-08:00"}
950
979
  {"id":"opencode-swarm-plugin-gyl8.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:11:24.068597-08:00","updated_at":"2025-12-09T09:34:42.910108-08:00","closed_at":"2025-12-09T09:34:42.910108-08:00"}
951
980
  {"id":"opencode-swarm-plugin-gyu0","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:05.861529-08:00","updated_at":"2025-12-07T19:57:08.217137-08:00","closed_at":"2025-12-07T19:57:08.217137-08:00"}
@@ -1032,6 +1061,7 @@
1032
1061
  {"id":"opencode-swarm-plugin-if1q.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T08:14:29.624489-08:00","updated_at":"2025-12-08T08:14:31.42969-08:00","closed_at":"2025-12-08T08:14:31.42969-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-if1q.2","depends_on_id":"opencode-swarm-plugin-if1q","type":"parent-child","created_at":"2025-12-08T08:14:29.624781-08:00","created_by":"daemon"}]}
1033
1062
  {"id":"opencode-swarm-plugin-if3v","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:53.346318-08:00","updated_at":"2025-12-08T11:10:55.820026-08:00","closed_at":"2025-12-08T11:10:55.820026-08:00"}
1034
1063
  {"id":"opencode-swarm-plugin-ifb8b","title":"Gap: Insufficient logging/observability","description":"src/streams/store.ts, agent-mail.ts - No logging for critical operations: event appends, materialized view updates, database errors, conflicts detected. Makes debugging production issues hard. Should add structured logging (console.error/warn at minimum) for: database connection errors, event append failures, projection update failures, conflict detection, reservation operations. Consider: log levels (info/warn/error), context fields (projectKey, agentName, eventType).","status":"open","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:25:07.066447-08:00","updated_at":"2025-12-13T09:25:07.066447-08:00"}
1064
+ {"id":"opencode-swarm-plugin-ihjia","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T14:48:41.498669-08:00","updated_at":"2025-12-13T14:48:45.245218-08:00","closed_at":"2025-12-13T14:48:45.245218-08:00"}
1035
1065
  {"id":"opencode-swarm-plugin-ijyv","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:56:56.579396-08:00","updated_at":"2025-12-08T08:56:58.480064-08:00","closed_at":"2025-12-08T08:56:58.480064-08:00"}
1036
1066
  {"id":"opencode-swarm-plugin-ijyv.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:56.641855-08:00","updated_at":"2025-12-08T08:56:58.530793-08:00","closed_at":"2025-12-08T08:56:58.530793-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ijyv.2","depends_on_id":"opencode-swarm-plugin-ijyv","type":"parent-child","created_at":"2025-12-08T08:56:56.642441-08:00","created_by":"daemon"}]}
1037
1067
  {"id":"opencode-swarm-plugin-ijzjd","title":"Update README to document skills feature","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T21:46:13.821586-08:00","updated_at":"2025-12-12T21:49:38.634771-08:00","closed_at":"2025-12-12T21:49:38.634771-08:00"}
@@ -1088,6 +1118,7 @@
1088
1118
  {"id":"opencode-swarm-plugin-jujj.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:20.068843-08:00","updated_at":"2025-12-07T19:39:20.162197-08:00","closed_at":"2025-12-07T19:39:20.162197-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-jujj.2","depends_on_id":"opencode-swarm-plugin-jujj","type":"parent-child","created_at":"2025-12-07T19:39:20.06912-08:00","created_by":"daemon"}]}
1089
1119
  {"id":"opencode-swarm-plugin-jx36","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:05.621404-08:00","updated_at":"2025-12-07T19:57:08.075079-08:00","closed_at":"2025-12-07T19:57:08.075079-08:00"}
1090
1120
  {"id":"opencode-swarm-plugin-k0y3i","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:20:46.790051-08:00","updated_at":"2025-12-13T11:20:51.194381-08:00","closed_at":"2025-12-13T11:20:51.194381-08:00"}
1121
+ {"id":"opencode-swarm-plugin-k2liw","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-13T14:48:42.100461-08:00","updated_at":"2025-12-13T14:48:45.380162-08:00","closed_at":"2025-12-13T14:48:45.380162-08:00"}
1091
1122
  {"id":"opencode-swarm-plugin-k2pl","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T11:12:26.47779-08:00","updated_at":"2025-12-08T11:12:28.385061-08:00","closed_at":"2025-12-08T11:12:28.385061-08:00"}
1092
1123
  {"id":"opencode-swarm-plugin-k2wm","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:44.160426-08:00","updated_at":"2025-12-07T19:56:45.501563-08:00","closed_at":"2025-12-07T19:56:45.501563-08:00"}
1093
1124
  {"id":"opencode-swarm-plugin-k3ax9","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:18:43.164485-08:00","updated_at":"2025-12-13T11:18:46.573407-08:00","closed_at":"2025-12-13T11:18:46.573407-08:00"}
@@ -1276,6 +1307,11 @@
1276
1307
  {"id":"opencode-swarm-plugin-n7y8","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-07T19:56:42.357122-08:00","updated_at":"2025-12-07T19:56:44.652083-08:00","closed_at":"2025-12-07T19:56:44.652083-08:00"}
1277
1308
  {"id":"opencode-swarm-plugin-n80p","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:34.450922-08:00","updated_at":"2025-12-08T08:05:36.101564-08:00","closed_at":"2025-12-08T08:05:36.101564-08:00"}
1278
1309
  {"id":"opencode-swarm-plugin-nc95","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T07:46:48.649826-08:00","updated_at":"2025-12-08T07:46:51.486879-08:00","closed_at":"2025-12-08T07:46:51.486879-08:00"}
1310
+ {"id":"opencode-swarm-plugin-ncmif","title":"Integrate superpowers verification \u0026 quality patterns","description":"Add Verification Gate to swarm_complete, CSO validation to skills_create, 3-Strike Detection, Socratic strategy for swarm decomposition, and coordinator context preservation pattern. Based on analysis of obra/superpowers repo.","status":"open","priority":1,"issue_type":"epic","created_at":"2025-12-13T14:09:25.492623-08:00","updated_at":"2025-12-13T14:09:25.492623-08:00"}
1311
+ {"id":"opencode-swarm-plugin-ncmif.1","title":"Add CSO validation to skills_create","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T14:09:25.550394-08:00","updated_at":"2025-12-13T14:18:35.456019-08:00","closed_at":"2025-12-13T14:18:35.456019-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ncmif.1","depends_on_id":"opencode-swarm-plugin-ncmif","type":"parent-child","created_at":"2025-12-13T14:09:25.55131-08:00","created_by":"daemon"}]}
1312
+ {"id":"opencode-swarm-plugin-ncmif.2","title":"Add Verification Gate + Socratic strategy to swarm.ts","description":"COMPLETED: Added Verification Gate to swarm_complete.\n\nImplements the Gate Function (IDENTIFY → RUN → READ → VERIFY → CLAIM):\n1. UBS scan (existing)\n2. Typecheck verification (new) - runs tsc --noEmit\n3. Test verification (new) - runs tests for touched files\n\nAll steps must pass before bead can be closed. Adds skip_verification param for escape hatch.\n\nFiles modified:\n- src/swarm.ts: Added runTypecheckVerification(), runTestVerification(), runVerificationGate(), updated swarm_complete tool","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-13T14:09:25.600836-08:00","updated_at":"2025-12-13T14:49:56.515815-08:00","closed_at":"2025-12-13T14:49:56.515815-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ncmif.2","depends_on_id":"opencode-swarm-plugin-ncmif","type":"parent-child","created_at":"2025-12-13T14:09:25.601585-08:00","created_by":"daemon"}]}
1313
+ {"id":"opencode-swarm-plugin-ncmif.3","title":"Implement 3-Strike Detection","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T14:09:25.654605-08:00","updated_at":"2025-12-13T14:18:37.578898-08:00","closed_at":"2025-12-13T14:18:37.578898-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ncmif.3","depends_on_id":"opencode-swarm-plugin-ncmif","type":"parent-child","created_at":"2025-12-13T14:09:25.655388-08:00","created_by":"daemon"}]}
1314
+ {"id":"opencode-swarm-plugin-ncmif.4","title":"Update docs with context preservation pattern","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:09:25.712789-08:00","updated_at":"2025-12-13T14:18:39.306665-08:00","closed_at":"2025-12-13T14:18:39.306665-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ncmif.4","depends_on_id":"opencode-swarm-plugin-ncmif","type":"parent-child","created_at":"2025-12-13T14:09:25.714085-08:00","created_by":"daemon"}]}
1279
1315
  {"id":"opencode-swarm-plugin-ngss","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T11:10:52.903089-08:00","updated_at":"2025-12-08T11:10:55.556836-08:00","closed_at":"2025-12-08T11:10:55.556836-08:00"}
1280
1316
  {"id":"opencode-swarm-plugin-ngt6","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:11.378275-08:00","updated_at":"2025-12-08T08:25:13.007795-08:00","closed_at":"2025-12-08T08:25:13.007795-08:00"}
1281
1317
  {"id":"opencode-swarm-plugin-nii9","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:07.667183-08:00","updated_at":"2025-12-07T19:57:07.737681-08:00","closed_at":"2025-12-07T19:57:07.737681-08:00"}
@@ -1283,6 +1319,7 @@
1283
1319
  {"id":"opencode-swarm-plugin-nl35","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.450565-08:00","updated_at":"2025-12-07T19:56:44.715664-08:00","closed_at":"2025-12-07T19:56:44.715664-08:00"}
1284
1320
  {"id":"opencode-swarm-plugin-nl4d","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.534719-08:00","updated_at":"2025-12-08T07:49:12.03954-08:00","closed_at":"2025-12-08T07:49:12.03954-08:00"}
1285
1321
  {"id":"opencode-swarm-plugin-nncr","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:07.94483-08:00","updated_at":"2025-12-08T11:11:10.366924-08:00","closed_at":"2025-12-08T11:11:10.366924-08:00"}
1322
+ {"id":"opencode-swarm-plugin-nnu9l","title":"Pattern: Defense-in-Depth - 4 Layers of Validation","description":"## Defense-in-Depth Validation (from obra/superpowers)\n\n**Core Principle:** Single validation = \"We fixed the bug\". Multiple layers = \"We made the bug structurally impossible.\"\n\n### The 4 Layers\n**Layer 1: Entry Point Validation**\n- Reject obviously invalid input at API boundary\n- Check: not empty, exists, is correct type\n\n**Layer 2: Business Logic Validation**\n- Ensure data makes sense for this operation\n- Check: required fields, valid ranges, business rules\n\n**Layer 3: Environment Guards**\n- Prevent dangerous operations in specific contexts\n- Example: Refuse git init outside temp dir during tests\n\n**Layer 4: Debug Instrumentation**\n- Capture context for forensics\n- Log: directory, cwd, environment, stack trace\n\n### Why All 4 Layers\nAll four layers are necessary because:\n- Different code paths bypass entry validation\n- Mocks bypass business logic checks\n- Edge cases on different platforms need environment guards\n- Debug logging identifies structural misuse\n\n### Application Process\nWhen you find a bug:\n1. **Trace the data flow** - Where does bad value originate? Where used?\n2. **Map all checkpoints** - List every point data passes through\n3. **Add validation at each layer** - Entry, business, environment, debug\n4. **Test each layer** - Try to bypass layer 1, verify layer 2 catches it\n\n### Real Example\nBug: Empty `projectDir` caused `git init` in source code\n\nLayers added:\n- Layer 1: `Project.create()` validates not empty/exists/writable\n- Layer 2: `WorkspaceManager` validates projectDir not empty\n- Layer 3: `WorktreeManager` refuses git init outside tmpdir in tests\n- Layer 4: Stack trace logging before git init\n\nResult: 1847 tests passed, bug impossible to reproduce\n\n**Full analysis:** VERIFICATION_QUALITY_PATTERNS.md","status":"open","priority":1,"issue_type":"feature","created_at":"2025-12-13T14:01:12.487844-08:00","updated_at":"2025-12-13T14:01:12.487844-08:00"}
1286
1323
  {"id":"opencode-swarm-plugin-nnv5p","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:55.33813-08:00","updated_at":"2025-12-08T11:12:57.866074-08:00","closed_at":"2025-12-08T11:12:57.866074-08:00"}
1287
1324
  {"id":"opencode-swarm-plugin-npe6t","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-13T11:18:43.352641-08:00","updated_at":"2025-12-13T11:18:46.618244-08:00","closed_at":"2025-12-13T11:18:46.618244-08:00"}
1288
1325
  {"id":"opencode-swarm-plugin-nq1t","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:10.023307-08:00","updated_at":"2025-12-08T07:49:12.276319-08:00","closed_at":"2025-12-08T07:49:12.276319-08:00"}
@@ -1315,6 +1352,7 @@
1315
1352
  {"id":"opencode-swarm-plugin-o7ab8","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:57.123784-08:00","updated_at":"2025-12-08T11:12:58.860702-08:00","closed_at":"2025-12-08T11:12:58.860702-08:00"}
1316
1353
  {"id":"opencode-swarm-plugin-o7u8","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.889028-08:00","updated_at":"2025-12-08T08:22:19.315049-08:00","closed_at":"2025-12-08T08:22:19.315049-08:00"}
1317
1354
  {"id":"opencode-swarm-plugin-o8i7h","title":"Extract magic number 200 to constant in structured.ts","description":"src/structured.ts:329 - Magic number 200 for preview length. Extract to constant: `const RAW_INPUT_PREVIEW_LENGTH = 200;` and use it on lines 329, 380.","status":"open","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:49.829007-08:00","updated_at":"2025-12-10T09:06:49.829007-08:00"}
1355
+ {"id":"opencode-swarm-plugin-o8rvk","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:43.757273-08:00","updated_at":"2025-12-13T14:48:43.885987-08:00","closed_at":"2025-12-13T14:48:43.885987-08:00"}
1318
1356
  {"id":"opencode-swarm-plugin-o971j","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:18:41.364171-08:00","updated_at":"2025-12-13T11:18:45.726564-08:00","closed_at":"2025-12-13T11:18:45.726564-08:00"}
1319
1357
  {"id":"opencode-swarm-plugin-oa82","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:53.435018-08:00","updated_at":"2025-12-08T11:10:55.847654-08:00","closed_at":"2025-12-08T11:10:55.847654-08:00"}
1320
1358
  {"id":"opencode-swarm-plugin-oas8w","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:07:21.919098-08:00","updated_at":"2025-12-10T09:07:25.503827-08:00","closed_at":"2025-12-10T09:07:25.503827-08:00"}
@@ -1336,6 +1374,7 @@
1336
1374
  {"id":"opencode-swarm-plugin-okoq","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T11:10:24.650895-08:00","updated_at":"2025-12-08T11:10:27.261778-08:00","closed_at":"2025-12-08T11:10:27.261778-08:00"}
1337
1375
  {"id":"opencode-swarm-plugin-olit","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:08.692207-08:00","updated_at":"2025-12-08T11:11:11.041521-08:00","closed_at":"2025-12-08T11:11:11.041521-08:00"}
1338
1376
  {"id":"opencode-swarm-plugin-omr6","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:14:29.079665-08:00","updated_at":"2025-12-08T08:14:31.260584-08:00","closed_at":"2025-12-08T08:14:31.260584-08:00"}
1377
+ {"id":"opencode-swarm-plugin-on7a4","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:41.125177-08:00","updated_at":"2025-12-13T14:48:45.06171-08:00","closed_at":"2025-12-13T14:48:45.06171-08:00"}
1339
1378
  {"id":"opencode-swarm-plugin-ongog","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:18:42.483364-08:00","updated_at":"2025-12-13T11:18:46.348908-08:00","closed_at":"2025-12-13T11:18:46.348908-08:00"}
1340
1379
  {"id":"opencode-swarm-plugin-ons9","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.698832-08:00","updated_at":"2025-12-07T19:41:14.180153-08:00","closed_at":"2025-12-07T19:41:14.180153-08:00"}
1341
1380
  {"id":"opencode-swarm-plugin-oog0","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:07.262211-08:00","updated_at":"2025-12-08T11:11:10.036821-08:00","closed_at":"2025-12-08T11:11:10.036821-08:00"}
@@ -1427,6 +1466,12 @@
1427
1466
  {"id":"opencode-swarm-plugin-qfjv","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.26168-08:00","updated_at":"2025-12-08T08:05:35.508416-08:00","closed_at":"2025-12-08T08:05:35.508416-08:00"}
1428
1467
  {"id":"opencode-swarm-plugin-qgd2n","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:36.35338-08:00","updated_at":"2025-12-13T11:16:40.1931-08:00","closed_at":"2025-12-13T11:16:40.1931-08:00"}
1429
1468
  {"id":"opencode-swarm-plugin-qgt38","title":"Document SubtaskSpec estimated_complexity scale","description":"src/schemas/bead.ts:106 - `estimated_complexity: z.number().int().min(1).max(5)` - scale meaning not documented. Add JSDoc: \"/** Complexity estimate (1=trivial, 5=very complex) */\"","status":"open","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:10.789511-08:00","updated_at":"2025-12-10T09:06:10.789511-08:00"}
1469
+ {"id":"opencode-swarm-plugin-qhj39","title":"Codebase Quality Analysis and Improvement Ideas","description":"Parallel analysis of opencode-swarm-plugin codebase across multiple dimensions: architecture, testing, performance, error handling, and code organization","status":"open","priority":1,"issue_type":"epic","created_at":"2025-12-13T13:46:33.460464-08:00","updated_at":"2025-12-13T13:46:33.460464-08:00"}
1470
+ {"id":"opencode-swarm-plugin-qhj39.1","title":"Architecture and Module Design Analysis","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-13T13:46:33.527617-08:00","updated_at":"2025-12-13T13:46:33.527617-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.1","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.528576-08:00","created_by":"daemon"}]}
1471
+ {"id":"opencode-swarm-plugin-qhj39.2","title":"Testing Coverage and Quality Analysis","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-13T13:46:33.587114-08:00","updated_at":"2025-12-13T13:46:33.587114-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.2","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.587953-08:00","created_by":"daemon"}]}
1472
+ {"id":"opencode-swarm-plugin-qhj39.3","title":"Error Handling and Resilience Analysis","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-13T13:46:33.638663-08:00","updated_at":"2025-12-13T13:46:33.638663-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.3","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.639443-08:00","created_by":"daemon"}]}
1473
+ {"id":"opencode-swarm-plugin-qhj39.4","title":"Performance and Resource Management Analysis","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-13T13:46:33.692921-08:00","updated_at":"2025-12-13T13:46:33.692921-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.4","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.693758-08:00","created_by":"daemon"}]}
1474
+ {"id":"opencode-swarm-plugin-qhj39.5","title":"Synthesis: Prioritized Improvement Roadmap","description":"","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-13T13:46:33.748664-08:00","updated_at":"2025-12-13T13:46:33.748664-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.5","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.749458-08:00","created_by":"daemon"}]}
1430
1475
  {"id":"opencode-swarm-plugin-qhr0","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T08:22:16.521307-08:00","updated_at":"2025-12-08T08:22:19.112363-08:00","closed_at":"2025-12-08T08:22:19.112363-08:00"}
1431
1476
  {"id":"opencode-swarm-plugin-qkscs","title":"Production Hardening: Logging, Cleanup, and N+1 Fixes","description":"Fix 3 production readiness gaps in Swarm Mail to improve reliability and debuggability","status":"open","priority":1,"issue_type":"epic","created_at":"2025-12-13T13:27:21.122378-08:00","updated_at":"2025-12-13T13:27:21.122378-08:00"}
1432
1477
  {"id":"opencode-swarm-plugin-qkscs.1","title":"Fix N+1 queries in store.ts message and reservation handlers","description":"","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-13T13:27:21.179002-08:00","updated_at":"2025-12-13T13:27:21.179002-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qkscs.1","depends_on_id":"opencode-swarm-plugin-qkscs","type":"parent-child","created_at":"2025-12-13T13:27:21.180631-08:00","created_by":"daemon"}]}
@@ -1440,8 +1485,10 @@
1440
1485
  {"id":"opencode-swarm-plugin-qmq6","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:09.691145-08:00","updated_at":"2025-12-08T08:25:12.302074-08:00","closed_at":"2025-12-08T08:25:12.302074-08:00"}
1441
1486
  {"id":"opencode-swarm-plugin-qnng","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:38.46203-08:00","updated_at":"2025-12-08T11:11:40.909868-08:00","closed_at":"2025-12-08T11:11:40.909868-08:00"}
1442
1487
  {"id":"opencode-swarm-plugin-qpa0","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.832175-08:00","updated_at":"2025-12-08T07:53:46.263135-08:00","closed_at":"2025-12-08T07:53:46.263135-08:00"}
1488
+ {"id":"opencode-swarm-plugin-qtl0y","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-13T14:48:40.317918-08:00","updated_at":"2025-12-13T14:48:44.624735-08:00","closed_at":"2025-12-13T14:48:44.624735-08:00"}
1443
1489
  {"id":"opencode-swarm-plugin-qutq","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T08:14:28.460611-08:00","updated_at":"2025-12-08T08:14:30.937119-08:00","closed_at":"2025-12-08T08:14:30.937119-08:00"}
1444
1490
  {"id":"opencode-swarm-plugin-qwe","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:36:06.794509-08:00","updated_at":"2025-12-07T19:36:08.762615-08:00","closed_at":"2025-12-07T19:36:08.762615-08:00"}
1491
+ {"id":"opencode-swarm-plugin-qxbap","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.697194-08:00","updated_at":"2025-12-13T14:48:44.79472-08:00","closed_at":"2025-12-13T14:48:44.79472-08:00"}
1445
1492
  {"id":"opencode-swarm-plugin-qxtq","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:16.757904-08:00","updated_at":"2025-12-08T08:36:19.291277-08:00","closed_at":"2025-12-08T08:36:19.291277-08:00"}
1446
1493
  {"id":"opencode-swarm-plugin-qzg5","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:11.005599-08:00","updated_at":"2025-12-08T07:49:12.748038-08:00","closed_at":"2025-12-08T07:49:12.748038-08:00"}
1447
1494
  {"id":"opencode-swarm-plugin-r2jp","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:23.615478-08:00","updated_at":"2025-12-08T11:11:25.857526-08:00","closed_at":"2025-12-08T11:11:25.857526-08:00"}
@@ -1455,6 +1502,11 @@
1455
1502
  {"id":"opencode-swarm-plugin-r5glh","title":"Add constraint between status and blockers fields","description":"src/schemas/task.ts:107-111 - AgentProgressSchema has `status: \"blocked\"` and `blockers` array but no validation linking them. Add `.refine()` to require blockers when status is blocked.","status":"open","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:34.320563-08:00","updated_at":"2025-12-10T09:06:34.320563-08:00"}
1456
1503
  {"id":"opencode-swarm-plugin-r603","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:10.962513-08:00","updated_at":"2025-12-07T19:41:13.452949-08:00","closed_at":"2025-12-07T19:41:13.452949-08:00"}
1457
1504
  {"id":"opencode-swarm-plugin-r628","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T07:46:49.427816-08:00","updated_at":"2025-12-08T07:46:51.876555-08:00","closed_at":"2025-12-08T07:46:51.876555-08:00"}
1505
+ {"id":"opencode-swarm-plugin-r71uk","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T14:48:42.732193-08:00","updated_at":"2025-12-13T14:48:45.827165-08:00","closed_at":"2025-12-13T14:48:45.827165-08:00"}
1506
+ {"id":"opencode-swarm-plugin-r71uk.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:42.791398-08:00","updated_at":"2025-12-13T14:48:45.870135-08:00","closed_at":"2025-12-13T14:48:45.870135-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-r71uk.1","depends_on_id":"opencode-swarm-plugin-r71uk","type":"parent-child","created_at":"2025-12-13T14:48:42.792545-08:00","created_by":"daemon"}]}
1507
+ {"id":"opencode-swarm-plugin-r71uk.2","title":"Second","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:42.846067-08:00","updated_at":"2025-12-13T14:48:45.912542-08:00","closed_at":"2025-12-13T14:48:45.912542-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-r71uk.2","depends_on_id":"opencode-swarm-plugin-r71uk","type":"parent-child","created_at":"2025-12-13T14:48:42.847013-08:00","created_by":"daemon"}]}
1508
+ {"id":"opencode-swarm-plugin-r71uk.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:42.897009-08:00","updated_at":"2025-12-13T14:48:45.955839-08:00","closed_at":"2025-12-13T14:48:45.955839-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-r71uk.3","depends_on_id":"opencode-swarm-plugin-r71uk","type":"parent-child","created_at":"2025-12-13T14:48:42.897728-08:00","created_by":"daemon"}]}
1509
+ {"id":"opencode-swarm-plugin-r71uk.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:42.948272-08:00","updated_at":"2025-12-13T14:48:45.999643-08:00","closed_at":"2025-12-13T14:48:45.999643-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-r71uk.4","depends_on_id":"opencode-swarm-plugin-r71uk","type":"parent-child","created_at":"2025-12-13T14:48:42.949441-08:00","created_by":"daemon"}]}
1458
1510
  {"id":"opencode-swarm-plugin-r7vw","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.801572-08:00","updated_at":"2025-12-08T08:14:31.140331-08:00","closed_at":"2025-12-08T08:14:31.140331-08:00"}
1459
1511
  {"id":"opencode-swarm-plugin-r92p","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.769539-08:00","updated_at":"2025-12-07T19:56:44.896509-08:00","closed_at":"2025-12-07T19:56:44.896509-08:00"}
1460
1512
  {"id":"opencode-swarm-plugin-r98c","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:14:29.141593-08:00","updated_at":"2025-12-08T08:14:31.283727-08:00","closed_at":"2025-12-08T08:14:31.283727-08:00"}
@@ -1463,6 +1515,7 @@
1463
1515
  {"id":"opencode-swarm-plugin-rcin","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T07:49:10.311118-08:00","updated_at":"2025-12-08T07:49:12.327386-08:00","closed_at":"2025-12-08T07:49:12.327386-08:00"}
1464
1516
  {"id":"opencode-swarm-plugin-rclb","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:08.938269-08:00","updated_at":"2025-12-08T11:11:08.963749-08:00","closed_at":"2025-12-08T11:11:08.963749-08:00"}
1465
1517
  {"id":"opencode-swarm-plugin-rfb","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.514284-08:00","updated_at":"2025-12-07T19:39:20.550661-08:00","closed_at":"2025-12-07T19:39:20.550661-08:00"}
1518
+ {"id":"opencode-swarm-plugin-ri5xt","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:43.3653-08:00","updated_at":"2025-12-13T14:48:46.130243-08:00","closed_at":"2025-12-13T14:48:46.130243-08:00"}
1466
1519
  {"id":"opencode-swarm-plugin-rlgfi","title":"agent-mail.ts:1115-1120 - Unexpected response structure not validated","description":"agent-mail.ts:1115-1120 - agentmail_reserve checks for null result but doesn't validate the shape of result.granted. If API changes and returns non-array, error message is generic. Suggested fix: Validate result shape with Zod or detailed error message.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-10T09:06:09.12539-08:00","updated_at":"2025-12-13T08:52:57.705844-08:00","closed_at":"2025-12-13T08:52:57.705844-08:00"}
1467
1520
  {"id":"opencode-swarm-plugin-rlvoe","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:35.677471-08:00","updated_at":"2025-12-13T11:16:39.816254-08:00","closed_at":"2025-12-13T11:16:39.816254-08:00"}
1468
1521
  {"id":"opencode-swarm-plugin-rncxj","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-10T09:07:22.827715-08:00","updated_at":"2025-12-10T09:07:25.968534-08:00","closed_at":"2025-12-10T09:07:25.968534-08:00"}
@@ -1477,6 +1530,7 @@
1477
1530
  {"id":"opencode-swarm-plugin-rrih.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.048952-08:00","updated_at":"2025-12-07T19:41:13.898152-08:00","closed_at":"2025-12-07T19:41:13.898152-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-rrih.2","depends_on_id":"opencode-swarm-plugin-rrih","type":"parent-child","created_at":"2025-12-07T19:41:12.049256-08:00","created_by":"daemon"}]}
1478
1531
  {"id":"opencode-swarm-plugin-rt4i","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:55.683264-08:00","updated_at":"2025-12-08T08:56:58.123097-08:00","closed_at":"2025-12-08T08:56:58.123097-08:00"}
1479
1532
  {"id":"opencode-swarm-plugin-rt6o","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.335801-08:00","updated_at":"2025-12-08T07:49:11.936688-08:00","closed_at":"2025-12-08T07:49:11.936688-08:00"}
1533
+ {"id":"opencode-swarm-plugin-rt6tz","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-13T14:48:41.409833-08:00","updated_at":"2025-12-13T14:48:45.19778-08:00","closed_at":"2025-12-13T14:48:45.19778-08:00"}
1480
1534
  {"id":"opencode-swarm-plugin-rwo6j","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:08:31.797026-08:00","updated_at":"2025-12-10T09:08:35.30194-08:00","closed_at":"2025-12-10T09:08:35.30194-08:00"}
1481
1535
  {"id":"opencode-swarm-plugin-rwqj5","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.165821-08:00","updated_at":"2025-12-09T10:00:25.608129-08:00","closed_at":"2025-12-09T10:00:25.608129-08:00"}
1482
1536
  {"id":"opencode-swarm-plugin-ryzv","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:43.146246-08:00","updated_at":"2025-12-07T19:56:43.167763-08:00","closed_at":"2025-12-07T19:56:43.167763-08:00"}
@@ -1506,6 +1560,7 @@
1506
1560
  {"id":"opencode-swarm-plugin-shmi","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:32.700868-08:00","updated_at":"2025-12-08T09:09:32.892363-08:00","closed_at":"2025-12-08T09:09:32.892363-08:00"}
1507
1561
  {"id":"opencode-swarm-plugin-shmi.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.732667-08:00","updated_at":"2025-12-08T09:09:32.8181-08:00","closed_at":"2025-12-08T09:09:32.8181-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-shmi.1","depends_on_id":"opencode-swarm-plugin-shmi","type":"parent-child","created_at":"2025-12-08T09:09:32.733006-08:00","created_by":"daemon"}]}
1508
1562
  {"id":"opencode-swarm-plugin-shmi.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.766428-08:00","updated_at":"2025-12-08T09:09:32.867989-08:00","closed_at":"2025-12-08T09:09:32.867989-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-shmi.2","depends_on_id":"opencode-swarm-plugin-shmi","type":"parent-child","created_at":"2025-12-08T09:09:32.768721-08:00","created_by":"daemon"}]}
1563
+ {"id":"opencode-swarm-plugin-simya","title":"Pattern: Fresh Subagent Per Task - No Context Pollution","description":"## Fresh Subagent Per Task (from obra/superpowers)\n\n**Core Principle:** Each agent starts clean, reads requirements, executes, reports back. No context pollution.\n\n### Why Fresh Subagents\n- TDD comes naturally (no accumulated assumptions)\n- Parallel-safe (subagents don't interfere)\n- Catches issues early (code review after each task)\n- Cheaper than debugging cascading failures\n\n### Subagent-Driven Development Workflow\n1. Load plan, create TodoWrite\n2. For each task:\n - Dispatch implementation subagent\n - Dispatch code-reviewer subagent\n - Fix issues from review (dispatch fix subagent, NOT manual)\n - Mark complete\n3. Final review of entire implementation\n4. Use finishing-a-development-branch skill\n\n### Agent Prompt Best Practices\n**1. Focused** - One clear problem domain\n```\n❌ \"Fix all the tests\"\n✓ \"Fix agent-tool-abort.test.ts\"\n```\n\n**2. Self-contained** - All context needed\n```\n❌ \"Fix the race condition\"\n✓ \"Fix the 3 failing tests in src/agents/agent-tool-abort.test.ts:\n 1. 'should abort tool with partial output capture'...\"\n```\n\n**3. Specific about output**\n```\n❌ \"Fix it\"\n✓ \"Return: Summary of root cause and what you fixed\"\n```\n\n**4. Constraints** - Prevent scope creep\n```\n✓ \"Do NOT just increase timeouts - find the real issue\"\n✓ \"Don't refactor - minimal changes to make tests pass\"\n```\n\n### Red Flags\n- Skip code review between tasks\n- Proceed with unfixed Critical issues\n- Dispatch multiple implementation subagents in parallel (conflicts)\n- Fix subagent failures manually (context pollution)\n\n**Full analysis:** docs/analysis/subagent-coordination-patterns.md","status":"open","priority":0,"issue_type":"feature","created_at":"2025-12-13T14:00:40.843556-08:00","updated_at":"2025-12-13T14:00:40.843556-08:00"}
1509
1564
  {"id":"opencode-swarm-plugin-sjl8","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T11:11:39.199339-08:00","updated_at":"2025-12-08T11:11:41.183854-08:00","closed_at":"2025-12-08T11:11:41.183854-08:00"}
1510
1565
  {"id":"opencode-swarm-plugin-sln6c","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:43.027099-08:00","updated_at":"2025-12-08T11:12:43.100181-08:00","closed_at":"2025-12-08T11:12:43.100181-08:00"}
1511
1566
  {"id":"opencode-swarm-plugin-slxb","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:56:56.672463-08:00","updated_at":"2025-12-08T08:56:58.554736-08:00","closed_at":"2025-12-08T08:56:58.554736-08:00"}
@@ -1544,6 +1599,7 @@
1544
1599
  {"id":"opencode-swarm-plugin-t72i","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:48.881279-08:00","updated_at":"2025-12-08T07:46:51.599885-08:00","closed_at":"2025-12-08T07:46:51.599885-08:00"}
1545
1600
  {"id":"opencode-swarm-plugin-t8zc","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.205329-08:00","updated_at":"2025-12-08T08:05:35.482221-08:00","closed_at":"2025-12-08T08:05:35.482221-08:00"}
1546
1601
  {"id":"opencode-swarm-plugin-t95z","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:17.834038-08:00","updated_at":"2025-12-08T08:23:20.085206-08:00","closed_at":"2025-12-08T08:23:20.085206-08:00"}
1602
+ {"id":"opencode-swarm-plugin-taqxq","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:41.220835-08:00","updated_at":"2025-12-13T14:48:45.105205-08:00","closed_at":"2025-12-13T14:48:45.105205-08:00"}
1547
1603
  {"id":"opencode-swarm-plugin-tasn","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:39:29.488334-08:00","updated_at":"2025-12-07T19:39:31.424547-08:00","closed_at":"2025-12-07T19:39:31.424547-08:00"}
1548
1604
  {"id":"opencode-swarm-plugin-tazfz","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-10T09:07:23.434619-08:00","updated_at":"2025-12-10T09:07:26.116423-08:00","closed_at":"2025-12-10T09:07:26.116423-08:00"}
1549
1605
  {"id":"opencode-swarm-plugin-tazfz.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:07:23.474577-08:00","updated_at":"2025-12-10T09:07:26.157334-08:00","closed_at":"2025-12-10T09:07:26.157334-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-tazfz.1","depends_on_id":"opencode-swarm-plugin-tazfz","type":"parent-child","created_at":"2025-12-10T09:07:23.475682-08:00","created_by":"daemon"}]}
@@ -1571,6 +1627,9 @@
1571
1627
  {"id":"opencode-swarm-plugin-tnz9.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.920391-08:00","updated_at":"2025-12-08T11:11:25.008828-08:00","closed_at":"2025-12-08T11:11:25.008828-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-tnz9.1","depends_on_id":"opencode-swarm-plugin-tnz9","type":"parent-child","created_at":"2025-12-08T11:11:24.920745-08:00","created_by":"daemon"}]}
1572
1628
  {"id":"opencode-swarm-plugin-tnz9.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.956371-08:00","updated_at":"2025-12-08T11:11:25.059063-08:00","closed_at":"2025-12-08T11:11:25.059063-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-tnz9.2","depends_on_id":"opencode-swarm-plugin-tnz9","type":"parent-child","created_at":"2025-12-08T11:11:24.956743-08:00","created_by":"daemon"}]}
1573
1629
  {"id":"opencode-swarm-plugin-tpem","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.229302-08:00","updated_at":"2025-12-08T08:21:29.926869-08:00","closed_at":"2025-12-08T08:21:29.926869-08:00"}
1630
+ {"id":"opencode-swarm-plugin-tqbww","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T14:48:43.978217-08:00","updated_at":"2025-12-13T14:48:44.314847-08:00","closed_at":"2025-12-13T14:48:44.314847-08:00"}
1631
+ {"id":"opencode-swarm-plugin-tqbww.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:44.031769-08:00","updated_at":"2025-12-13T14:48:44.174383-08:00","closed_at":"2025-12-13T14:48:44.174383-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-tqbww.1","depends_on_id":"opencode-swarm-plugin-tqbww","type":"parent-child","created_at":"2025-12-13T14:48:44.032827-08:00","created_by":"daemon"}]}
1632
+ {"id":"opencode-swarm-plugin-tqbww.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:44.085639-08:00","updated_at":"2025-12-13T14:48:44.272811-08:00","closed_at":"2025-12-13T14:48:44.272811-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-tqbww.2","depends_on_id":"opencode-swarm-plugin-tqbww","type":"parent-child","created_at":"2025-12-13T14:48:44.086575-08:00","created_by":"daemon"}]}
1574
1633
  {"id":"opencode-swarm-plugin-tqh2","title":"Add client-side rate limiting to Agent Mail tools","description":"Implement per-agent rate limiting with Redis primary and SQLite fallback. Prevents abuse and runaway agents. Client-side enforcement in plugin MCP tools.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:42:14.798392-08:00","updated_at":"2025-12-08T08:53:01.185866-08:00","closed_at":"2025-12-08T08:53:01.185866-08:00"}
1575
1634
  {"id":"opencode-swarm-plugin-tqh2.1","title":"Create rate limiter module with Redis/SQLite backends","description":"Created src/rate-limiter.ts with:\n- RateLimiter interface (checkLimit, recordRequest, close)\n- RedisRateLimiter using sorted sets (ZADD/ZREMRANGEBYSCORE/ZCARD)\n- SqliteRateLimiter using bun:sqlite with sliding window COUNT queries\n- InMemoryRateLimiter for testing\n- createRateLimiter factory with Redis→SQLite fallback\n- Dual window enforcement (minute AND hour)\n- Default limits for all 8 endpoints\n- Env var overrides (OPENCODE_RATE_LIMIT_{ENDPOINT}_PER_{MIN,HOUR})","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:42:14.835835-08:00","updated_at":"2025-12-08T08:47:25.694259-08:00","closed_at":"2025-12-08T08:47:25.694259-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-tqh2.1","depends_on_id":"opencode-swarm-plugin-tqh2","type":"parent-child","created_at":"2025-12-08T08:42:14.836202-08:00","created_by":"daemon"}]}
1576
1635
  {"id":"opencode-swarm-plugin-tqh2.2","title":"Integrate rate limiting into agent-mail tools","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:42:14.870719-08:00","updated_at":"2025-12-08T08:51:56.178029-08:00","closed_at":"2025-12-08T08:51:56.178029-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-tqh2.2","depends_on_id":"opencode-swarm-plugin-tqh2","type":"parent-child","created_at":"2025-12-08T08:42:14.871065-08:00","created_by":"daemon"}]}
@@ -1581,8 +1640,10 @@
1581
1640
  {"id":"opencode-swarm-plugin-ts1b","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:18.500016-08:00","updated_at":"2025-12-08T08:22:20.009621-08:00","closed_at":"2025-12-08T08:22:20.009621-08:00"}
1582
1641
  {"id":"opencode-swarm-plugin-ts3","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.362915-08:00","updated_at":"2025-12-07T19:39:20.482638-08:00","closed_at":"2025-12-07T19:39:20.482638-08:00"}
1583
1642
  {"id":"opencode-swarm-plugin-tuf","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:34:52.899792-08:00","updated_at":"2025-12-07T19:34:54.852639-08:00","closed_at":"2025-12-07T19:34:54.852639-08:00"}
1643
+ {"id":"opencode-swarm-plugin-twoql","title":"Bug: Remove all agentmail references - replace with swarmmail","description":"## Problem\nCurrent version still has agentmail_init references that cause errors. We removed agentmail from exports in v0.14.0 but prompts/docs still reference it.\n\n## Task\nFind and replace ALL agentmail references with swarmmail equivalents:\n- agentmail_init → swarmmail_init\n- agentmail_send → swarmmail_send\n- agentmail_inbox → swarmmail_inbox\n- agentmail_read_message → swarmmail_read_message\n- agentmail_reserve → swarmmail_reserve\n- agentmail_release → swarmmail_release\n\n## Files to Check\n- src/swarm.ts (SUBTASK_PROMPT_V2 and other prompts)\n- examples/commands/*.md\n- global-skills/**/*.md\n- Any other prompt templates\n\n## Verification\nAfter fix: grep -r \"agentmail\" should return 0 results (except maybe comments explaining the migration)","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-13T14:18:28.580449-08:00","updated_at":"2025-12-13T14:21:45.26748-08:00","closed_at":"2025-12-13T14:21:45.26748-08:00"}
1584
1644
  {"id":"opencode-swarm-plugin-txep","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:11:40.264723-08:00","updated_at":"2025-12-08T08:11:42.28708-08:00","closed_at":"2025-12-08T08:11:42.28708-08:00"}
1585
1645
  {"id":"opencode-swarm-plugin-txep.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.329538-08:00","updated_at":"2025-12-08T08:11:42.337696-08:00","closed_at":"2025-12-08T08:11:42.337696-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-txep.2","depends_on_id":"opencode-swarm-plugin-txep","type":"parent-child","created_at":"2025-12-08T08:11:40.329857-08:00","created_by":"daemon"}]}
1646
+ {"id":"opencode-swarm-plugin-txl2d","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.974496-08:00","updated_at":"2025-12-13T14:48:45.019026-08:00","closed_at":"2025-12-13T14:48:45.019026-08:00"}
1586
1647
  {"id":"opencode-swarm-plugin-txxp","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:12:26.554811-08:00","updated_at":"2025-12-08T11:12:28.410721-08:00","closed_at":"2025-12-08T11:12:28.410721-08:00"}
1587
1648
  {"id":"opencode-swarm-plugin-txxp.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:26.586413-08:00","updated_at":"2025-12-08T11:12:28.436174-08:00","closed_at":"2025-12-08T11:12:28.436174-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-txxp.1","depends_on_id":"opencode-swarm-plugin-txxp","type":"parent-child","created_at":"2025-12-08T11:12:26.586705-08:00","created_by":"daemon"}]}
1588
1649
  {"id":"opencode-swarm-plugin-txxp.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T11:12:26.618796-08:00","updated_at":"2025-12-08T11:12:28.462657-08:00","closed_at":"2025-12-08T11:12:28.462657-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-txxp.2","depends_on_id":"opencode-swarm-plugin-txxp","type":"parent-child","created_at":"2025-12-08T11:12:26.619105-08:00","created_by":"daemon"}]}
@@ -1677,6 +1738,13 @@
1677
1738
  {"id":"opencode-swarm-plugin-v4wk","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.273976-08:00","updated_at":"2025-12-08T07:49:11.911446-08:00","closed_at":"2025-12-08T07:49:11.911446-08:00"}
1678
1739
  {"id":"opencode-swarm-plugin-v6v9","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.764976-08:00","updated_at":"2025-12-08T09:09:33.160752-08:00","closed_at":"2025-12-08T09:09:33.160752-08:00"}
1679
1740
  {"id":"opencode-swarm-plugin-v72","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.816102-08:00","updated_at":"2025-12-07T19:39:11.902421-08:00","closed_at":"2025-12-07T19:39:11.902421-08:00"}
1741
+ {"id":"opencode-swarm-plugin-v737h","title":"Superpowers Repo Analysis - Extract Best Ideas as Beads","description":"Deep analysis of obra/superpowers repo to extract the best patterns, workflows, and ideas. Focus on Socratic Planner (brainstorming + writing-plans) and create full-context beads documenting findings for potential adoption into opencode-swarm-plugin.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T13:52:18.993949-08:00","updated_at":"2025-12-13T14:01:19.850383-08:00","closed_at":"2025-12-13T14:01:19.850383-08:00"}
1742
+ {"id":"opencode-swarm-plugin-v737h.1","title":"Analyze Socratic Planner Pattern (brainstorming + writing-plans)","description":"Completed deep analysis of Socratic Planner pattern. Document created at docs/analysis-socratic-planner-pattern.md with:\n- 15 core principles extracted (brainstorming + writing-plans phases)\n- 12 anti-patterns identified with corrections\n- Complete workflow diagrams for both skills\n- Integration analysis with OpenCode Swarm\n- Recommendations for plugin adoption","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:52:19.054996-08:00","updated_at":"2025-12-13T13:59:32.042524-08:00","closed_at":"2025-12-13T13:59:32.042524-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v737h.1","depends_on_id":"opencode-swarm-plugin-v737h","type":"parent-child","created_at":"2025-12-13T13:52:19.056551-08:00","created_by":"daemon"}]}
1743
+ {"id":"opencode-swarm-plugin-v737h.2","title":"Analyze Verification \u0026 Quality Patterns","description":"Extracted verification and quality patterns from superpowers repo. Created VERIFICATION_QUALITY_PATTERNS.md with:\n- 5 Core Principles (evidence-first, root cause, systematic, defense-in-depth, architecture questioning)\n- 3 Iron Laws (verification, investigation, tracing)\n- 4 Decision Frameworks (Gate Function, 4-Phase Debugging, Defense Layers, Root Cause Tracing)\n- Red flags and anti-patterns\n- Common failures table\n- Real-world impact evidence\n- Key quotes worth preserving","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:52:19.108939-08:00","updated_at":"2025-12-13T13:59:32.589761-08:00","closed_at":"2025-12-13T13:59:32.589761-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v737h.2","depends_on_id":"opencode-swarm-plugin-v737h","type":"parent-child","created_at":"2025-12-13T13:52:19.110442-08:00","created_by":"daemon"}]}
1744
+ {"id":"opencode-swarm-plugin-v737h.3","title":"Analyze Subagent Coordination Patterns","description":"✓ Extracted subagent coordination patterns from obra/superpowers\n- Fresh subagent per task (prevents context pollution)\n- Mandatory code review between tasks (catch issues early)\n- Parallelize at 3+ independent failures (clear heuristic)\n- Focused agent prompts (self-contained, specific output, constraints)\n- Severity tiers: Critical (must fix), Important (should fix), Minor (note)\n- Fix subagent pattern (no manual coordinator fixes)\n- Same session vs parallel session strategies\n\nDocument: docs/analysis/subagent-coordination-patterns.md\n\nKey integrations for opencode-swarm-plugin:\n1. Add code review after swarm_complete\n2. Parallel dispatch at 3+ failures in debug-plus\n3. Severity-based UBS scan result triage\n4. Fix subagent toolkit addition","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:52:19.167761-08:00","updated_at":"2025-12-13T13:59:33.380442-08:00","closed_at":"2025-12-13T13:59:33.380442-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v737h.3","depends_on_id":"opencode-swarm-plugin-v737h","type":"parent-child","created_at":"2025-12-13T13:52:19.169319-08:00","created_by":"daemon"}]}
1745
+ {"id":"opencode-swarm-plugin-v737h.4","title":"Analyze Skill Architecture \u0026 Meta-Skills","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:52:19.231112-08:00","updated_at":"2025-12-13T13:59:34.261473-08:00","closed_at":"2025-12-13T13:59:34.261473-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v737h.4","depends_on_id":"opencode-swarm-plugin-v737h","type":"parent-child","created_at":"2025-12-13T13:52:19.231839-08:00","created_by":"daemon"}]}
1746
+ {"id":"opencode-swarm-plugin-v737h.5","title":"Analyze Workflow Integration \u0026 Branch Management","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:52:19.292894-08:00","updated_at":"2025-12-13T13:59:34.866091-08:00","closed_at":"2025-12-13T13:59:34.866091-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v737h.5","depends_on_id":"opencode-swarm-plugin-v737h","type":"parent-child","created_at":"2025-12-13T13:52:19.294337-08:00","created_by":"daemon"}]}
1747
+ {"id":"opencode-swarm-plugin-v737h.6","title":"Synthesize Findings into Full-Context Beads","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-13T13:52:19.354131-08:00","updated_at":"2025-12-13T14:01:18.471937-08:00","closed_at":"2025-12-13T14:01:18.471937-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v737h.6","depends_on_id":"opencode-swarm-plugin-v737h","type":"parent-child","created_at":"2025-12-13T13:52:19.355121-08:00","created_by":"daemon"}]}
1680
1748
  {"id":"opencode-swarm-plugin-v74fo","title":"learning.ts:254-259 - Potential division by zero in decay calculation","description":"learning.ts:254-259 - scoreImplicitFeedback calls calculateDecayedValue but doesn't validate halfLifeDays isn't zero. If config is malformed, division by zero occurs. Suggested fix: Validate config or add bounds check.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-10T09:06:42.722198-08:00","updated_at":"2025-12-10T11:56:10.091823-08:00","closed_at":"2025-12-10T11:56:10.091823-08:00"}
1681
1749
  {"id":"opencode-swarm-plugin-v8oa","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.951289-08:00","updated_at":"2025-12-08T07:46:51.033444-08:00","closed_at":"2025-12-08T07:46:51.033444-08:00"}
1682
1750
  {"id":"opencode-swarm-plugin-v8rf","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-07T19:39:28.865894-08:00","updated_at":"2025-12-07T19:39:31.084269-08:00","closed_at":"2025-12-07T19:39:31.084269-08:00"}
@@ -1737,6 +1805,10 @@
1737
1805
  {"id":"opencode-swarm-plugin-wkrf","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:05:34.81117-08:00","updated_at":"2025-12-08T08:05:35.007813-08:00","closed_at":"2025-12-08T08:05:35.007813-08:00"}
1738
1806
  {"id":"opencode-swarm-plugin-wkrf.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:34.842236-08:00","updated_at":"2025-12-08T08:05:34.929782-08:00","closed_at":"2025-12-08T08:05:34.929782-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-wkrf.1","depends_on_id":"opencode-swarm-plugin-wkrf","type":"parent-child","created_at":"2025-12-08T08:05:34.842554-08:00","created_by":"daemon"}]}
1739
1807
  {"id":"opencode-swarm-plugin-wkrf.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:34.876126-08:00","updated_at":"2025-12-08T08:05:34.982666-08:00","closed_at":"2025-12-08T08:05:34.982666-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-wkrf.2","depends_on_id":"opencode-swarm-plugin-wkrf","type":"parent-child","created_at":"2025-12-08T08:05:34.87771-08:00","created_by":"daemon"}]}
1808
+ {"id":"opencode-swarm-plugin-wmls8","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T14:48:42.23641-08:00","updated_at":"2025-12-13T14:48:45.423022-08:00","closed_at":"2025-12-13T14:48:45.423022-08:00"}
1809
+ {"id":"opencode-swarm-plugin-wmls8.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:42.290627-08:00","updated_at":"2025-12-13T14:48:45.468472-08:00","closed_at":"2025-12-13T14:48:45.468472-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-wmls8.1","depends_on_id":"opencode-swarm-plugin-wmls8","type":"parent-child","created_at":"2025-12-13T14:48:42.291429-08:00","created_by":"daemon"}]}
1810
+ {"id":"opencode-swarm-plugin-wmls8.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-13T14:48:42.346379-08:00","updated_at":"2025-12-13T14:48:45.511917-08:00","closed_at":"2025-12-13T14:48:45.511917-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-wmls8.2","depends_on_id":"opencode-swarm-plugin-wmls8","type":"parent-child","created_at":"2025-12-13T14:48:42.347327-08:00","created_by":"daemon"}]}
1811
+ {"id":"opencode-swarm-plugin-wmls8.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T14:48:42.398314-08:00","updated_at":"2025-12-13T14:48:45.555098-08:00","closed_at":"2025-12-13T14:48:45.555098-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-wmls8.3","depends_on_id":"opencode-swarm-plugin-wmls8","type":"parent-child","created_at":"2025-12-13T14:48:42.399165-08:00","created_by":"daemon"}]}
1740
1812
  {"id":"opencode-swarm-plugin-wnr8a","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:41.693136-08:00","updated_at":"2025-12-08T11:12:41.722129-08:00","closed_at":"2025-12-08T11:12:41.722129-08:00"}
1741
1813
  {"id":"opencode-swarm-plugin-wprhh","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:35.8251-08:00","updated_at":"2025-12-13T11:16:39.897886-08:00","closed_at":"2025-12-13T11:16:39.897886-08:00"}
1742
1814
  {"id":"opencode-swarm-plugin-wqux","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:49:10.399926-08:00","updated_at":"2025-12-08T07:49:12.353488-08:00","closed_at":"2025-12-08T07:49:12.353488-08:00"}
@@ -1797,6 +1869,7 @@
1797
1869
  {"id":"opencode-swarm-plugin-xvy2","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:56:56.367536-08:00","updated_at":"2025-12-08T08:56:58.354937-08:00","closed_at":"2025-12-08T08:56:58.354937-08:00"}
1798
1870
  {"id":"opencode-swarm-plugin-xw8p","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.883419-08:00","updated_at":"2025-12-07T19:56:44.943175-08:00","closed_at":"2025-12-07T19:56:44.943175-08:00"}
1799
1871
  {"id":"opencode-swarm-plugin-xwb7","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:39.379835-08:00","updated_at":"2025-12-08T08:11:41.909086-08:00","closed_at":"2025-12-08T08:11:41.909086-08:00"}
1872
+ {"id":"opencode-swarm-plugin-xwlda","title":"Pattern: Socratic Planner - Transform Ideas into Executable Plans","description":"## Socratic Planner Pattern (from obra/superpowers)\n\nTwo-phase workflow that transforms rough ideas into executable implementation plans:\n\n### Phase 1: Brainstorming (Socratic Refinement)\n- **One question at a time** - Never overwhelm with multiple questions\n- **Multiple choice preferred** - Easier to answer than open-ended\n- **Project context first** - Check files/docs/commits before asking\n- **2-3 alternatives with trade-offs** - Lead with recommendation + reasoning\n- **Incremental validation (200-300 words)** - Present design in digestible sections\n- **YAGNI ruthlessly** - Remove unnecessary features\n\n### Phase 2: Writing Plans (Zero-Context Execution)\n- **Bite-sized tasks (2-5 min each)** - Each step is ONE action\n- **Zero context assumption** - Write for \"junior engineer with poor taste, no judgment, no project context\"\n- **Exact file paths always** - `src/auth/login.py:45-67` not \"update the auth flow\"\n- **Complete code in plans** - Don't say \"add validation\" - show the exact code\n- **DRY, YAGNI, TDD** - Enforce in every task\n- **Frequent commits** - Every task ends with a commit\n\n### Integration\nBrainstorming → Design Doc → Git Worktree → Writing Plans → Execution (subagent-driven OR batch)\n\n### Key Insight\nThe two-phase split serves context preservation: brainstorming keeps context lean (200-300 word checkpoints), plans are context-free and reusable across agents/sessions.\n\n**Full analysis:** docs/analysis-socratic-planner-pattern.md","status":"open","priority":0,"issue_type":"feature","created_at":"2025-12-13T14:00:08.183656-08:00","updated_at":"2025-12-13T14:00:08.183656-08:00"}
1800
1873
  {"id":"opencode-swarm-plugin-xwz1","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:26.372159-08:00","updated_at":"2025-12-08T11:12:28.359777-08:00","closed_at":"2025-12-08T11:12:28.359777-08:00"}
1801
1874
  {"id":"opencode-swarm-plugin-xx0","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.643828-08:00","updated_at":"2025-12-07T19:36:08.701265-08:00","closed_at":"2025-12-07T19:36:08.701265-08:00"}
1802
1875
  {"id":"opencode-swarm-plugin-y0gg","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:07.967823-08:00","updated_at":"2025-12-08T11:11:10.647724-08:00","closed_at":"2025-12-08T11:11:10.647724-08:00"}