bd sync: 2026-01-10 20:32:36

This commit is contained in:
dan 2026-01-10 20:32:36 -08:00
parent 200c040d3a
commit 5550421ae9
2 changed files with 7 additions and 7 deletions

View file

@ -24,7 +24,7 @@
{"id":"skills-2xo","title":"Add README.md for web-search skill","description":"web-search skill has SKILL.md and scripts but no README.md. AGENTS.md says README.md is for humans, contains installation instructions, usage examples, prerequisites.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-30T11:58:14.26066025-08:00","updated_at":"2025-12-28T22:37:48.324822157-05:00","closed_at":"2025-12-28T22:37:48.324822157-05:00","close_reason":"Added README.md with prerequisites, usage examples, and cross-references","dependencies":[{"issue_id":"skills-2xo","depends_on_id":"skills-vb5","type":"blocks","created_at":"2025-11-30T12:01:30.240439018-08:00","created_by":"daemon","metadata":"{}"}]}
{"id":"skills-31y","title":"Design: Review funnel with arbiter agent","description":"Solve review bottleneck footgun (10 agents = 10 PRs to reconcile). Add arbiter/synthesis step: workers → arbiter agent (dedupes, resolves conflicts) → single synthesized PR → human review. Pre-review by lint/style agents so humans see substantive deltas only. From HN discussions on parallel agents.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T15:41:00.232426243-08:00","created_by":"dan","updated_at":"2026-01-10T15:41:00.232426243-08:00","dependencies":[{"issue_id":"skills-31y","depends_on_id":"skills-s6y","type":"blocks","created_at":"2026-01-10T15:41:00.233443613-08:00","created_by":"dan"}]}
{"id":"skills-39g","title":"RFC: .skills manifest pattern for per-repo skill deployment","description":"Document the .skills file pattern where projects declare skills in a manifest, .envrc reads it, and agents can query/edit it.","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-11-30T12:37:50.106992381-08:00","updated_at":"2025-11-30T12:43:04.155161727-08:00","closed_at":"2025-11-30T12:43:04.155161727-08:00"}
{"id":"skills-3d9o","title":"Extract branchName() and worktreePath() helpers in git.nim","description":"[REDUNDANCY] MED git.nim:36,59,89 - Branch pattern 'feat/{taskId}' repeated 3 times. Worktree path repeated at 37,53. Extract helpers: proc branchName(taskId): string and proc worktreePath(taskId): string.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T19:52:13.458091312-08:00","created_by":"dan","updated_at":"2026-01-10T19:52:13.458091312-08:00"}
{"id":"skills-3d9o","title":"Extract branchName() and worktreePath() helpers in git.nim","description":"[REDUNDANCY] MED git.nim:36,59,89 - Branch pattern 'feat/{taskId}' repeated 3 times. Worktree path repeated at 37,53. Extract helpers: proc branchName(taskId): string and proc worktreePath(taskId): string.","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-10T19:52:13.458091312-08:00","created_by":"dan","updated_at":"2026-01-10T20:32:28.357072712-08:00","closed_at":"2026-01-10T20:32:28.357072712-08:00","close_reason":"Created utils.nim with common helpers"}
{"id":"skills-3em","title":"Prototype elevation pipeline","description":"Build pipeline: successful molecule → skill draft\n1. On molecule close, option to 'elevate'\n2. Analyze squashed trace\n3. Extract generalizable pattern\n4. Generate SKILL.md draft\n5. Human approval gate\n\nStart simple: script that takes squashed molecule ID and outputs draft SKILL.md\n\nMigrated from dotfiles-2p2.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-23T19:21:08.208885336-05:00","updated_at":"2025-12-29T13:55:35.80560789-05:00","closed_at":"2025-12-29T13:55:35.80560789-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-3em","depends_on_id":"skills-jeb","type":"blocks","created_at":"2025-12-23T19:21:50.034640219-05:00","created_by":"dan"},{"issue_id":"skills-3em","depends_on_id":"skills-2k0","type":"blocks","created_at":"2025-12-23T19:50:10.516122892-05:00","created_by":"daemon"}]}
{"id":"skills-3gk","title":"Research: Cross-agent hook alternatives","description":"Claude Code has hooks (Stop, SessionStart, etc.) for mechanical enforcement. Other agents don't.\n\nResearch alternatives for cross-agent quality gates:\n\n1. **External wrapper** - Script that launches agent, monitors output, gates exit\n2. **Protocol-based** - Agent follows instructions in AGENTS.md, posts to state store\n3. **Orchestrator pattern** - Meta-agent spawns worker + reviewer, enforces gate\n4. **Hybrid** - Hooks where available, protocol elsewhere\n\nEvaluate:\n- Enforcement strength (mechanical vs cooperative)\n- Implementation complexity\n- Agent compatibility\n- Failure modes\n\nOutput: Comparison doc with recommendation","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-09T17:14:20.433319252-08:00","created_by":"dan","updated_at":"2026-01-09T19:33:36.683960774-08:00","closed_at":"2026-01-09T19:33:36.683960774-08:00","close_reason":"Consolidated into skills-8sj"}
{"id":"skills-3ja","title":"Design: Cross-agent quality gate architecture","description":"Design a quality gate pattern that works regardless of agent.\n\nRequirements:\n- Worker agent can be Claude, Gemini, OpenCode, etc.\n- Reviewer agent can be any capable model\n- Gate blocks completion until reviewer approves\n- Circuit breakers prevent infinite loops\n- Works in autonomous/unattended scenarios\n\nBuilding on alice/idle research (docs/research/idle-alice-quality-gate.md):\n- alice uses Claude hooks + jwz state\n- We need agent-agnostic equivalent\n\nConsiderations:\n- State management: jwz vs beads vs simple files\n- Enforcement: mechanical vs protocol-based\n- Reviewer selection: orch consensus vs single model\n- Activation: opt-in prefix vs context-based\n\nOutput: Architecture doc with component design","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-09T17:14:20.657906484-08:00","created_by":"dan","updated_at":"2026-01-09T19:33:36.694607649-08:00","closed_at":"2026-01-09T19:33:36.694607649-08:00","close_reason":"Consolidated into skills-8sj"}
@ -44,7 +44,7 @@
{"id":"skills-5tq","title":"LSP diagnostic harvest → auto-create beads","description":"Periodic/nightly headless LSP scan that:\n- Gathers diagnostics (unused vars, type errors, deprecations, lint warnings)\n- Groups by subsystem/module\n- Auto-creates beads with severity thresholds\n- Enables 'refactor quests' - parent bead with children per symbol\n\nRun via CI or cron, feed results back into beads automatically.","status":"open","priority":3,"issue_type":"feature","created_at":"2025-12-24T02:29:56.191762416-05:00","updated_at":"2025-12-24T02:29:56.191762416-05:00","dependencies":[{"issue_id":"skills-5tq","depends_on_id":"skills-gga","type":"blocks","created_at":"2025-12-24T02:30:06.471853411-05:00","created_by":"daemon"}]}
{"id":"skills-5v8","title":"Replace SKILL.md with upstream version","description":"Upstream has 644 lines vs our 122. Missing: self-test questions, notes quality checks, token checkpointing, database selection, field usage table, lifecycle workflow, common patterns, troubleshooting","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-03T20:15:53.025829293-08:00","updated_at":"2025-12-03T20:16:20.470185004-08:00","closed_at":"2025-12-03T20:16:20.470185004-08:00","dependencies":[{"issue_id":"skills-5v8","depends_on_id":"skills-ebh","type":"discovered-from","created_at":"2025-12-03T20:15:53.027601712-08:00","created_by":"daemon","metadata":"{}"}]}
{"id":"skills-5vg","title":"spec-review: Add context/assumptions step to prompts","description":"Reviews can become speculative without establishing context first.\n\nAdd to prompts:\n- List assumptions being made\n- Distinguish: missing from doc vs implied vs out of scope\n- Ask clarifying questions if critical context missing","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-15T00:23:25.681448596-08:00","updated_at":"2025-12-15T14:06:15.415750911-08:00","closed_at":"2025-12-15T14:06:15.415750911-08:00"}
{"id":"skills-5x2o","title":"Extract msToUnix helper for repeated div 1000","description":"[SMELL] LOW state.nim - 'div 1000' for ms to seconds conversion repeated 8 times. Add helper proc msToUnix(ms: int64): int64 in types.nim.","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T19:49:52.505245039-08:00","created_by":"dan","updated_at":"2026-01-10T19:49:52.505245039-08:00"}
{"id":"skills-5x2o","title":"Extract msToUnix helper for repeated div 1000","description":"[SMELL] LOW state.nim - 'div 1000' for ms to seconds conversion repeated 8 times. Add helper proc msToUnix(ms: int64): int64 in types.nim.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-10T19:49:52.505245039-08:00","created_by":"dan","updated_at":"2026-01-10T20:32:28.362386563-08:00","closed_at":"2026-01-10T20:32:28.362386563-08:00","close_reason":"Created utils.nim with common helpers"}
{"id":"skills-69sz","title":"Fix P1 security bugs (genOid, HeartbeatThread)","description":"Two critical security/safety issues:\n\n1. genOid() - skills-0wk\n - Currently uses rand(25) without randomize()\n - IDs are predictable/deterministic\n - Fix: Use std/sysrand for crypto-safe randomness, or call randomize() at startup\n\n2. HeartbeatThread - skills-bk7x \n - Uses manual alloc0/dealloc\n - Risk of memory leak if startup fails, use-after-free if caller holds reference\n - Fix: Use 'ref HeartbeatThread' with GC management\n\nParent: skills-g2wa","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-10T20:18:49.759721333-08:00","created_by":"dan","updated_at":"2026-01-10T20:24:36.613555221-08:00","closed_at":"2026-01-10T20:24:36.613555221-08:00","close_reason":"Both P1 security bugs fixed: genOid uses sysrand, HeartbeatThread uses ref type"}
{"id":"skills-6ae","title":"Create ui-query skill for AT-SPI integration","description":"Create a skill that provides programmatic UI tree access via AT-SPI.\n\n## Context\nAT-SPI is now enabled in dotfiles (services.gnome.at-spi2-core + QT_LINUX_ACCESSIBILITY_ALWAYS_ON).\nThis complements niri-window-capture (visual) with semantic UI data.\n\n## Capabilities\n- Read text from GTK/Qt widgets directly (no OCR)\n- Find UI elements by role (button, text-field, menu)\n- Query element states (focused, enabled, checked)\n- Get element positions for potential input simulation\n- Navigate parent/child relationships\n\n## Suggested structure\nskills/ui-query/\n├── SKILL.md\n├── scripts/\n│ ├── list-windows.py # Windows with AT-SPI info\n│ ├── get-text.py # Extract text from window/element\n│ ├── find-element.py # Find by role/name\n│ └── query-state.py # Element states\n└── README.md\n\n## Notes\n- Start simple: list windows, get text\n- pyatspi available via python3Packages.pyatspi\n- Use accerciser (now installed) to explore the tree","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-29T15:37:55.592793763-05:00","created_by":"dan","updated_at":"2025-12-29T15:37:55.592793763-05:00"}
{"id":"skills-6e3","title":"Searchable Claude Code conversation history","description":"## Context\nClaude Code persists full conversations in `~/.claude/projects/\u003cproject\u003e/\u003cuuid\u003e.jsonl`. This is complete but not searchable - can't easily find \"that session where we solved X\".\n\n## Goal\nMake conversation history searchable without requiring manual worklogs.\n\n## Approach\n\n### Index structure\n```\n~/.claude/projects/\u003cproject\u003e/\n \u003cuuid\u003e.jsonl # raw conversation (existing)\n index.jsonl # session metadata + summaries (new)\n```\n\n### Index entry format\n```json\n{\n \"uuid\": \"f9a4c161-...\",\n \"date\": \"2025-12-17\",\n \"project\": \"/home/dan/proj/skills\",\n \"summary\": \"Explored Wayland desktop automation, AT-SPI investigation, vision model benchmark\",\n \"keywords\": [\"wayland\", \"niri\", \"at-spi\", \"automation\", \"seeing-problem\"],\n \"commits\": [\"906f2bc\", \"0b97155\"],\n \"duration_minutes\": 90,\n \"message_count\": 409\n}\n```\n\n### Features needed\n1. **Index builder** - Parse JSONL, extract/generate summary + keywords\n2. **Search CLI** - `claude-search \"AT-SPI wayland\"` → matching sessions\n3. **Auto-index hook** - Update index on session end or compaction\n\n## Questions\n- Generate summaries via AI or extract heuristically?\n- Index per-project or global?\n- How to handle very long sessions (multiple topics)?\n\n## Value\n- Find past solutions without remembering dates\n- Model reflection: include relevant past sessions in context\n- Replace manual worklogs with auto-generated metadata","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-17T15:56:50.913766392-08:00","updated_at":"2025-12-29T18:35:56.530154004-05:00","closed_at":"2025-12-29T18:35:56.530154004-05:00","close_reason":"Prototype complete: bin/claude-search indexes 122 sessions, searches by keyword. Future: auto-index hook, full-text search, keyword extraction."}
@ -52,7 +52,7 @@
{"id":"skills-6gw","title":"Add artifact provenance to traces","description":"Current: files_created lists paths only.\nProblem: Can't detect regressions or validate outputs.\n\nAdd:\n- Content hash (sha256)\n- File size\n- For modifications: git_diff_summary (files changed, line counts)\n\nExample:\n outputs:\n artifacts:\n - path: docs/worklogs/...\n sha256: abc123...\n size: 1234\n action: created|modified\n\nEnables: diff traces, regression testing, validation.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-23T19:49:48.654952533-05:00","updated_at":"2025-12-29T13:55:35.827778174-05:00","closed_at":"2025-12-29T13:55:35.827778174-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."}
{"id":"skills-6jw","title":"spec-review: Add severity labeling to prompts and reviews","description":"Reviews produce flat lists mixing blockers with minor nits. Hard to make decisions.\n\nAdd to prompts:\n- Require severity labels: Blocker / High / Medium / Low\n- Sort output by severity\n- Include impact and likelihood for each issue","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-15T00:23:23.334156366-08:00","updated_at":"2025-12-15T13:00:32.678573181-08:00","closed_at":"2025-12-15T13:00:32.678573181-08:00"}
{"id":"skills-6x1","title":"Epic: emes plugin architecture alignment","description":"Convert skills to emes-style plugin architecture for portability across Claude Code, Gemini, and VPS deployment (ops-jrz1).\n\n**emes tools (evil-mind-evil-sword org):**\n- tissue: Git-native issue tracking (machine-first)\n- idle: Quality gate (blocks exit until reviewer approves)\n- jwz: Async messaging with identity/git context\n- marketplace: Plugin distribution registry\n\n**Conversion work:**\n1. Add .claude-plugin/plugin.json to each skill\n2. Restructure: SKILL.md → skills/\u003cname\u003e.md (auto-discovery)\n3. Add hooks/ where applicable (quality gates)\n4. Create marketplace.json registry\n5. Test with ops-jrz1 deployment\n\n**Key principles from emes:**\n- Pull context on-demand (not big upfront injections)\n- Mechanical enforcement via hooks (not prompts)\n- References over inline content\n- Machine-first interfaces (JSON output)\n\n**Candidates for conversion:**\n- orch (simple CLI wrapper)\n- worklog (scripts + templates)\n- code-review (has lenses, might want hooks)\n- ops-review (same pattern)","status":"closed","priority":2,"issue_type":"epic","created_at":"2026-01-09T10:59:12.291560832-08:00","created_by":"dan","updated_at":"2026-01-09T17:14:41.429380141-08:00","closed_at":"2026-01-09T17:14:41.429380141-08:00","close_reason":"Dual-publish complete. Ongoing cross-agent work continues under skills-hf1"}
{"id":"skills-73yu","title":"Validate taskId to prevent path traversal and command injection","description":"[SECURITY] HIGH git.nim:36,37,53,59,89 - taskId used unsanitized in branch names and file paths. If taskId contains '../' or shell metacharacters, could escape worktree dir. Validate taskId matches safe pattern (alphanumeric + dash/underscore only).","status":"open","priority":1,"issue_type":"bug","created_at":"2026-01-10T19:52:13.24918965-08:00","created_by":"dan","updated_at":"2026-01-10T19:52:13.24918965-08:00"}
{"id":"skills-73yu","title":"Validate taskId to prevent path traversal and command injection","description":"[SECURITY] HIGH git.nim:36,37,53,59,89 - taskId used unsanitized in branch names and file paths. If taskId contains '../' or shell metacharacters, could escape worktree dir. Validate taskId matches safe pattern (alphanumeric + dash/underscore only).","status":"closed","priority":1,"issue_type":"bug","created_at":"2026-01-10T19:52:13.24918965-08:00","created_by":"dan","updated_at":"2026-01-10T20:32:28.374723485-08:00","closed_at":"2026-01-10T20:32:28.374723485-08:00","close_reason":"Created utils.nim with common helpers"}
{"id":"skills-7bu","title":"Add atomic file operations to update scripts","description":"Files affected:\n- skills/update-opencode/scripts/update-nix-file.sh\n- .specify/scripts/bash/update-agent-context.sh\n\nIssues:\n- Uses sed -i which can corrupt on error\n- No rollback mechanism despite creating backups\n- Unsafe regex patterns with complex escaping\n\nFix:\n- Write to temp file, then atomic mv\n- Validate output before replacing original\n- Add rollback on failure\n\nSeverity: MEDIUM","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-24T02:51:02.334416215-05:00","updated_at":"2026-01-03T12:08:56.822659199-08:00","closed_at":"2026-01-03T12:08:56.822659199-08:00","close_reason":"Implemented atomic updates using temp files and traps in update-nix-file.sh, update-agent-context.sh, and deploy-skill.sh. Added validation before replacing original files."}
{"id":"skills-7n4","title":"Design: Rollback strategy for failed workers","description":"Consensus gap: No rollback strategy. Handle: stuck workers, rejected reviews, merge conflicts. Branch archive/delete, state reset for re-assignment, evidence preservation for debugging.","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T13:55:24.144602107-08:00","created_by":"dan","updated_at":"2026-01-10T13:55:24.144602107-08:00","dependencies":[{"issue_id":"skills-7n4","depends_on_id":"skills-s6y","type":"blocks","created_at":"2026-01-10T13:55:24.147809879-08:00","created_by":"dan"}]}
{"id":"skills-7s0","title":"Compare STATIC_DATA.md with upstream","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-03T20:15:55.193704589-08:00","updated_at":"2025-12-03T20:19:29.659256809-08:00","closed_at":"2025-12-03T20:19:29.659256809-08:00","dependencies":[{"issue_id":"skills-7s0","depends_on_id":"skills-ebh","type":"discovered-from","created_at":"2025-12-03T20:15:55.195160705-08:00","created_by":"daemon","metadata":"{}"}]}
@ -160,7 +160,7 @@
{"id":"skills-lie","title":"Compare DEPENDENCIES.md with upstream","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-03T20:15:53.925914243-08:00","updated_at":"2025-12-03T20:19:28.665641809-08:00","closed_at":"2025-12-03T20:19:28.665641809-08:00","dependencies":[{"issue_id":"skills-lie","depends_on_id":"skills-ebh","type":"discovered-from","created_at":"2025-12-03T20:15:53.9275694-08:00","created_by":"daemon","metadata":"{}"}]}
{"id":"skills-luzk","title":"Extract rowToWorkerInfo helper in state.nim","description":"[REDUNDANCY] LOW state.nim:136-143,165-172 - WorkerInfo construction duplicated in getWorker() and getAllWorkers(). Extract proc rowToWorkerInfo(row): WorkerInfo.","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T19:49:53.238303032-08:00","created_by":"dan","updated_at":"2026-01-10T19:49:53.238303032-08:00"}
{"id":"skills-lvg","title":"Compare ISSUE_CREATION.md with upstream","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-03T20:15:54.609282051-08:00","updated_at":"2025-12-03T20:19:29.134966356-08:00","closed_at":"2025-12-03T20:19:29.134966356-08:00","dependencies":[{"issue_id":"skills-lvg","depends_on_id":"skills-ebh","type":"discovered-from","created_at":"2025-12-03T20:15:54.610717055-08:00","created_by":"daemon","metadata":"{}"}]}
{"id":"skills-lzh2","title":"Create utils.nim with common helpers","description":"Extract repeated patterns into src/worker/utils.nim:\n- branchName(taskId): string - from git.nim:36,59,89\n- worktreePath(taskId): string - from git.nim:37,53\n- msToUnix(ms): int64 - from state.nim (8 occurrences)\n- optField[T](row, idx): Option[T] - from db.nim:167-176\n- withTransaction template - from state.nim:37-74\n- validateTaskId(id): string - new, for CLI validation\n\nConsolidates: skills-3d9o, skills-5x2o, skills-r3k, skills-luzk, skills-qiq0, skills-2xc, skills-73yu, skills-vuj2\n\nParent: skills-g2wa","status":"open","priority":1,"issue_type":"task","created_at":"2026-01-10T20:18:49.280359755-08:00","created_by":"dan","updated_at":"2026-01-10T20:18:49.280359755-08:00"}
{"id":"skills-lzh2","title":"Create utils.nim with common helpers","description":"Extract repeated patterns into src/worker/utils.nim:\n- branchName(taskId): string - from git.nim:36,59,89\n- worktreePath(taskId): string - from git.nim:37,53\n- msToUnix(ms): int64 - from state.nim (8 occurrences)\n- optField[T](row, idx): Option[T] - from db.nim:167-176\n- withTransaction template - from state.nim:37-74\n- validateTaskId(id): string - new, for CLI validation\n\nConsolidates: skills-3d9o, skills-5x2o, skills-r3k, skills-luzk, skills-qiq0, skills-2xc, skills-73yu, skills-vuj2\n\nParent: skills-g2wa","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-10T20:18:49.280359755-08:00","created_by":"dan","updated_at":"2026-01-10T20:32:28.34903461-08:00","closed_at":"2026-01-10T20:32:28.34903461-08:00","close_reason":"Created utils.nim with common helpers"}
{"id":"skills-lzk","title":"Simplify branch name generation in create-new-feature.sh","description":"File: .specify/scripts/bash/create-new-feature.sh (lines 137-181)\n\nIssues:\n- 3 nested loops/conditionals\n- Complex string transformations with multiple sed operations\n- Stop-words list and filtering logic hard to maintain\n\nFix:\n- Extract to separate function\n- Simplify word filtering logic\n- Add input validation\n\nSeverity: MEDIUM","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-24T02:51:14.286951249-05:00","updated_at":"2026-01-03T12:13:27.083639201-08:00","closed_at":"2026-01-03T12:13:27.083639201-08:00","close_reason":"Simplifed generate_branch_name logic, added main() function, and BASH_SOURCE guard for testability."}
{"id":"skills-m21","title":"Apply niri-window-capture code review recommendations","description":"CODE-REVIEW-niri-window-capture.md identifies action items: add dependency checks to scripts, improve error handling for niri failures, add screenshot directory validation, implement rate limiting. See High/Medium priority sections.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-30T11:58:24.648846875-08:00","updated_at":"2025-12-28T20:16:53.914141949-05:00","closed_at":"2025-12-28T20:16:53.914141949-05:00","close_reason":"Implemented all 4 high-priority recommendations from code review: dependency checks, directory validation, error handling, audit logging"}
{"id":"skills-mjf","title":"Design: Portable adversarial reviewer","description":"Design a reviewer agent/skill that can run on any capable model.\n\nalice is Claude Opus with specific tools. We need:\n- Model-agnostic reviewer prompt/instructions\n- Tool requirements (read-only: Read, Grep, Glob, Bash)\n- Integration with orch for multi-model consensus\n- Decision format (APPROVED/ISSUES)\n- Issue filing (beads or tissue)\n\nKey principles from alice:\n- Work for the USER, not the agent\n- Assume errors exist, find them\n- Steel-man then attack\n- Seek second opinions\n\nOutput: Reviewer skill spec that works across agents","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-09T17:14:20.778647076-08:00","created_by":"dan","updated_at":"2026-01-09T19:59:37.80146821-08:00","closed_at":"2026-01-09T19:59:37.80146821-08:00","close_reason":"Covered in architecture design doc - adversarial reviewer section"}
@ -179,7 +179,7 @@
{"id":"skills-q40","title":"ADR: Nim language for worker CLI","description":"Language decision: Nim (ORC, cligen, tiny_sqlite) for the worker coordination CLI.\n\nRationale:\n- Single static binary deployment\n- Fast startup (~1ms) for CLI commands\n- Python-like syntax, easy to iterate\n- Excellent SQLite support via tiny_sqlite\n- cligen auto-generates CLI from proc signatures\n- ORC memory management handles cycles\n- Threads + channels for heartbeat without shared state\n\nDependencies:\n- tiny_sqlite: SQLite wrapper with RAII\n- cligen: CLI framework\n- jsony: Fast JSON (optional)\n- SQLite amalgamation for static linking\n\nBuild: nim c -d:release --mm:orc --threads:on src/worker.nim\n\nSee: docs/design/mvp-scope.md, message-passing-layer.md, worker-cli-primitives.md","status":"open","priority":1,"issue_type":"task","created_at":"2026-01-10T18:04:05.004285163-08:00","created_by":"dan","updated_at":"2026-01-10T18:04:05.004285163-08:00"}
{"id":"skills-qeh","title":"Add README.md for web-research skill","description":"web-research skill has SKILL.md and scripts but no README.md. AGENTS.md says README.md is for humans, contains installation instructions, usage examples, prerequisites.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-30T11:58:14.475647113-08:00","updated_at":"2025-12-28T22:37:48.339288261-05:00","closed_at":"2025-12-28T22:37:48.339288261-05:00","close_reason":"Added README.md with prerequisites, usage examples, and cross-references","dependencies":[{"issue_id":"skills-qeh","depends_on_id":"skills-vb5","type":"blocks","created_at":"2025-11-30T12:01:30.278784381-08:00","created_by":"daemon","metadata":"{}"}]}
{"id":"skills-qekj","title":"Start heartbeat before state transition in start command","description":"[ERROR] MED worker.nim:202-206 - Heartbeat started after state transition. If heartbeat fails, worker is WORKING but not heartbeating. Start heartbeat before transition, or handle failure by reverting state.","status":"open","priority":2,"issue_type":"bug","created_at":"2026-01-10T20:12:10.656162605-08:00","created_by":"dan","updated_at":"2026-01-10T20:12:10.656162605-08:00"}
{"id":"skills-qiq0","title":"Extract DefaultRemote and IntegrationBranch constants","description":"[EVOLVE] LOW git.nim - 'origin' remote and 'integration' branch hardcoded throughout (lines 40,66,67,93,96,97,109,133). Extract to constants in types.nim.","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T19:52:14.580188398-08:00","created_by":"dan","updated_at":"2026-01-10T19:52:14.580188398-08:00"}
{"id":"skills-qiq0","title":"Extract DefaultRemote and IntegrationBranch constants","description":"[EVOLVE] LOW git.nim - 'origin' remote and 'integration' branch hardcoded throughout (lines 40,66,67,93,96,97,109,133). Extract to constants in types.nim.","status":"closed","priority":3,"issue_type":"task","created_at":"2026-01-10T19:52:14.580188398-08:00","created_by":"dan","updated_at":"2026-01-10T20:32:28.36719341-08:00","closed_at":"2026-01-10T20:32:28.36719341-08:00","close_reason":"Created utils.nim with common helpers"}
{"id":"skills-r3k","title":"Extract helper for repetitive null-check pattern in poll()","description":"[SMELL] LOW db.nim:167-176 - Same null-check pattern repeated 5 times. Extract helper: proc optField[T](row, idx): Option[T]","status":"open","priority":3,"issue_type":"task","created_at":"2026-01-10T18:52:40.828545508-08:00","created_by":"dan","updated_at":"2026-01-10T18:52:40.828545508-08:00"}
{"id":"skills-r5c","title":"Extract shared logging library from scripts","description":"Duplicated logging/color functions across multiple scripts:\n- bin/deploy-skill.sh\n- skills/tufte-press/scripts/generate-and-build.sh\n- Other .specify scripts\n\nPattern repeated:\n- info(), warn(), error() functions\n- Color definitions (RED, GREEN, etc.)\n- Same 15-20 lines in each file\n\nFix:\n- Create scripts/common-logging.sh\n- Source from all scripts that need it\n- Estimated reduction: 30+ lines of duplication\n\nSeverity: MEDIUM","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T02:50:58.324852578-05:00","updated_at":"2025-12-29T18:48:20.448077879-05:00","closed_at":"2025-12-29T18:48:20.448077879-05:00","close_reason":"Minimal duplication: only 2 files with different logging styles. Shared library overhead not justified."}
{"id":"skills-r62","title":"Design: Role + Veto pattern","description":"Some agents do, some agents can only block.\n\n## Pattern (from GPT brainstorm)\nRole specialization with cross-cutting veto powers:\n- Claude = spec/architecture (can veto incoherent APIs)\n- Codex = implementation (fast edits, compilation focus)\n- Gemini = repo archaeologist (searches long-range coupling)\n- Security agent = can't code, can only BLOCK\n\nKey: some agents can't 'do' but can block.\n\n## Implementation\n- worker veto X \"reason\" - block without doing\n- Reviewer agents have veto-only mode\n- Veto writes rejection to .worker-state/X.json\n- Worker must address veto before proceeding\n\n## Benefits\n- Prevents groupthink\n- Security review can't 'fix' things (no scope creep)\n- Clear separation of concerns","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T12:14:51.397604607-08:00","created_by":"dan","updated_at":"2026-01-10T12:14:51.397604607-08:00","dependencies":[{"issue_id":"skills-r62","depends_on_id":"skills-s6y","type":"blocks","created_at":"2026-01-10T12:15:10.205645756-08:00","created_by":"dan"}]}
@ -205,7 +205,7 @@
{"id":"skills-vb5","title":"Resolve web search design questions","description":"web_search_brainstorm.md has unanswered design questions: single smart skill vs explicit flags, specific sources priority, raw links vs summaries. Need user input to finalize web-search/web-research direction.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-30T11:58:33.482270742-08:00","updated_at":"2025-12-28T22:21:05.814118092-05:00","closed_at":"2025-12-28T22:21:05.814118092-05:00","close_reason":"Resolved: keep 2 skills, web-search for OpenCode only (Claude has built-in), web-research for both. Source filtering via WebSearch domains. Summaries by default."}
{"id":"skills-vjm","title":"Refactor update-agent-context.sh: reduce nesting depth","description":"File: .specify/scripts/bash/update-agent-context.sh\n\nIssues:\n- update_existing_agent_file() has 4-level deep nesting (lines 360-499)\n- State machine with multiple variables: in_tech_section, in_changes_section, tech_entries_added\n- 70+ lines of while loop processing\n\nFix:\n- Extract file processing to separate function\n- Consider sed/awk for line-based transformations\n- Use guard clauses to reduce nesting\n\nSeverity: HIGH","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T02:50:57.874439288-05:00","updated_at":"2025-12-25T01:44:58.38265672-05:00","closed_at":"2025-12-25T01:44:58.38265672-05:00","close_reason":"update-agent-context.sh is .specify upstream code, not maintained here"}
{"id":"skills-vpy","title":"Design checklist support for skills","description":"Design how checklists fit into the skills system.\n\nQuestions:\n- Skill-as-checklist (SKILL.md with just items, no scripts)?\n- Separate checklist format?\n- Trigger conditions in frontmatter?\n- Integration with bd audit for tracking?\n\nTiers considered:\n1. AGENTS.md (simplest, no tracking)\n2. Skill-as-checklist (deployed, invokable)\n3. Proto (full tracking, overhead)","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-23T17:59:09.569427412-05:00","updated_at":"2025-12-29T13:55:35.848981398-05:00","closed_at":"2025-12-29T13:55:35.848981398-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."}
{"id":"skills-vuj2","title":"Add validateTaskId() at CLI entry points","description":"[SECURITY] MED worker.nim - taskId from CLI args used without validation. Add validateTaskId() check in each command. Related to skills-73yu (git.nim validation).","status":"open","priority":2,"issue_type":"bug","created_at":"2026-01-10T20:12:10.919427534-08:00","created_by":"dan","updated_at":"2026-01-10T20:12:10.919427534-08:00"}
{"id":"skills-vuj2","title":"Add validateTaskId() at CLI entry points","description":"[SECURITY] MED worker.nim - taskId from CLI args used without validation. Add validateTaskId() check in each command. Related to skills-73yu (git.nim validation).","status":"closed","priority":2,"issue_type":"bug","created_at":"2026-01-10T20:12:10.919427534-08:00","created_by":"dan","updated_at":"2026-01-10T20:32:28.382482296-08:00","closed_at":"2026-01-10T20:32:28.382482296-08:00","close_reason":"Created utils.nim with common helpers"}
{"id":"skills-wm9","title":"Research Steve Yegge's orchestration work","description":"Steve Yegge is working on something new related to AI orchestration. Research what it is and how it might inform our skills+molecules integration design.\n\nBlocks: skills-hin (ADR finalization)","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T02:41:47.848905848-05:00","updated_at":"2025-12-24T02:42:24.40239935-05:00","closed_at":"2025-12-24T02:42:24.40239935-05:00","close_reason":"Not needed - just parking the ADR work"}
{"id":"skills-x2l","title":"Investigate hooks for parallel orch queries","description":"When using orch skill, it would be useful to spin off multiple model queries in parallel automatically (e.g., gemini + gpt simultaneously). Explore if Claude Code hooks can trigger parallel background processes when the orch skill is invoked.","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-06T19:29:00.165752425-08:00","updated_at":"2025-12-29T15:49:43.831970326-05:00","closed_at":"2025-12-29T15:49:43.831970326-05:00","close_reason":"Investigated. Hooks are synchronous with 60s timeout - unsuitable for background orch queries. Alternatives: (1) SessionStart hook for initial consensus, (2) Explicit skill invocation, (3) PostToolUse for validation. orch consensus already runs models in parallel internally."}
{"id":"skills-x33","title":"Add tests for branch name generation","description":"File: .specify/scripts/bash/create-new-feature.sh (lines 137-181)\n\nCritical logic with NO test coverage:\n- Word filtering with stop-words\n- Acronym detection\n- Unicode/special character handling\n- Max length boundary (244 bytes)\n- Empty/single-word descriptions\n\nRisk: HIGH - affects all branch creation\n\nFix:\n- Create test suite with edge cases\n- Test stop-word filtering accuracy\n- Test boundary conditions\n\nSeverity: HIGH","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T02:51:00.311664646-05:00","updated_at":"2026-01-02T00:53:35.147800477-05:00","closed_at":"2026-01-02T00:53:35.147800477-05:00","close_reason":"Created test suite with 27 tests covering stop words, acronyms, word limits, special chars, unicode, edge cases, and fallback logic"}

View file

@ -1 +1 @@
skills-69sz
skills-lzh2