← ClaudeAtlas

git-spec-dispatchlisted

Execute a GitHub spec issue tree in parallel - read the parent's sub-issues, parse each Contract block, plan file-disjoint waves, dispatch one agent per sub-issue, verify, PR, close, repeat. Use when the user says "dispatch the spec", "run spec 40", "implement #40", "/git-spec-dispatch", "fan out that issue tree", "work the sub-issues in parallel", or hands over a parent issue and expects more than one agent on it. Boundary with `git-spec-plan`: that skill writes the tree (parent, sub-issues, Contract blocks) and this one runs it - a request to break work down, scope a spec, or draft sub-issues is `git-spec-plan`'s, not this skill's. Works with or without Herdr; chains to `herdr-dispatch` for the pane mechanics when inside it.
pivoshenko/pivoshenko.ai · ★ 6 · AI & Automation · score 81
Install: claude install-skill pivoshenko/pivoshenko.ai
# Spec Dispatch issue tree -> wave plan -> agents -> verify -> PR -> close -> repeat. `git-spec-plan` writes the tree and this runs it. Planning never fans out: the parent's acceptance criteria, the sub-issue split, and the `Contract` blocks that make waves provably safe all need whole-repo context, and each depends on the last. Only sub-issues fan out. Substrate-independent. Inside Herdr (`HERDR_ENV=1`) subagents are panes per the `Herdr` instruction, and the mechanics - budget, split, start, brief, collect, blocked, cleanup - belong to `herdr-dispatch`. Outside it, dispatch the same waves with the `Agent` tool. Either way this skill owns only what is spec-specific. ## Preconditions ```bash test "${HERDR_ENV:-}" = 1 # decides the substrate only, never whether to proceed gh issue view <parent> --json number,title,state ``` Parent closed -> stop and ask; a closed spec is not a work queue. No sub-issues -> send the user to `git-spec-plan`. **Never author a spec, a sub-issue, or a `Contract` block here.** ## Flow 1. Read the tree: ```bash gh issue view <parent> --json number,title,state gh api repos/{owner}/{repo}/issues/<parent>/sub_issues --jq '.[] | {number,title,state}' ``` `{owner}/{repo}` are `gh` placeholders - leave them literal, `gh` fills them from the current remote. Why -> `gh issue list` has no parent/child filter and native sub-issues surface only through the API, so listing by label or milestone silently returns a different set than t