---
description: Draft a one-page spec from a ticket, notes or a thread. Asks instead of guessing.
scripts:
  sh: scripts/bash/create-new-feature.sh --json
  ps: scripts/powershell/create-new-feature.ps1 -Json
  py: scripts/python/create_new_feature.py --json
---

## User Input

```text
$ARGUMENTS
```

The input is whatever already exists: a ticket, notes, a thread, a design doc.
It can be messy and incomplete.

## Outline

1. Pick a two-to-four word kebab-case short name, like `order-export`.
   Run `{SCRIPT}` once from the repo root, followed by the short name and a
   one-line summary: `--short-name "<short-name>" "<summary>"` for a bash or
   Python script, `-ShortName "<short-name>" "<summary>"` for PowerShell. It
   creates the feature directory, copies the spec template to `SPEC_FILE`, and
   records the feature in `.specify/feature.json`. Read `SPEC_FILE`: that copy
   is the template to fill. Don't read `.specify/templates/spec-template.md`:
   it's Spec Kit's default template, not this preset's.

2. Read `.specify/memory/constitution.md`. Rules that hold for every change
   live there. Don't repeat them in the spec.

3. Find the existing file to copy: the closest thing in this repo to what's
   being built, such as a neighbouring endpoint, handler or job. Read it. Put
   it on the **Like** line with what to copy from it.

4. Fill `SPEC_FILE` from the input, keeping the template's headings:
   - **Why**: the pain, not the solution. Three lines at most.
   - **What to build**: the thing, its interface, what it returns, and the
     Like file. Implementation detail is expected here.
   - **Rules**: FR-001, FR-002 and so on. MUST or NEVER, never "should".
     One Given/When/Then example each, with real values. Include what must
     keep working.
   - **Out of scope**: only what the input says. Never invent an item.
   - **Done when**: never invent the command.

5. Wherever the input doesn't decide something, write
   `[NEEDS CLARIFICATION: <question>]` in place. Don't guess.

6. Ask at most three questions, all together, most important first. Give two to
   four options for each and say which you'd pick. Ask for the Done-when
   command if it's missing, and ask about scope if a mature version of this
   feature would obviously have more parts than the input asks for. Write each
   answer into the spec and remove its marker.

7. Delete the template's comments and any section left empty. The spec should
   fit on one page. If it needs more than eight rules, say so: it's probably
   two features.

## Report

`SPEC_FILE`, any marker still open, and the next step: `/speckit-implement`
for a change this size, or `/speckit-plan` if it needs a design first.
