← ClaudeAtlas

git-spec-planlisted

Turn a plan, design discussion, or feature request into a GitHub issue tree - one parent `spec:` issue plus native sub-issues, one per task, each carrying a machine-readable Contract block (`files:` / `needs:` / `verify:`) so the tasks can later be fanned out to parallel agents provably safely. Use when the user says "spec this out", "plan this as issues", "break this into tickets", "/git-spec-plan", "turn this into a spec", "decompose this", "what are the tasks for X", or whenever a design discussion has converged and needs to become tracked work. This is the planning half of spec-driven development; `git-spec-dispatch` is the execution half and reads exactly what this skill writes. Boundary with `git-issue-create`: one indivisible piece of work is a single issue, not a tree.
pivoshenko/pivoshenko.ai · ★ 6 · AI & Automation · score 81
Install: claude install-skill pivoshenko/pivoshenko.ai
# Spec Plan converged plan -> survey repo -> decompose -> check disjointness -> parent issue -> sub-issues -> native links -> print tree. **Planning is sequential and stays with you.** Never fan decomposition out to agents. Why -> deciding task boundaries needs whole-repo context in one head, and every task's `files:` set depends on the ones already assigned; parallel planners produce overlapping slices that cannot be reconciled after the fact. Only execution fans out, and that is `git-spec-dispatch`'s job. Bodies obey **Length** below. Labels resolve through the chain below, never hardcoded. ## Flow 1. **Establish the change.** What, why, done-when. Thin or ambiguous input -> ask before writing anything. Why -> a spec tree built on a guess costs more to unpick than to ask: every sub-issue, every `files:` set, and every branch downstream inherits the wrong scope 2. **Survey the repo for real file boundaries.** Read the module layout (`ls`, the project's `CLAUDE.md`/`README`, the entry points). Find the seams - where does one module stop calling into another. Check what already exists so a task says "extend" rather than "add" a thing already there. Grep for the nouns the user used. Why -> this is what makes `files:` accurate rather than aspirational, and an aspirational `files:` is a clobber waiting to happen in wave 1 3. **Decompose into tasks.** Each task is a vertical slice that leaves the tree green on its own - it builds, it passes `verify:`, it could ship alone. Pre