← ClaudeAtlas

speclisted

Write or revise the spec for one piece of work — the mandatory front door. Typed (feat | fix | adjust | refactor | perf | chore | docs). The agent drafts; the user steers the real decisions. Produces docs/specs/<date>_<slug>/spec.md.
melchimaelran/pact · ★ 1 · Testing & QA · score 80
Install: claude install-skill melchimaelran/pact
# spec — the typed front door Every piece of work starts here. See [`workflow-map.md`](../../references/workflow-map.md). Next step: `pact plan` (the flow picks depth from the spec's content — trivial `chore` / `docs` skip `plan`). **Reuse-first** ([`reuse-first.md`](../../references/reuse-first.md)): read `project.md`, the constitution, existing specs, and directly-related source first. Do not re-ask what they already answer. ## Routing check (do first) - A plan already exists and you want to implement -> `pact build`. - New behavior that is really a bug -> keep `type: fix`, but a bug in **shipped** code with no story yet -> `pact fix` (it reproduces + writes the failing test). - You already know the fix and want to apply it -> still a `spec` (`type: fix`), then `plan`/`build`. ## Phase 0 — schema gate `pact schema --gate`. Mismatch -> stop, tell the user to run `/pact:migrate`. No `.pact/` -> stop, tell the user to run `/pact:init`. ## Phase 1 — resolve CREATE vs ADJUST Parse `$ARGUMENTS`: - Starts with a **type** + a quoted description -> CREATE. - An existing **slug** or **`SP-NNN`** (glob `docs/specs/*/spec.md` for a match) -> ADJUST that spec. - A **notes file** path -> CREATE, using the file as raw input; infer the type. - Ambiguous / empty -> if any `docs/specs/*/spec.md` exist, list them and ask CREATE vs ADJUST with `AskUserQuestion`; else CREATE and ask for the type. Valid types: `feat`, `fix`, `adjust`, `refactor`, `perf`, `chore`, `docs`. ## Ph