Create a new spec-sync module spec.
Arguments: $ARGUMENTS
- Remove
--minimalwherever it appears and remember that minimal mode was requested. Preserve the complete remaining text; do not tokenize it yet. - Classify the complete remaining text:
- A bare module name β a short identifier like
auth-serviceorbilling, matching^[A-Za-z0-9][A-Za-z0-9._-]*$. Use it as-is. - A free-text feature description β a sentence or phrase describing
what to build, e.g.
"I want a feature that lets users export their data as CSV". In this case, invent a short, kebab-case module name that captures the idea (e.g.csv-export). If the right name is ambiguous, ask the user to confirm or rename it before continuing. Keep the full description at hand β you'll use it in step 5.
- A bare module name β a short identifier like
- If minimal mode was requested, run:
This creates a minimal spec only (no companion files).
specsync new <module-name> - Otherwise (default), run:
This creates the spec, companion files (
specsync scaffold <module-name>tasks.md,requirements.md,context.md,testing.md, anddesign.mdifcompanions.designis enabled), a registry entry, and auto-detects related source files. - Open the newly created
specs/<module-name>/<module-name>.spec.mdand fill in thePurpose,Requirements, andPublic APIsections. If a free-text description was given in step 2, use it directly to draft these sections β ask clarifying questions if it's underspecified, but do not leave the sections as unfilled placeholder text. Do the same forrequirements.md(acceptance criteria) andtasks.md(initial task breakdown), if present. - Run
specsync checkto confirm the new spec passes validation.