Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create or update feature specifications from natural language descriptions. Use when starting new features or refining requirements. Generates spec.md with user stories, functional requirements, and acceptance criteria following spec-driven development methodology.
.claude/skills/foryourhealth111-pixel-speckit-specify/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 283% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 107% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 112% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 117% | 0% |
text$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
The text the user typed after /speckit.specify in the triggering message is the feature description. Assume you always have it available in this conversation even if $ARGUMENTS appears literally below. Do not ask the user to repeat it unless they provided an empty command.
Given that feature description, do this:
a. First, fetch all remote branches to ensure we have the latest information:
bash git fetch --all --prune
b. Find the highest feature number across all sources for the short-name:
git ls-remote --heads origin | grep -E 'refs/heads/[0-9]+-<short-name>$'git branch | grep -E '^[* ]*[0-9]+-<short-name>$'specs/[0-9]+-<short-name>c. Determine the next available number:
d. Run the script .specify/scripts/powershell/create-new-feature.ps1 -Json "$ARGUMENTS" with the calculated number and short-name:
--number N+1 and --short-name "your-short-name" along with the feature description.specify/scripts/powershell/create-new-feature.ps1 -Json "$ARGUMENTS" --json --number 5 --short-name "user-auth" "Add user authentication".specify/scripts/powershell/create-new-feature.ps1 -Json "$ARGUMENTS" -Json -Number 5 -ShortName "user-auth" "Add user authentication"IMPORTANT:
.specify/templates/spec-template.md to understand required sections.If empty: ERROR "No feature description provided"
Identify: actors, actions, data, constraints
If no clear user flow: ERROR "Cannot determine user scenarios"
Each requirement must be testable Use reasonable defaults for unspecified details (document assumptions in Assumptions section)
Create measurable, technology-agnostic outcomes Include both quantitative metrics (time, performance, volume) and qualitative measures (user satisfaction, task completion) Each criterion must be verifiable without implementation details
a. Create Spec Quality Checklist: Generate a checklist file at FEATURE_DIR/checklists/requirements.md using the checklist template structure with these validation items:
markdown # Specification Quality Checklist: FEATURE NAME]
Purpose: Validate specification completeness and quality before proceeding to planning Created: DATE] Feature: Link to spec.md]
## Content Quality
## Requirement Completeness
## Feature Readiness
## Notes
/speckit.clarify or /speckit.planb. Run Validation Check: Review the spec against each checklist item:
c. Handle Validation Results:
markdown ## Question N]: Topic]
Context: Quote relevant spec section]
What we need to know: Specific question from NEEDS CLARIFICATION marker]
Suggested Answers:
| Option | Answer | Implications | |--------|--------|--------------| | A | First suggested answer] | What this means for the feature] | | B | Second suggested answer] | What this means for the feature] | | C | Third suggested answer] | What this means for the feature] | | Custom | Provide your own answer | Explain how to provide custom input] |
Your choice: _Wait for user response]_
| Content | not |Content||--------|d. Update Checklist: After each validation iteration, update the checklist file with current pass/fail status
/speckit.clarify or /speckit.plan).NOTE: The script creates and checks out the new branch and initializes the spec file before writing.
When creating this spec from a user prompt:
Examples of reasonable defaults (don't ask about these):
Success criteria must be:
Good examples:
Bad examples (implementation-focused):
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 6,190 | 6,805 | +10% | 1 | 1 | 0% | 493 | 3,294 | +568% | 0 | 0 | — |
case-02 | fail→fail | 21,300 | 4,885 | -77% | 1 | 1 | 0% | 4,070 | 3,223 | -21% | 0 | 0 | — |
case-03 | fail→fail | 4,281 | 5,912 | +38% | 1 | 1 | 0% | 364 | 3,246 | +792% | 0 | 0 | — |
case-04 | fail→fail | 3,586 | 5,519 | +54% | 1 | 1 | 0% | 589 | 3,190 | +442% | 0 | 0 | — |
case-05 | pass→pass | 2,419 | 2,575 | +6% | 1 | 1 | 0% | 419 | 3,267 | +680% | 0 | 0 | — |
case-06 | fail→pass | 5,811 | 7,566 | +30% | 1 | 1 | 0% | 995 | 3,807 | +283% | 0 | 0 | — |
case-15 | fail→pass | 10,109 | 2,439 | -76% | 1 | 1 | 0% | 1,607 | 3,331 | +107% | 0 | 0 | — |
case-07 | fail→pass | 16,601 | 16,498 | -1% | 1 | 1 | 0% | 2,698 | 5,733 | +112% | 0 | 0 | — |
case-08 | fail→pass | 11,850 | 3,374 | -72% | 1 | 1 | 0% | 1,925 | 3,394 | +76% | 0 | 0 | — |
case-09 | pass→pass | 7,582 | 3,129 | -59% | 1 | 1 | 0% | 1,332 | 3,339 | +151% | 0 | 0 | — |
case-10 | pass→pass | 10,346 | 15,071 | +46% | 1 | 1 | 0% | 1,571 | 4,726 | +201% | 0 | 0 | — |
case-16 | fail→fail | 7,729 | 4,140 | -46% | 1 | 1 | 0% | 1,254 | 3,217 | +157% | 0 | 0 | — |
case-11 | fail→pass | 8,018 | 2,381 | -70% | 1 | 1 | 0% | 1,452 | 3,156 | +117% | 0 | 0 | — |
case-12 | pass→pass | 10,619 | 2,809 | -74% | 1 | 1 | 0% | 1,719 | 3,279 | +91% | 0 | 0 | — |
case-13 | pass→pass | 8,282 | 1,825 | -78% | 1 | 1 | 0% | 1,365 | 3,083 | +126% | 0 | 0 | — |
case-14 | pass→pass | 9,594 | 9,993 | +4% | 1 | 1 | 0% | 1,887 | 4,844 | +157% | 0 | 0 | — |
case-17 | pass→pass | 4,529 | 2,023 | -55% | 1 | 1 | 0% | 725 | 3,191 | +340% | 0 | 0 | — |
case-18 | pass→pass | 7,171 | 2,845 | -60% | 1 | 1 | 0% | 1,118 | 3,172 | +184% | 0 | 0 | — |
case-19 | fail→pass | 9,880 | 2,733 | -72% | 1 | 1 | 0% | 1,723 | 3,299 | +91% | 0 | 0 | — |
case-20 | pass→fail | 17,964 | 9,197 | -49% | 1 | 1 | 0% | 3,285 | 3,457 | +5% | 0 | 0 | — |
case-21 | fail→fail | 14,695 | 8,698 | -41% | 1 | 1 | 0% | 3,250 | 3,459 | +6% | 0 | 0 | — |
case-22 | pass→fail | 2,755 | 11,684 | +324% | 1 | 1 | 0% | 406 | 3,208 | +690% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 15 counted toward the lift figure. The other 7 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +18 percentage points is the difference between those two pass rates over the 15 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.