speckit-specify

Generate validated feature specifications from natural language descriptions in spec-kit projects.

32|9|Updated Feb 2, 2024
One-click install
npx skills add https://github.com/Esri/arcgis-gitops --skill speckit-specify-esri
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: speckit-specify
Source: https://github.com/Esri/arcgis-gitops/tree/main/.github/skills/speckit-specify
Command: npx skills add https://github.com/Esri/arcgis-gitops --skill speckit-specify-esri

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Turning a rough feature idea into a complete, testable specification is slow and error-prone. This Skill converts a natural language feature description into a structured spec.md file with user scenarios, functional requirements, and measurable success criteria, ready for planning. ## Core Features & Use Cases - Specification Generation: Creates a numbered feature directory under specs/ with a spec.md file built from the resolved spec-template, covering user scenarios, requirements, and success criteria. - Quality Validation: Generates a requirements checklist and iteratively validates the spec against completeness, testability, and technology-agnostic criteria, with up to 3 clarification questions for ambiguous points. - Extension Hooks: Executes optional and mandatory before_specify and after_specify hooks defined in .specify/extensions.yml, such as automatic git branch creation. - Use Case: A product owner types a feature idea like "add OAuth2 login for the mobile app" and receives a complete, validated specification at specs/003-oauth2-login/spec.md ready for /speckit-plan. ## Quick Start Ask the assistant to create a feature specification for your idea, for example: create a spec for adding user authentication with OAuth2 to the application.

Frequently Asked Questions about speckit-specify

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a feature specification from a text description?

Invoke the specify command with your feature description as the argument. The skill generates a short name, creates a numbered directory under specs/, and writes a spec.md file with user scenarios, functional requirements, and success criteria based on the resolved spec template.

What is spec-kit and how does the specify command fit in?

Spec-kit is a spec-driven development toolkit where features flow through specify, clarify, plan, and tasks phases. The specify command is the entry point that produces the validated spec.md consumed by downstream commands like /speckit-plan and /speckit-tasks.

Does speckit-specify require a specific project structure?

Yes, it requires a spec-kit project with a .specify/ directory. It reads .specify/init-options.json for feature numbering, .specify/memory/constitution.md for governance constraints, and .specify/extensions.yml for optional hooks.

How are feature directories numbered in spec-kit?

Numbering is controlled by feature_numbering in .specify/init-options.json. The sequential mode assigns the next 3-digit number like 003-user-auth, while timestamp mode uses a YYYYMMDD-HHMMSS prefix. The resolved path is persisted to .specify/feature.json.

What happens when the specification has unclear requirements?

The skill marks critical ambiguities with up to 3 NEEDS CLARIFICATION markers, then presents each as a multiple-choice question with suggested answers and implications. After you respond, it updates the spec and re-runs the quality validation checklist.

Why did my before_specify or after_specify hook not run?

Hooks are skipped if .specify/extensions.yml is missing, the hook has enabled set to false, or it defines a non-empty condition expression, which is left to the HookExecutor. Invalid YAML is reported to the user rather than skipped silently.