spec-kit/skills/specify/SKILL.md
Use when the user invokes $spec-kit:specify or /spec-kit:specify, or asks to create a brownfield-aware feature specification from a natural language description.
npx skillsauth add grailautomation/claude-plugins specifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This is a user-invoked Spec Kit workflow. Treat user text after the invocation as the workflow input.
Use the spec-kit plugin root when running bundled scripts. In Claude Code, ${CLAUDE_PLUGIN_ROOT} resolves to this plugin root. If that variable is unavailable, resolve the plugin root as the directory two levels above this SKILL.md.
The text after /spec-kit:specify is the feature description. Do not ask the
user to repeat it unless it is empty.
User input:
$ARGUMENTS
If the input is empty, respond with: "Please provide a feature description.
Example: /spec-kit:specify build a REST API for managing photo albums"
Create a concise but executable feature spec that delivers most of Spec Kit's benefit with less ceremony. The spec must work well for existing repositories: it should describe the user-visible change and validation needs without inventing a new architecture.
README.md, AGENTS.md, package/tooling files, and existing tests.specify/memory/project-context.md and constitution, if presentbash "${CLAUDE_PLUGIN_ROOT}/scripts/detect-project-context.sh" --write
If the plugin root is not exposed by the runtime, locate the bundled script
in the installed spec-kit/scripts/ directory and run that absolute path.--no-branch.Create the feature directory by running the bundled script exactly once from the project root:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/create-feature.sh" $ARGUMENTS
If using current-branch mode:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/create-feature.sh" --no-branch $ARGUMENTS
Parse JSON for BRANCH_NAME, SPEC_FILE, FEATURE_NUM, and FEATURE_DIR.
All subsequent file paths must be absolute. In current-branch or non-git
mode, tell the user to set SPECIFY_FEATURE=<BRANCH_NAME> for follow-up
commands unless they export it in the current shell/session.
Load:
.specify/memory/constitution.md, if present.specify/memory/project-context.md, if presentExtract from the feature description:
Write SPEC_FILE with this structure:
# Feature Specification: [FEATURE NAME]
**Feature Branch**: `[BRANCH_NAME]`
**Created**: [today's date]
**Status**: Draft
**Repo Fit**: [one sentence naming the existing area/pattern this feature should fit]
## Overview
[1-2 paragraph summary of what this feature does and why it matters]
## User Scenarios & Acceptance Criteria
### Primary User Story
[Main user journey in plain language]
### Acceptance Scenarios
1. **Given** [initial state], **When** [action], **Then** [expected outcome]
2. **Given** [initial state], **When** [action], **Then** [expected outcome]
### Edge Cases
- [Boundary or error case]
- [Failure or permission case]
## Requirements
### Functional Requirements
- **FR-001**: System MUST [specific testable capability]
- **FR-002**: System MUST [specific testable capability]
### Non-Functional Requirements
- **NFR-001**: [Performance, reliability, observability, security, or UX criterion if material]
### Key Entities
- **[Entity]**: [What it represents, key attributes, relationships]
## Scope
- **In Scope**: [included behavior]
- **Out of Scope**: [excluded behavior]
## Review Checklist
- [ ] Requirements are testable and unambiguous
- [ ] Success criteria are measurable
- [ ] Scope is clearly bounded
- [ ] Existing repo patterns are named or uncertainty is marked
- [ ] No implementation details beyond constraints already present in the repo
- [ ] Material unknowns are marked with `[NEEDS CLARIFICATION: specific question]`
Quality rules:
[NEEDS CLARIFICATION].Report:
/spec-kit:clarify only if material markers remain,
otherwise /spec-kit:plandevelopment
Parse and analyze Workato recipe JSON exports. Use when the user asks about a Workato recipe's logic, data flow, field mappings, error handling, or control flow. Also use when the user references a .recipe.json file or asks to debug a Workato integration.
databases
Review implementation plans as a staff software engineer. Use when the user asks for staff engineer feedback, senior engineering review, plan review, architecture review, implementation-plan critique, approval before proceeding, risk review, or feedback on a proposed technical plan.
tools
Use when the user invokes $spec-kit:tasks or /spec-kit:tasks, or asks to generate dependency-ordered tasks from the plan and repo context.
tools
Use when the user asks how to use the spec-kit plugin, wants advice on spec-driven development, needs help choosing the next spec-kit workflow step, or asks for review of existing .specify specs, plans, tasks, constitution, or project context.