speclisted
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