bd sync: 2026-01-10 15:27:39
This commit is contained in:
parent
bc4f2e85cf
commit
1888db7ec0
|
|
@ -136,7 +136,7 @@
|
|||
{"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"}]}
|
||||
{"id":"skills-rex","title":"Test integration on worklog skill","description":"Use worklog skill as first real test case:\n- Create wisp for worklog execution\n- Capture execution trace\n- Test squash → digest\n- Validate trace format captures enough info for replay\n\nMigrated from dotfiles-drs.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-23T19:21:18.75525644-05:00","updated_at":"2025-12-29T13:55:35.814174815-05:00","closed_at":"2025-12-29T13:55:35.814174815-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-rex","depends_on_id":"skills-3em","type":"blocks","created_at":"2025-12-23T19:22:00.34922734-05:00","created_by":"dan"}]}
|
||||
{"id":"skills-roq","title":"Design: Branch-per-worker isolation","description":"Each worker operates on its own git branch for code isolation.\n\n## Pattern\n- worker spawn creates branch: worker/\u003cid\u003e\n- Worker does all work on that branch\n- On completion, branch ready for review/merge\n- Orchestrator or human merges to main\n\n## Benefits\n- Clean isolation between parallel workers\n- Easy rollback (just delete branch)\n- Familiar git workflow\n- No conflicts during work\n\n## Implementation\nworker spawn:\n 1. git checkout -b worker/\u003cid\u003e\n 2. Run agent\n 3. Agent commits to branch\n 4. On completion, branch stays for review\n\nworker merge \u003cid\u003e:\n 1. Review diff\n 2. Merge to main (or rolling branch)\n 3. Delete worker branch\n\n## Open Questions\n- Merge from main during work? (rebase vs merge)\n- Rolling branch pattern? (main \u003c- rolling \u003c- workers)","notes":"Consensus gap: Rebase protocol needed. Mandatory rebase before signaling done to prevent stale branch drift. Worker must: 1) rebase on main, 2) resolve conflicts, 3) then signal REVIEW_REQUESTED. Non-negotiable requirement.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T13:24:21.364434026-08:00","created_by":"dan","updated_at":"2026-01-10T13:55:36.630009986-08:00","dependencies":[{"issue_id":"skills-roq","depends_on_id":"skills-s6y","type":"blocks","created_at":"2026-01-10T13:24:35.976245936-08:00","created_by":"dan"}]}
|
||||
{"id":"skills-roq","title":"Design: Branch-per-worker isolation","description":"Each worker operates on its own git branch for code isolation.\n\n## Pattern\n- worker spawn creates branch: worker/\u003cid\u003e\n- Worker does all work on that branch\n- On completion, branch ready for review/merge\n- Orchestrator or human merges to main\n\n## Benefits\n- Clean isolation between parallel workers\n- Easy rollback (just delete branch)\n- Familiar git workflow\n- No conflicts during work\n\n## Implementation\nworker spawn:\n 1. git checkout -b worker/\u003cid\u003e\n 2. Run agent\n 3. Agent commits to branch\n 4. On completion, branch stays for review\n\nworker merge \u003cid\u003e:\n 1. Review diff\n 2. Merge to main (or rolling branch)\n 3. Delete worker branch\n\n## Open Questions\n- Merge from main during work? (rebase vs merge)\n- Rolling branch pattern? (main \u003c- rolling \u003c- workers)","design":"docs/design/branch-per-worker.md","notes":"Design complete. Key decisions: (1) type/task-id naming (not worker-id), (2) git worktrees for parallel agents, (3) rolling integration branch before main, (4) orchestrator creates branches, (5) trivial conflict auto-resolve, semantic escalates, (6) SQLite=process truth, Git=code truth, (7) serialize cross-worker deps, (8) archive failed branches. See orch consensus with flash-or/gemini/gpt.","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-10T13:24:21.364434026-08:00","created_by":"dan","updated_at":"2026-01-10T15:27:29.901624939-08:00","dependencies":[{"issue_id":"skills-roq","depends_on_id":"skills-s6y","type":"blocks","created_at":"2026-01-10T13:24:35.976245936-08:00","created_by":"dan"}]}
|
||||
{"id":"skills-rpf","title":"Implement playwright-visit skill for browser automation","description":"## Overview\nBrowser automation skill using Playwright to visit web pages, take screenshots, and extract content.\n\n## Key Findings (from dotfiles investigation)\n\n### Working Setup\n- Use `python312Packages.playwright` from nixpkgs (handles Node driver binary patching for NixOS)\n- Use `executable_path='/run/current-system/sw/bin/chromium'` to use system chromium\n- No `playwright install` needed - no browser binary downloads\n\n### Profile Behavior\n- Fresh/blank profile every launch by default\n- No cookies, history, or logins from user's browser\n- Can persist state with `storage_state` parameter if needed\n\n### Example Code\n```python\nfrom playwright.sync_api import sync_playwright\n\nwith sync_playwright() as p:\n browser = p.chromium.launch(\n executable_path='/run/current-system/sw/bin/chromium',\n headless=True\n )\n page = browser.new_page()\n page.goto('https://example.com')\n print(page.title())\n browser.close()\n```\n\n### Why Not uv/pip?\n- Playwright pip package bundles a Node.js driver binary\n- NixOS can't run dynamically linked executables without patching\n- nixpkgs playwright handles this properly\n\n## Implementation Plan\n1. Create `skills/playwright-visit/` directory\n2. Add flake.nix with devShell providing playwright\n3. Create CLI script with subcommands:\n - `screenshot \u003curl\u003e \u003coutput.png\u003e` - capture page\n - `text \u003curl\u003e` - extract text content \n - `html \u003curl\u003e` - get rendered HTML\n - `pdf \u003curl\u003e \u003coutput.pdf\u003e` - save as PDF\n4. Create skill definition for Claude Code integration\n5. Document usage in skill README\n\n## Dependencies\n- nixpkgs python312Packages.playwright\n- System chromium (already in dotfiles)\n\n## Related\n- dotfiles issue dotfiles-m09 (playwright skill request)","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-12-16T16:02:28.577381007-08:00","updated_at":"2025-12-29T00:09:50.681141882-05:00","closed_at":"2025-12-29T00:09:50.681141882-05:00","close_reason":"Implemented: SKILL.md, visit.py CLI (screenshot/text/html/pdf), flake.nix devShell, README. Network down so couldn't test devShell build, but code complete."}
|
||||
{"id":"skills-s6y","title":"Multi-agent orchestration: Lego brick architecture","description":"Simple, composable primitives for multi-agent coordination. Inspired by Gastown but dramatically simpler - Lego bricks not pirate ships.\n\n## Architecture\n- Human-attended orchestrator (any agent)\n- Background workers (any agent, own git branch)\n- Local message passing (.worker-state/messages/*.jsonl)\n- Review gates (review-gate CLI)\n- File-based state (.worker-state/)\n\n## Core Primitives\n1. worker spawn - start background agent on own branch\n2. worker status - check all workers via local files\n3. worker merge - merge completed worker branch\n4. review-gate - quality gates (pass/fail)\n5. worker stuck - detect non-progress (Rubber Duck)\n6. worker veto - block without doing (for reviewers)\n\n## Phased Approach\nPhase 1 (Now): Simple JSONL, basic primitives, pass/fail review\nPhase 2 (When Needed): Threading, SQLite cache, richer review scoring\nPhase 3 (Future): Talu or service layer for rich querying\n\n## Key Principles\n- Everything is local filesystem (no network for coordination)\n- Any agent that can read/write files can participate\n- Git branches for code isolation\n- Start simple, grow as needed\n- 80-90% automation realistic (human for the rest)\n\n## Research Sources\n- OpenHands: Worker → critique → feedback loop, git-based coordination\n- JWZ (emes): JSONL + SQLite, topic-based messaging\n- Gastown: What NOT to do (too complex, Kubernetes-level)\n- LangGraph: State serialization breakpoints\n- MetaGPT: Role-based agents","status":"open","priority":1,"issue_type":"epic","created_at":"2026-01-10T12:14:16.141746066-08:00","created_by":"dan","updated_at":"2026-01-10T13:34:00.126490996-08:00"}
|
||||
{"id":"skills-s92","title":"Add tests for config injection (deploy-skill.sh)","description":"File: bin/deploy-skill.sh (lines 112-137)\n\nCritical logic with NO test coverage:\n- Idempotency (running twice should be safe)\n- Correct brace matching in Nix\n- Syntax validity of injected config\n- Rollback on failure\n\nRisk: MEDIUM-HIGH - can break dotfiles Nix config\n\nFix:\n- Test idempotent injection\n- Validate Nix syntax after injection\n- Test with malformed input\n\nSeverity: MEDIUM","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-24T02:51:01.314513824-05:00","updated_at":"2026-01-06T16:29:18.728097676-08:00","closed_at":"2026-01-06T16:29:18.728097676-08:00","close_reason":"21 tests added covering idempotency, brace preservation, inject_home_file wrapper, edge cases"}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
skills-ms5
|
||||
skills-roq
|
||||
|
|
|
|||
Loading…
Reference in a new issue