bd sync: 2026-01-10 20:41:13

This commit is contained in:
dan 2026-01-10 20:41:13 -08:00
parent 09b76605c2
commit 2f0aad5a25
2 changed files with 5 additions and 5 deletions

View file

@ -37,7 +37,7 @@
{"id":"skills-4u0","title":"Skills + Molecules Integration","description":"Integrate skills system with beads molecules.\n\nKey concepts from consensus brainstorm:\n1. Skills = procedural knowledge (HOW), Molecules = work tracking (WHAT)\n2. Link via skill: field in molecule nodes\n3. Wisps as execution traces for debugging/replay\n4. Elevation pipeline: successful molecule → auto-generate skill draft\n5. Skills as transition middleware (on_enter/on_exit hooks)\n\nImplementation phases:\n- Phase 1: Document findings (ADR)\n- Phase 2: Wisp execution trace format\n- Phase 3: Elevation pipeline prototype\n- Phase 4: Test on real skill (worklog)\n\nMigrated from dotfiles-jjb.","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-23T19:20:19.818455543-05:00","updated_at":"2025-12-29T13:55:35.782406912-05:00","closed_at":"2025-12-29T13:55:35.782406912-05:00","close_reason":"Parked with ADR-001: skills-molecules integration deferred. Current simpler approach (skills as standalone) works well. Revisit when complex orchestration needed.","dependencies":[{"issue_id":"skills-4u0","depends_on_id":"skills-rex","type":"blocks","created_at":"2025-12-23T19:22:10.725578029-05:00","created_by":"dan"},{"issue_id":"skills-4u0","depends_on_id":"skills-vpy","type":"blocks","created_at":"2025-12-23T19:23:18.166650023-05:00","created_by":"dan"},{"issue_id":"skills-4u0","depends_on_id":"skills-u3d","type":"blocks","created_at":"2025-12-23T19:23:28.59360697-05:00","created_by":"dan"}]}
{"id":"skills-4yn","title":"Decide on screenshot-latest skill deployment","description":"DEPLOYED.md shows screenshot-latest as 'Not yet deployed - Pending decision'. Low risk skill that finds existing files. Need to decide whether to deploy or archive.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-30T11:58:33.099790809-08:00","updated_at":"2025-12-28T20:55:18.515543619-05:00","closed_at":"2025-12-28T20:55:18.515543619-05:00","close_reason":"Decided to deploy - low risk, useful for avoiding path typing. Added to dotfiles claude.nix."}
{"id":"skills-53k","title":"Design graph-based doc discovery","description":"How does doc-review find and traverse documentation?\n\nApproach: Start from README.md or AGENTS.md, graph out from there.\n\nDesign questions:\n- Parse markdown links to find related docs?\n- Follow only relative links or also section references?\n- How to handle circular references?\n- Depth limit or exhaustive traversal?\n- What about orphan docs not linked from root?\n- How to represent the graph for chunking decisions?\n\nConsiderations:\n- Large repos may have hundreds of markdown files\n- Not all .md files are \"documentation\" (changelogs, templates, etc.)\n- Some docs are generated and shouldn't be patched\n\nDeliverable: Algorithm/pseudocode for doc discovery + chunking strategy.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-04T14:02:13.316843518-08:00","updated_at":"2025-12-04T16:43:58.277061015-08:00","closed_at":"2025-12-04T16:43:58.277061015-08:00"}
{"id":"skills-5ax","title":"Remove unused imports in db.nim","description":"[DEAD] LOW db.nim:9 - strformat and strutils imported but unused. Compiler warns about this. Remove unused imports.","status":"open","priority":4,"issue_type":"task","created_at":"2026-01-10T18:52:39.57837921-08:00","created_by":"dan","updated_at":"2026-01-10T18:52:39.57837921-08:00"}
{"id":"skills-5ax","title":"Remove unused imports in db.nim","description":"[DEAD] LOW db.nim:9 - strformat and strutils imported but unused. Compiler warns about this. Remove unused imports.","status":"closed","priority":4,"issue_type":"task","created_at":"2026-01-10T18:52:39.57837921-08:00","created_by":"dan","updated_at":"2026-01-10T20:41:09.693199485-08:00","closed_at":"2026-01-10T20:41:09.693199485-08:00","close_reason":"Dead code cleanup complete"}
{"id":"skills-5hb","title":"spec-review: Add Prerequisites section documenting dependencies","description":"SKILL.md and process docs assume orch is installed, prompt files exist, models are available, but none of this is documented.\n\nAdd:\n- orch install instructions/link\n- Required env vars and model availability\n- Prompt file locations\n- Expected repo structure (specs/ convention)\n- Troubleshooting section for common failures","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-15T00:23:23.030537501-08:00","updated_at":"2025-12-15T01:12:36.457092612-08:00","closed_at":"2025-12-15T01:12:36.457092612-08:00"}
{"id":"skills-5ji","title":"Design: Ephemeral namespaced environments","description":"Solve shared state pollution footgun. Each worker branch gets: namespaced DB (schema prefix or separate DB), isolated Redis namespace, separate queues, namespaced feature flags. Agents never touch shared prod-like state. Idempotent migrations and fixture loaders. From HN practitioner feedback on database isolation.","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T15:41:00.720141358-08:00","created_by":"dan","updated_at":"2026-01-10T15:41:00.720141358-08:00","dependencies":[{"issue_id":"skills-5ji","depends_on_id":"skills-s6y","type":"blocks","created_at":"2026-01-10T15:41:00.721467429-08:00","created_by":"dan"}]}
{"id":"skills-5kv","title":"Document beads vs tissue split during emes testing","description":"During emes testing on ops-jrz1:\n- Local dev: beads (skills repo, dotfiles, etc.)\n- ops-jrz1: tissue (emes ecosystem testing)\n\nNeed to document:\n- Which tracker for which repos\n- How to context-switch mentally\n- Whether to bridge or keep separate\n- Exit criteria: when do we converge?","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-09T16:03:45.493255636-08:00","created_by":"dan","updated_at":"2026-01-09T19:59:37.885799343-08:00","closed_at":"2026-01-09T19:59:37.885799343-08:00","close_reason":"Superseded by abstract layer approach - memory layer abstracts beads/tissue"}
@ -121,7 +121,7 @@
{"id":"skills-ebl","title":"Benchmark vision model UI understanding","description":"## Goal\nMeasure how well vision models can answer UI questions from screenshots.\n\n## Test cases\n1. **Element location**: \"Where is the Save button?\" → coordinates\n2. **Element identification**: \"What buttons are visible?\" → list\n3. **State detection**: \"Is the checkbox checked?\" → boolean\n4. **Text extraction**: \"What does the error message say?\" → text\n5. **Layout understanding**: \"What's in the sidebar?\" → structure\n\n## Metrics\n- Accuracy: Does the answer match ground truth?\n- Precision: How close are coordinates to actual element centers?\n- Latency: Time from query to response\n- Cost: Tokens consumed per query\n\n## Prompt engineering questions\n- Does adding a grid overlay help coordinate precision?\n- What prompt format gives most actionable coordinates?\n- Can we get bounding boxes vs point coordinates?\n\n## Comparison baseline\n- Manual annotation of test screenshots\n- AT-SPI data (once enabled) as ground truth\n\n## Depends on\n- Test screenshots from real apps\n- Ground truth annotations","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-17T14:13:10.038933798-08:00","updated_at":"2025-12-29T15:26:19.822655148-05:00","closed_at":"2025-12-29T15:26:19.822655148-05:00","close_reason":"Benchmark complete. Vision models excellent for semantic understanding, approximate for coordinates. Recommend hybrid AT-SPI + vision. See docs/research/vision-ui-benchmark-2025-12-29.md"}
{"id":"skills-f2p","title":"Skills + Molecules Integration","description":"Integrate skills with beads molecules system.\n\nDesign work tracked in dotfiles (dotfiles-jjb).\n\nComponents:\n- Checklist support (lightweight skills)\n- Audit integration (bd audit for skill execution)\n- Skill frontmatter for triggers/tracking\n- Proto packaging alongside skills\n\nSee: ~/proj/dotfiles ADR work","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-23T17:58:55.999438985-05:00","updated_at":"2025-12-23T19:22:38.577280129-05:00","closed_at":"2025-12-23T19:22:38.577280129-05:00","close_reason":"Superseded by skills-4u0 (migrated from dotfiles)","dependencies":[{"issue_id":"skills-f2p","depends_on_id":"skills-vpy","type":"blocks","created_at":"2025-12-23T17:59:17.976956454-05:00","created_by":"daemon"},{"issue_id":"skills-f2p","depends_on_id":"skills-u3d","type":"blocks","created_at":"2025-12-23T17:59:18.015216054-05:00","created_by":"daemon"}]}
{"id":"skills-f8yd","title":"Extract column width constants for status table","description":"[EVOLVE] LOW worker.nim:84,104-108 - Column widths hardcoded (14,12,8,12,8). Extract to constants or compute dynamically.","status":"open","priority":4,"issue_type":"task","created_at":"2026-01-10T20:12:12.129638606-08:00","created_by":"dan","updated_at":"2026-01-10T20:12:12.129638606-08:00"}
{"id":"skills-fdu","title":"Verify usage of BusJsonlPath, BlobsDir, WorkersDir constants","description":"[DEAD] LOW - Constants defined in types.nim:64-66 but may be unused. Verify usage in db.nim/state.nim, delete if unused.","status":"open","priority":4,"issue_type":"task","created_at":"2026-01-10T18:50:54.020137275-08:00","created_by":"dan","updated_at":"2026-01-10T18:50:54.020137275-08:00"}
{"id":"skills-fdu","title":"Verify usage of BusJsonlPath, BlobsDir, WorkersDir constants","description":"[DEAD] LOW - Constants defined in types.nim:64-66 but may be unused. Verify usage in db.nim/state.nim, delete if unused.","status":"closed","priority":4,"issue_type":"task","created_at":"2026-01-10T18:50:54.020137275-08:00","created_by":"dan","updated_at":"2026-01-10T20:41:09.695978483-08:00","closed_at":"2026-01-10T20:41:09.695978483-08:00","close_reason":"Dead code cleanup complete"}
{"id":"skills-fo3","title":"Compare WORKFLOWS.md with upstream","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-03T20:15:54.283175561-08:00","updated_at":"2025-12-03T20:19:28.897037199-08:00","closed_at":"2025-12-03T20:19:28.897037199-08:00","dependencies":[{"issue_id":"skills-fo3","depends_on_id":"skills-ebh","type":"discovered-from","created_at":"2025-12-03T20:15:54.286009672-08:00","created_by":"daemon","metadata":"{}"}]}
{"id":"skills-fqu","title":"Research: Agent capability matrix","description":"Document what each agent can and cannot do for cross-agent design decisions.\n\nAgents to cover:\n- Claude Code (claude CLI)\n- Gemini (gemini CLI / AI Studio)\n- OpenCode\n- Codex (OpenAI)\n\nCapabilities to assess:\n- Hooks / lifecycle events\n- Subagent spawning\n- File system access (paths, restrictions)\n- CLI tool execution\n- State persistence\n- Context window / memory\n\nOutput: Matrix showing capability parity and gaps","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-09T17:14:20.541961958-08:00","created_by":"dan","updated_at":"2026-01-09T17:32:23.730556916-08:00","closed_at":"2026-01-09T17:32:23.730556916-08:00","close_reason":"Capability matrix complete: docs/research/agent-capability-matrix.md"}
{"id":"skills-fvc","title":"Code Review: {{target}}","description":"Multi-lens code review workflow for {{target}}.\n\n## Philosophy\nThe LLM stays in the loop at every step - this is agent-assisted review, not automated parsing. The agent applies judgment about what's worth filing, how to prioritize, and what context to include.\n\n## Variables\n- target: File or directory to review\n\n## Workflow\n1. Explore codebase to find candidates (if target is directory)\n2. Run lenses via orch consensus for multi-model perspective\n3. Analyze findings - LLM synthesizes across lenses and models\n4. File issues with judgment - group related, set priorities, add context\n5. Summarize for digest\n\n## Lenses Available\n- bloat: size, complexity, SRP violations\n- smells: readability, naming, control flow\n- dead-code: unused, unreachable, obsolete\n- redundancy: duplication, YAGNI, parallel systems","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-25T10:10:57.652098447-05:00","updated_at":"2025-12-26T23:22:41.408582818-05:00","closed_at":"2025-12-26T23:22:41.408582818-05:00","close_reason":"Replaced by /code-review skill","labels":["template"]}
@ -136,7 +136,7 @@
{"id":"skills-g2wa","title":"Architectural cleanup: error handling, validation, utilities","description":"# Architectural Cleanup Epic\n\nCode review of worker CLI scaffold revealed 44 issues that cluster into 5 systemic patterns.\nRather than fixing individually, address the underlying architecture.\n\n## Pattern Analysis\n\n| Pattern | Issues | % |\n|---------|--------|---|\n| Error handling gaps | 11 | 25% |\n| DRY / missing utilities | 12 | 27% |\n| Input validation missing | 4 | 9% |\n| Dead code | 5 | 11% |\n| Type safety | 3 | 7% |\n\n## Recommended Approach\n\n### 1. Create utils.nim module\nConsolidates 12 extraction issues:\n- branchName(taskId): string\n- worktreePath(taskId): string \n- msToUnix(ms: int64): int64\n- optField[T](row, idx): Option[T]\n- withTransaction template\n- validateTaskId(id): string\n\n### 2. Define error handling strategy\nTemplate for 11 error issues:\n- Wrap boundary operations (file I/O, git, DB) with context\n- Consistent exception types or Result pattern\n- Structured logging to stderr\n\n### 3. Fix P1 security issues\n- genOid(): Use std/sysrand or proper UUID\n- HeartbeatThread: Use ref type, not alloc0/dealloc\n\n### 4. Module reorganization (optional)\n- Move Message type to types.nim\n- Move query procs from state.nim to db.nim\n- All helpers to utils.nim\n\n## Success Criteria\n- No silent failures in error paths\n- taskId validated at CLI entry points\n- Common patterns extracted to utils.nim\n- P1 security bugs fixed\n- Compiler warnings resolved (unused imports)\n\n## Related Issues\nP1 bugs: skills-0wk, skills-xcl, skills-73yu, skills-bk7x\nError handling: skills-266, skills-8xv, skills-8vdo, skills-n6zf, skills-tdfm, skills-koes, skills-xgh0, skills-8bi, skills-2wjp, skills-3uv9\nExtraction: skills-3d9o, skills-dtk, skills-8fd, skills-dszn, skills-qiq0, skills-luzk, skills-5x2o, skills-r3k, skills-2xc, skills-f8yd, skills-y76g, skills-sisi\nValidation: skills-vuj2, skills-16zf\nDead code: skills-ghlb, skills-5ax, skills-kvdl, skills-ib9u, skills-fdu\nType safety: skills-audh, skills-0dxd","status":"open","priority":1,"issue_type":"epic","created_at":"2026-01-10T20:18:27.23875742-08:00","created_by":"dan","updated_at":"2026-01-10T20:18:27.23875742-08:00","dependencies":[{"issue_id":"skills-g2wa","depends_on_id":"skills-lzh2","type":"blocks","created_at":"2026-01-10T20:19:07.152899742-08:00","created_by":"dan"},{"issue_id":"skills-g2wa","depends_on_id":"skills-05ah","type":"blocks","created_at":"2026-01-10T20:19:07.191028704-08:00","created_by":"dan"},{"issue_id":"skills-g2wa","depends_on_id":"skills-69sz","type":"blocks","created_at":"2026-01-10T20:19:07.222958272-08:00","created_by":"dan"},{"issue_id":"skills-g2wa","depends_on_id":"skills-t9ub","type":"blocks","created_at":"2026-01-10T20:19:07.262832253-08:00","created_by":"dan"}]}
{"id":"skills-gas","title":"spec-review: File discovery is brittle, can pick wrong file silently","description":"The fallback `find ... | head -1` is non-deterministic and can select wrong spec/plan/tasks file without user noticing. Branch names with `/` also break path construction.\n\nFixes:\n- Fail fast if expected file missing\n- Print chosen file path before proceeding\n- Require explicit confirmation if falling back\n- Handle branch names with slashes","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-15T00:23:22.762045913-08:00","updated_at":"2025-12-15T00:46:16.231199231-08:00","closed_at":"2025-12-15T00:46:16.231199231-08:00"}
{"id":"skills-gga","title":"Configure Claude Code LSP integration","description":"Claude Code now has LSP (Language Server Protocol) integration that provides semantic code understanding.\n\n## Key Features\n- Go to Definition - Jump to symbol declarations\n- Find References - Locate all usages (safe refactoring) \n- Hover/Type Info - Get signatures, docstrings, types\n- Diagnostics - See compiler errors/warnings directly\n\n## Setup Required\n1. Enable via env var: ENABLE_LSP_TOOL=1\n2. Install language servers on PATH:\n - TypeScript: typescript-language-server\n - Python: pyright or python-lsp-server\n - Go: gopls\n - Rust: rust-analyzer\n - Nix: nil or nixd\n\n3. Optional: MCP adapter like cclsp for robust AI→LSP bridging\n\n## Tasks\n- [ ] Add language servers to Nix packages\n- [ ] Set ENABLE_LSP_TOOL=1 in shell environment\n- [ ] Test with representative projects\n- [ ] Consider creating an LSP skill documenting available servers\n\n## References\n- Discovered via orch consensus with sonar, flash-or, glm\n- Related to skills+molecules integration (semantic code understanding for traces)","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-24T02:16:40.510669749-05:00","updated_at":"2025-12-24T23:33:58.635002347-05:00","closed_at":"2025-12-24T23:33:58.635002347-05:00","close_reason":"LSP servers deployed (gopls, pyright, typescript-language-server, rust-analyzer, nil, elixir-ls); ENABLE_LSP_TOOL=1 in sessionVariables; requires new session to test"}
{"id":"skills-ghlb","title":"Remove unused 'by' parameter from approve() or implement reviewer tracking","description":"[DEAD] MED worker.nim:121 - 'by' parameter declared but never used. Remove parameter, or implement reviewer tracking in state transition.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T20:12:10.42538955-08:00","created_by":"dan","updated_at":"2026-01-10T20:12:10.42538955-08:00"}
{"id":"skills-ghlb","title":"Remove unused 'by' parameter from approve() or implement reviewer tracking","description":"[DEAD] MED worker.nim:121 - 'by' parameter declared but never used. Remove parameter, or implement reviewer tracking in state transition.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T20:12:10.42538955-08:00","created_by":"dan","updated_at":"2026-01-10T20:41:09.698150063-08:00","closed_at":"2026-01-10T20:41:09.698150063-08:00","close_reason":"Dead code cleanup complete"}
{"id":"skills-gq9","title":"Define structured skill reference schema","description":"Replace simple skill: string with structured object.\n\nCurrent (too weak):\n skill: worklog\n\nProposed:\n skill:\n id: worklog\n ref: \"git+file://...#worklog@abc123\"\n inputs:\n session: \"{{session}}\"\n expects:\n files: [\"docs/worklogs/{{session}}.org\"]\n\nFrom orch consensus: both GPT and Gemini flagged this as critical gap.\nNo mechanism to pass args from molecule to skill.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-23T19:49:30.529899123-05:00","updated_at":"2025-12-28T22:46:28.371352259-05:00","closed_at":"2025-12-28T22:46:28.371352259-05:00","close_reason":"Deferred: structured schema was for molecule→skill integration. Current approach (agent reads SKILL.md directly) works well. Skills as entrypoints are simpler than protos. Revisit if programmatic workflows become active.","dependencies":[{"issue_id":"skills-gq9","depends_on_id":"skills-oes","type":"blocks","created_at":"2025-12-23T19:50:10.337111856-05:00","created_by":"daemon"},{"issue_id":"skills-gq9","depends_on_id":"skills-8y6","type":"blocks","created_at":"2025-12-23T19:50:10.388301727-05:00","created_by":"daemon"}]}
{"id":"skills-gvj","title":"Orch-in-the-Middle: LSP proxy for multi-model refactors","description":"Write an LSP proxy (Go/Rust) that:\n- Intercepts rename/code-action requests from editor\n- Sends to Orch for multi-model proposals\n- Validates proposals against real headless LSP\n- Returns winning WorkspaceEdit to editor\n\nGet consensus refactoring inside VS Code/Neovim by configuring LSP server path in home-manager.","status":"closed","priority":4,"issue_type":"feature","created_at":"2025-12-24T02:29:56.623189042-05:00","updated_at":"2025-12-29T14:37:35.360129462-05:00","closed_at":"2025-12-29T14:37:35.360129462-05:00","close_reason":"Parked: waiting on gastown (Steve Yegge's orchestration layer for beads). Revisit when gastown lands."}
{"id":"skills-h9f","title":"spec-review: Balance negativity bias in prompts","description":"'Be critical' and 'devil's advocate' can bias toward over-flagging without acknowledging what's good.\n\nAdd:\n- 'List top 3 strongest parts of the document'\n- 'Call out where document is sufficiently clear/testable'\n- Categorize :against concerns as confirmed/plausible/rejected","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-15T00:23:26.418087998-08:00","updated_at":"2025-12-15T14:07:39.520818417-08:00","closed_at":"2025-12-15T14:07:39.520818417-08:00"}
@ -191,7 +191,7 @@
{"id":"skills-sh6","title":"Research: OpenHands iterative refinement pattern","description":"Document OpenHands SDK patterns for our architecture.\n\n## Iterative Refinement Loop\n1. Worker agent does work\n2. Critique agent evaluates (correctness, quality, completeness)\n3. If not good → worker tries again with feedback\n4. Repeat until standard met\n\n## Parallel Agent Orchestration\n- Git-based coordination (not direct communication)\n- Each agent works on own branch\n- PRs to intermediate 'rolling branch'\n- Human reviews and merges\n- Agents pull latest, handle conflicts\n\n## Key Quote\n'Don't expect 100% automation—tasks are 80-90% automatable.\nYou need a human who understands full context.'\n\n## Mapping to Our Architecture\n- Worker = their refactoring agent\n- Reviewer = their critique agent\n- review-gate = their quality threshold\n- Human orchestrator = their human on rolling branch\n\n## Sources\n- https://openhands.dev/blog/automating-massive-refactors-with-parallel-agents\n- https://arxiv.org/abs/2511.03690\n- https://docs.openhands.dev/sdk","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T12:24:02.368542878-08:00","created_by":"dan","updated_at":"2026-01-10T12:24:02.368542878-08:00","dependencies":[{"issue_id":"skills-sh6","depends_on_id":"skills-s6y","type":"blocks","created_at":"2026-01-10T12:24:07.013388857-08:00","created_by":"dan"}]}
{"id":"skills-sisi","title":"Extract MaxSummaryLen constant for description truncation","description":"[SMELL] LOW worker.nim:101 - Description truncated at magic number 30. Extract: const MaxSummaryLen = 30","status":"open","priority":4,"issue_type":"task","created_at":"2026-01-10T20:12:11.153123047-08:00","created_by":"dan","updated_at":"2026-01-10T20:12:11.153123047-08:00"}
{"id":"skills-sse","title":"Design: worker spawn/status primitives","description":"Design: worker spawn/status primitives\n\nImplementation: Nim (cligen, tiny_sqlite)\nDesign doc: docs/design/worker-cli-primitives.md (v3)\n\nCommands:\n- worker spawn \u003ctask-id\u003e - Create workspace\n- worker status [--watch] - Dashboard\n- worker start/done - Agent signals\n- worker approve/request-changes - Review\n- worker merge - Complete cycle\n- worker cancel - Abort\n\nSee: skills-q40 for language decision","design":"docs/design/worker-cli-primitives.md","notes":"Design complete. Consensus from 4 models (gemini, gpt, qwen, sonar): (1) spawn prepares workspace only, doesn't start agent, (2) Python CLI, (3) all commands idempotent, (4) Worker ID = Task ID, (5) SQLite as state truth. Commands: spawn/status/merge (human), start/done/heartbeat (agent). Local .worker-ctx.json for context discovery. Hybrid approach for heartbeats.","status":"open","priority":1,"issue_type":"task","created_at":"2026-01-10T12:14:33.115131833-08:00","created_by":"dan","updated_at":"2026-01-10T18:04:23.946574441-08:00","dependencies":[{"issue_id":"skills-sse","depends_on_id":"skills-s6y","type":"blocks","created_at":"2026-01-10T12:15:10.014285119-08:00","created_by":"dan"}]}
{"id":"skills-t9ub","title":"Clean up dead code and unused imports","description":"Quick cleanup pass:\n\n- skills-5ax: Remove unused strformat, strutils imports in db.nim\n- skills-kvdl: Remove unused globalChannel in heartbeat.nim\n- skills-ib9u: Remove unused times import in heartbeat.nim\n- skills-fdu: Verify BusJsonlPath, BlobsDir, WorkersDir usage, delete if unused\n- skills-ghlb: Remove unused 'by' parameter from approve()\n\nParent: skills-g2wa","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T20:18:50.017642793-08:00","created_by":"dan","updated_at":"2026-01-10T20:18:50.017642793-08:00"}
{"id":"skills-t9ub","title":"Clean up dead code and unused imports","description":"Quick cleanup pass:\n\n- skills-5ax: Remove unused strformat, strutils imports in db.nim\n- skills-kvdl: Remove unused globalChannel in heartbeat.nim\n- skills-ib9u: Remove unused times import in heartbeat.nim\n- skills-fdu: Verify BusJsonlPath, BlobsDir, WorkersDir usage, delete if unused\n- skills-ghlb: Remove unused 'by' parameter from approve()\n\nParent: skills-g2wa","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-10T20:18:50.017642793-08:00","created_by":"dan","updated_at":"2026-01-10T20:41:09.681717088-08:00","closed_at":"2026-01-10T20:41:09.681717088-08:00","close_reason":"Dead code cleanup complete"}
{"id":"skills-tdfm","title":"Add error handling to writeContext for file write failures","description":"[ERROR] MED context.nim:11 - writeFile can fail (permissions, disk full) with no handling. Wrap in try/except with context: 'Failed to write context to {path}: {error}'","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-01-10T20:10:03.523837508-08:00","created_by":"dan","updated_at":"2026-01-10T20:37:04.75187149-08:00","closed_at":"2026-01-10T20:37:04.75187149-08:00","close_reason":"Implemented consistent error handling strategy"}
{"id":"skills-thk","title":"Design: Hybrid hook + gate architecture","description":"Design enforcement that uses hooks where available, orchestrator gates elsewhere.\n\n## Hook-Capable Agents (Claude, Gemini)\n- Stop hook checks beads for review status\n- Mechanical enforcement - agent can't bypass\n\n## Non-Hook Agents (OpenCode, Codex) \n- Orchestrator pattern enforces gate\n- Orchestrator checks beads before declaring done\n- Worker can't bypass because doesn't control session\n\n## Shared Components\n- beads: persistent state (issues, review status)\n- jwz: transient state (session messages, async handoffs)\n- review-gate CLI: checks state, returns exit code\n\n## Deliverable\nArchitecture doc showing:\n1. Hook configuration for Claude/Gemini\n2. Orchestrator flow for OpenCode/Codex\n3. State schema in beads\n4. review-gate CLI design","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-09T19:01:24.270855877-08:00","created_by":"dan","updated_at":"2026-01-09T19:33:36.705975116-08:00","closed_at":"2026-01-09T19:33:36.705975116-08:00","close_reason":"Consolidated into skills-8sj"}
{"id":"skills-tta","title":"Design: Circuit breaker patterns","description":"Design circuit breakers to prevent agent infinite loops.\n\n## Patterns to Implement\n\n### Semantic Drift Detection\n- Embed last N agent thoughts\n- If \u003e95% similar, inject \"try different approach\"\n- Use cheap embedding model\n\n### Three-Strike Tool Rule \n- Track tool call signatures (tool + args + error)\n- 3 identical failures → force strategy shift\n- Implement in PostToolUse hook\n\n### Budget-Based Interrupts\n- Allocate token budget per sub-task\n- Pause if \u003e50% budget used with \u003c30% progress\n- Request plan refinement\n\n### Time-Based Breaker\n- Timeout per task type\n- Escalate to review if exceeded\n\n## Implementation Options\n- Hook-based (Claude/Gemini)\n- Wrapper-based (all agents)\n- Orchestrator-enforced (all agents)\n\n## Deliverable\n- Circuit breaker design doc\n- Prototype implementation for one pattern","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-09T19:01:44.536499408-08:00","created_by":"dan","updated_at":"2026-01-09T19:59:37.700476328-08:00","closed_at":"2026-01-09T19:59:37.700476328-08:00","close_reason":"Covered in architecture design doc (docs/design/cross-agent-enforcement-architecture.md)"}

View file

@ -1 +1 @@
skills-xgh0
skills-5ax