spec
Turn a natural-language feature request into specs/<feature>/spec.md, with acceptance criteria written in EARS notation wherever a criterion is testable. Use this at the start of any new feature, befo
Files1
View on GitHubSKILL.md.claude/skills/spec/SKILL.md
GitHubGiven a natural-language description of a feature (from the user's message or $ARGUMENTS):
- Pick a short kebab-case feature slug (e.g.
newsletter-signup) and createspecs/<slug>/spec.mdfromspecs/_TEMPLATE/spec.md. - Write:
- Summary — one paragraph, what and why.
- Acceptance criteria — one EARS line per testable behavior, numbered
EARS-1,EARS-2, ... Use the 6 patterns (Ubiquitous / Event-driven / State-driven / Optional feature / Unwanted behaviour / Complex) — never a vague "should work" line. - Out of scope — explicitly list what this spec does NOT cover, to stop scope creep
later in
/implement. - Critical flows — name any flow that involves money, personal data, or auth; these
become
critical: truetasks later and require Playwright coverage (SPEC.md §8).
- Do not write plan.md or tasks.md — that is
/plan's job, after this spec is approved. - Stop and present the spec for human approval (GATE humano). Do not proceed to
/planin the same turn unless explicitly told to.
If the request is ambiguous, ask instead of guessing — an ambiguous EARS line is worse than no EARS line.