[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CHRE8T4Y7VC3Q7ZHZTRVFK":3,"skill-same:01M6CHRE8T4Y7VC3Q7ZHZTRVFK":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6CHRE8T4Y7VC3Q7ZHZTRVFK","issue-orchestrator",null,"Drive open GitHub issues on strike-cli to merge via parallel worktrees — parse wave\u002Fdepends\u002Fblocks\u002Fconflicts headers, dispatch issue-handler agents, prefer bugs-first, never parallelize conflicting issues. Use when asked to orchestrate issues, farm the backlog, run the issue board, or coordinate multiple agents on GitHub issues.","dayvidpham\u002Faura-plugins","dayvidpham","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F22456875?v=4","01M6CHR0F6J2M4QEHFR85XRNSR","David Huu Pham","01M6CHR0KQJ4DK5KSZ9TRTP7DW",2,"MIT","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fissue-orchestrator\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"issue orchestrator","orchestrator","issue","dispatch","when","parse","bugs","parallel worktrees","farm","backlog","coordinate","conflicts","worktrees","strike","cli","never","use","board","parallel","open","first","orchestrate","issues","run","merge","github","2026-11-10 10:12:30",false,"---\nname: issue-orchestrator\ndescription: Drive open GitHub issues on strike-cli to merge via parallel worktrees — parse wave\u002Fdepends\u002Fblocks\u002Fconflicts headers, dispatch issue-handler agents, prefer bugs-first, never parallelize conflicting issues. Use when asked to orchestrate issues, farm the backlog, run the issue board, or coordinate multiple agents on GitHub issues.\n---\n\n# Issue orchestrator (strike-cli)\n\nYou coordinate **many** issues. You do **not** implement feature code in the primary checkout. Each shippable unit is owned by an **issue-handler** agent (or you acting as handler for a single issue) inside its own git worktree.\n\n## When to use\n\n- User asks to orchestrate \u002F farm \u002F drain open issues\n- User wants parallel agents on the backlog\n- After filing a wave of issues and wanting them driven to `main`\n\n## Source of truth\n\n```sh\ngh issue list --state open --limit 100\ngh issue view N\ngh pr list --state open\ngit fetch origin main\ngit worktree list\n```\n\n### Issue body headers (machine-readable)\n\nIssues should start with:\n\n```text\nwave: N\ndepends: none | #a #b\nblocks: none | #c #d\nconflicts: none | #e #f\npriority: bugs-first | feature\n```\n\n| Field | Meaning |\n|---|---|\n| `wave` | Lower ships first. Wave 0 = bugs\u002Ftests baseline. |\n| `depends` | All listed issues must be **CLOSED** before start |\n| `conflicts` | Do not run in parallel with these (shared files \u002F same agent) |\n| `blocks` | What this unlocks (scheduling hint) |\n| `priority` | `bugs-first` before `feature` within the same wave |\n\nClosed `depends` count as satisfied.\n\n**Missing headers:** treat as `wave: 99`, `depends: none`, `conflicts: none`, `priority: feature`. Prefer issues that have proper headers. When farming, **comment once** on headerless issues asking for headers (or load `issue-create-and-handle` to refine) before parallel dispatch — do not guess large parallel graphs.\n\n### Suggested `conflicts` hotspots\n\nSerialize (or mark mutual `conflicts`) when multiple issues touch:\n\n- `internal\u002Ftui\u002F_src\u002Fapp\u002Fkeymap*.go`, default keybinds, `internal\u002Fconfig\u002Fkeybinds.go`\n- `internal\u002Fengine\u002Fturn.go` \u002F core turn loop\n- `internal\u002Ftool\u002Fregistry.go` + defer\u002Ftoolsearch wiring\n- `internal\u002Fprotocol` event kind additions shared across frontends\n\nPrefer explicit `conflicts: #N` on the issue over silent collision.\n\n## Sibling skills\n\n| Skill | Role |\n|---|---|\n| `issue-handler` | One issue → worktree → implement → test → PR → **review-agent loop** → CI → merge → cleanup |\n| `test-and-validate` | Verification report format + tiers |\n| `write-go-tests` | Tests when handler implements |\n| `smoke` | Product happy-path when user-visible |\n| `release` | Version tags (orchestrator does not cut releases unless asked) |\n| `tui-components` | TUI work inside a handler |\n\nOrchestrator **dispatches handlers**; handlers load domain skills.\n\n## Priority order\n\n1. **Wave 0** (`priority: bugs-first` \u002F test gaps) until none remain open  \n2. Lowest open `wave` with `depends` satisfied  \n3. Within a wave: `bugs-first`, then issues that unlock the most open `blocks`, then lowest number  \n\nDo **not** start large features while wave-0 bugs that touch the same surface are open, unless the user overrides.\n\n## Conflict rules\n\n- If A lists B under `conflicts` (or vice versa), **at most one** of A\u002FB may be in-progress (open PR or active worktree) at a time.\n- Same package hotspots without headers: serialize when both touch keymap\u002Fdefault binds or `engine\u002Fturn.go` heavily — prefer explicit `conflicts` on new issues.\n- Multi-issue “cluster” (e.g. all keymap bugs): **one worktree \u002F one handler** for the whole cluster when they conflict with each other.\n- Parallelism cap defaults to **4**, but the **conflict graph wins** — fewer slots when hotspots overlap.\n\n## Ready set\n\nAn issue is **ready** when all are true:\n\n- state `OPEN`\n- every `depends` issue is `CLOSED` (or not listed)\n- none of `conflicts` are in-progress (open PR titled\u002Fbody `Fixes #N`, or worktree branch `worktree-*N*` \u002F clearly for that issue)\n- `wave` is the current minimum eligible wave (or user pinned this issue)\n- no open PR already fixing it (attach\u002Fbabysit that PR instead of duplicating)\n\n## Dispatch\n\nFor each ready issue (up to the parallelism cap \u002F conflict graph):\n\n1. Spawn or instruct an agent to load **`issue-handler`** with the issue number.\n2. Handler must: worktree off `origin\u002Fmain`, implement, tests per `AGENTS.md`, tier gate, PR `Fixes #N`, review loop, CI, merge, cleanup.\n3. Orchestrator tracks: issue → branch → PR URL → status (`queued` \u002F `in_progress` \u002F `review` \u002F `merged` \u002F `blocked`).\n\nDo **not** implement production code in the primary checkout as the orchestrator.\n\n## Orchestrator loop\n\n```text\nloop:\n  1. Refresh issues, PRs, worktrees, origin\u002Fmain\n  2. Build ready set\n  3. Fill free slots with highest-priority ready issues\n  4. For in-flight PRs: ensure handler\u002Freview\u002FCI progress; re-dispatch handler if stalled\n  5. On merge: mark done, unlock dependents, pull main awareness\n  6. On block: comment on issue, mark blocked, free the slot\n  7. Exit when no open issues left, or user stops, or only blocked remain\n```\n\n### Stalls\n\n- CI red > reasonable time → handler fixes or orchestrator assigns handler to that PR  \n- Review loop hits stall ceiling (5) → stop-and-ask per issue-handler  \n- Merge conflict with main → handler merges `origin\u002Fmain` in worktree  \n- Ambiguous product decision → comment on issue + stop that lane  \n\n## Reporting\n\nLead with board status:\n\n```text\nWave 0: done | in flight | blocked\nReady: #N #M\nIn flight: #N → PR URL\nBlocked: #N (reason)\nNext: #N (why)\n```\n\nDo not claim “all green” without `gh pr checks` \u002F issue state.\n\n## Hard rules\n\n1. Bugs\u002Ftests (`wave: 0`, `bugs-first`) before features when both are open.  \n2. Never parallelize `conflicts`.  \n3. Never duplicate an existing open PR for the same issue.  \n4. Never force-push `main`; never commit secrets.  \n5. Handlers own merge gates (review + CI); orchestrator does not merge over failing checks.  \n6. `.plan\u002F` is optional research for handlers — orchestrator schedules **GitHub issues**, not the whole roadmap file.  \n7. Stop-and-ask when `gh` auth fails, user must choose between conflicting product directions, or only blocked issues remain.\n\n## What this skill is not\n\n- Not a substitute for `issue-handler` on a single issue (use handler directly)\n- Not an implementer of unscoped `.plan\u002Ffeatures.md` items without issues\n- Not a requirement to max out parallel agents if conflicts forbid it\n","# Issue orchestrator (strike-cli)\n\nYou coordinate **many** issues. You do **not** implement feature code in the primary checkout. Each shippable unit is owned by an **issue-handler** agent (or you acting as handler for a single issue) inside its own git worktree.\n\n## When to use\n\n- User asks to orchestrate \u002F farm \u002F drain open issues\n- User wants parallel agents on the backlog\n- After filing a wave of issues and wanting them driven to `main`\n\n## Source of truth\n\n```sh\ngh issue list --state open --limit 100\ngh issue view N\ngh pr list --state open\ngit fetch origin main\ngit worktree list\n```\n\n### Issue body headers (machine-readable)\n\nIssues should start with:\n\n```text\nwave: N\ndepends: none | #a #b\nblocks: none | #c #d\nconflicts: none | #e #f\npriority: bugs-first | feature\n```\n\n| Field | Meaning |\n|---|---|\n| `wave` | Lower ships first. Wave 0 = bugs\u002Ftests baseline. |\n| `depends` | All listed issues must be **CLOSED** before start |\n| `conflicts` | Do not run in parallel with these (shared files \u002F same agent) |\n| `blocks` | What this unlocks (scheduling hint) |\n| `priority` | `bugs-first` before `feature` within the same wave |\n\nClosed `depends` count as satisfied.\n\n**Missing headers:** treat as `wave: 99`, `depends: none`, `conflicts: none`, `priority: feature`. Prefer issues that have proper headers. When farming, **comment once** on headerless issues asking for headers (or load `issue-create-and-handle` to refine) before parallel dispatch — do not guess large parallel graphs.\n\n### Suggested `conflicts` hotspots\n\nSerialize (or mark mutual `conflicts`) when multiple issues touch:\n\n- `internal\u002Ftui\u002F_src\u002Fapp\u002Fkeymap*.go`, default keybinds, `internal\u002Fconfig\u002Fkeybinds.go`\n- `internal\u002Fengine\u002Fturn.go` \u002F core turn loop\n- `internal\u002Ftool\u002Fregistry.go` + defer\u002Ftoolsearch wiring\n- `internal\u002Fprotocol` event kind additions shared across frontends\n\nPrefer explicit `conflicts: #N` on the issue over silent collision.\n\n## Sibling skills\n\n| Skill | Role |\n|---|---|\n| `issue-handler` | One issue → worktree → implement → test → PR → **review-agent loop** → CI → merge → cleanup |\n| `test-and-validate` | Verification report format + tiers |\n| `write-go-tests` | Tests when handler implements |\n| `smoke` | Product happy-path when user-visible |\n| `release` | Version tags (orchestrator does not cut releases unless asked) |\n| `tui-components` | TUI work inside a handler |\n\nOrchestrator **dispatches handlers**; handlers load domain skills.\n\n## Priority order\n\n1. **Wave 0** (`priority: bugs-first` \u002F test gaps) until none remain open  \n2. Lowest open `wave` with `depends` satisfied  \n3. Within a wave: `bugs-first`, then issues that unlock the most open `blocks`, then lowest number  \n\nDo **not** start large features while wave-0 bugs that touch the same surface are open, unless the user overrides.\n\n## Conflict rules\n\n- If A lists B under `conflicts` (or vice versa), **at most one** of A\u002FB may be in-progress (open PR or active worktree) at a time.\n- Same package hotspots without headers: serialize when both touch keymap\u002Fdefault binds or `engine\u002Fturn.go` heavily — prefer explicit `conflicts` on new issues.\n- Multi-issue “cluster” (e.g. all keymap bugs): **one worktree \u002F one handler** for the whole cluster when they conflict with each other.\n- Parallelism cap defaults to **4**, but the **conflict graph wins** — fewer slots when hotspots overlap.\n\n## Ready set\n\nAn issue is **ready** when all are true:\n\n- state `OPEN`\n- every `depends` issue is `CLOSED` (or not listed)\n- none of `conflicts` are in-progress (open PR titled\u002Fbody `Fixes #N`, or worktree branch `worktree-*N*` \u002F clearly for that issue)\n- `wave` is the current minimum eligible wave (or user pinned this issue)\n- no open PR already fixing it (attach\u002Fbabysit that PR instead of duplicating)\n\n## Dispatch\n\nFor each ready issue (up to the parallelism cap \u002F conflict graph):\n\n1. Spawn or instruct an agent to load **`issue-handler`** with the issue number.\n2. Handler must: worktree off `origin\u002Fmain`, implement, tests per `AGENTS.md`, tier gate, PR `Fixes #N`, review loop, CI, merge, cleanup.\n3. Orchestrator tracks: issue → branch → PR URL → status (`queued` \u002F `in_progress` \u002F `review` \u002F `merged` \u002F `blocked`).\n\nDo **not** implement production code in the primary checkout as the orchestrator.\n\n## Orchestrator loop\n\n```text\nloop:\n  1. Refresh issues, PRs, worktrees, origin\u002Fmain\n  2. Build ready set\n  3. Fill free slots with highest-priority ready issues\n  4. For in-flight PRs: ensure handler\u002Freview\u002FCI progress; re-dispatch handler if stalled\n  5. On merge: mark done, unlock dependents, pull main awareness\n  6. On block: comment on issue, mark blocked, free the slot\n  7. Exit when no open issues left, or user stops, or only blocked remain\n```\n\n### Stalls\n\n- CI red > reasonable time → handler fixes or orchestrator assigns handler to that PR  \n- Review loop hits stall ceiling (5) → stop-and-ask per issue-handler  \n- Merge conflict with main → handler merges `origin\u002Fmain` in worktree  \n- Ambiguous product decision → comment on issue + stop that lane  \n\n## Reporting\n\nLead with board status:\n\n```text\nWave 0: done | in flight | blocked\nReady: #N #M\nIn flight: #N → PR URL\nBlocked: #N (reason)\nNext: #N (why)\n```\n\nDo not claim “all green” without `gh pr checks` \u002F issue state.\n\n## Hard rules\n\n1. Bugs\u002Ftests (`wave: 0`, `bugs-first`) before features when both are open.  \n2. Never parallelize `conflicts`.  \n3. Never duplicate an existing open PR for the same issue.  \n4. Never force-push `main`; never commit secrets.  \n5. Handlers own merge gates (review + CI); orchestrator does not merge over failing checks.  \n6. `.plan\u002F` is optional research for handlers — orchestrator schedules **GitHub issues**, not the whole roadmap file.  \n7. Stop-and-ask when `gh` auth fails, user must choose between conflicting product directions, or only blocked issues remain.\n\n## What this skill is not\n\n- Not a substitute for `issue-handler` on a single issue (use handler directly)\n- Not an implementer of unscoped `.plan\u002Ffeatures.md` items without issues\n- Not a requirement to max out parallel agents if conflicts forbid it\n",{"name":5,"description":7},"main","7fe8098d35c17a7d6497a81e4c08abb4c2d02735",".claude\u002Fskills\u002Fissue-orchestrator",0,"https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins","https:\u002F\u002Fgithub.com\u002Fdayvidpham","dhpham.com","2026-11-11 16:48:56",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add dayvidpham\u002Faura-plugins --skill issue-orchestrator",{"tool":64,"command":65},"bunx","bunx skills add dayvidpham\u002Faura-plugins --skill issue-orchestrator",{"tool":67,"command":68},"pnpm","pnpm dlx skills add dayvidpham\u002Faura-plugins --skill issue-orchestrator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fissue-orchestrator\u002FSKILL.md",true,[72],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"code-reviewer.md","REFERENCE","参考文档",3385,"https:\u002F\u002Fgithub.com\u002FSESELOVSKYDarian\u002FVase\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Frequesting-code-review\u002Fcode-reviewer.md",[79,101,130,135,141,146],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":45},"01M70PPVS3CW9RYWGZ4KSNV7MV","afk-implement","Run an unattended (\"AFK\") implementation session as the supervisor — scope small progressive iterations, push feature branches, open pull requests, drive review waves to clean, and never merge. Use when the user says they are going AFK or to bed, asks for overnight autonomous implementation, says \"don't block on me\", \"open PRs but don't merge\", \"progressive adoption\", or \"stack changes\".","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fafk-implement\u002FSKILL.md",[],[86,87,88,89,34,90,91,92,38,93,23,94,95,96,97,42,43,98,99,100],"implement","afk implement","pull","bed","scope","clean","branches","autonomous","review","pull requests","stack","me","unattended","overnight","but",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":112,"publishedAt":45},"01M6CHSCKDTSV05385SJ05XWW6","protocol","Aura protocol reference documentation — 12-phase workflow, agent roles, constraints, and coding standards. Read when you need to understand the full workflow or look up conventions.","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fskills\u002Fprotocol\u002FSKILL.md",[107],{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[103,113,114,115,116,117,118,119,120,121,122,123,23,124,125,126,127,128,129],"coding","standards","documentation","read","up","coding standards","reference","look","workflow","full","constraints","you","phase","roles","understand","conventions","aura",{"skillNo":131,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":45},"01M6CHSBJDVKGWAJWQCNQ22F9F","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002Fskills\u002Fprotocol\u002FSKILL.md",[],[103],{"skillNo":136,"name":137,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":45},"01M6CHSAJY85M0W8NEAN4PRF82","example","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002Fskills\u002Fexample\u002FSKILL.md",[],[137],{"skillNo":142,"name":137,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":45},"01M6CHS9KQJYCWR1C9F2GJDZYX","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002F.opencode\u002Fskill\u002Fexample\u002FSKILL.md",[],[137],{"skillNo":147,"name":137,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":45},"01M6CHS8MSW2SDQ5Y05A3GZES4","https:\u002F\u002Fgithub.com\u002Fdayvidpham\u002Faura-plugins\u002Fblob\u002Fmain\u002Fnix\u002Fhm-module-test-data\u002Ffull\u002F.agents\u002Fskills\u002Fexample\u002FSKILL.md",[],[137]]