specify
Skill98 starsChanged 9 months agoMITView on GitHub
Create feature specification from natural language description. Use when starting a new feature or creating a spec. Triggers on: create spec, specify feature, new feature spec.
We split this skill into the rules it gives an agent
23 rules. 0 are common, 17 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 25 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Create structured feature specifications from natural language descriptions.
- Distinctive: line 28
Every user requirement should be verifiable with tests
- Distinctive: line 29
Test scenarios should be part of each story
- Very specific: line 41
Create branch and feature directory in relentless/features/NNN-feature-name/
- Distinctive: line 50
Ask the user these specific questions:
- Very specific: line 53
"Allow free models in fallback?": - Default: yes
- Very specific: line 54
"Specific harness/model preference?": - Default: auto
- Distinctive: line 66
Run the create-new-feature script to set up the branch and directory:
- Very specific: line 84
Read relentless/constitution.md for project governance
- Distinctive: line 86
Keep these principles in mind while generating the spec
- Distinctive: line 87
Pay special attention to TDD requirements: - all features must be testable
- Distinctive: line 142
If aspects are unclear:
- Very specific: line 144
Only mark [NEEDS CLARIFICATION: specific question] if:
- Distinctive: line 147
No reasonable default exists
- Distinctive: line 151
If clarifications needed, present to user:
- Distinctive: line 172
Check the specification against:
- Distinctive: line 194
If validation fails, revise and re-check (max 3 iterations).
- Very specific: line 200
Write complete specification to SPEC_FILE from JSON output
- Distinctive: line 205
If validation fails, fix the errors and re-run
- Distinctive: line 207
Create progress.txt if it doesn't exist (note that markdown frontmatter must be properly formatted YAML):
- Distinctive: line 313
Always run the script first to get proper paths
- Distinctive: line 314
Use absolute paths from JSON output
- Distinctive: line 318
TDD readiness is non-negotiable: - all acceptance criteria must be testable
“Common” is measured: kept by at least 6 in 10 of the 25 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Feature Specification Generator
Create structured feature specifications from natural language descriptions.
SpecKit Workflow
This skill is Step 1 of 6 in the Relentless workflow:
specify → plan → tasks → analyze → implement (task by task) or relentless run --feature [FEATURE NAME] --tui
What flows to next step:
- User requirements → plan will create technical approach
- Routing preference → carried through all artifacts
- Acceptance criteria → basis for TDD in implementation
TDD is MANDATORY
The specification MUST include testable acceptance criteria:
- Every user requirement should be verifiable with tests
- Test scenarios should be part of each story
- Edge cases should be documented for test coverage
All acceptance criteria must be written in Given/When/Then format to enable direct test implementation.
The Job
- Receive feature description from user
- Confirm routing preference (Step 0)
- Generate short name and feature number
- Create branch and feature directory in
relentless/features/NNN-feature-name/ - Generate specification using template
- Validate specification quality (including TDD readiness)
- Save to
spec.md
Step 0: Confirm Routing Preference (BEFORE generating spec)
Ask the user these specific questions:
- "Which routing mode?" (free/cheap/good/genius) - Default:
good - "Allow free models in fallback?" - Default:
yes - "Specific harness/model preference?" - Default:
auto
Record the answer in spec.md metadata:
**Routing Preference**: auto: good | allow free: yes
<!-- Options: auto: free|cheap|good|genius | allow free: yes|no | OR specific: harness/model -->Step 1: Create Feature Structure
Run the create-new-feature script to set up the branch and directory:
.claude/skills/specify/scripts/bash/create-new-feature.sh --json "FEATURE_DESCRIPTION"This will output JSON with:
BRANCH_NAME: e.g., "003-user-auth"SPEC_FILE: Full path to spec.mdFEATURE_DIR: Full path to feature directoryFEATURE_NUM: e.g., "003"
Important: Parse this JSON and use these paths for all subsequent operations.
Step 2: Load Constitution & Context
- Read
relentless/constitution.mdfor project governance - Note any MUST/SHOULD rules that apply to specifications
- Keep these principles in mind while generating the spec
- Pay special attention to TDD requirements - all features must be testable
Step 3: Generate Specification
Using the template at templates/spec.md, create a specification with:
Required Sections:
1. Feature Overview
- One-paragraph summary
- User value proposition
- Problem being solved
2. User Scenarios & Testing
- Concrete user stories with priorities (P1, P2, P3...)
- Step-by-step flows
- Expected outcomes
- Given/When/Then acceptance scenarios (MANDATORY)
- Independent testability explanation for each story
3. Functional Requirements
- What the system must do
- Testable requirements (no implementation details)
- Clear success criteria
4. Test Strategy (MANDATORY)
- Unit test approach
- Integration test scenarios
- Edge case tests
- Test data requirements
5. Success Criteria
- Measurable, technology-agnostic outcomes
- Quantitative metrics (time, performance, volume)
- Qualitative measures (user satisfaction, task completion)
6. Key Entities (if applicable)
- Data models and relationships
- Fields and types (logical, not implementation)
7. Dependencies & Assumptions
- External systems required
- Prerequisites
- Assumptions made
8. Out of Scope
- What this feature explicitly does NOT include
- Future considerations
Step 4: Handle Ambiguities
If aspects are unclear:
- Interview the user first with questions to clarify any doubts, concerns or about his opinion on eventual ideas to improve the feature.
- Only mark
[NEEDS CLARIFICATION: specific question]if:- Choice significantly impacts scope or UX
- Multiple reasonable interpretations exist
- No reasonable default exists
- Question not already solved by interview
- LIMIT: Maximum 3 clarifications
If clarifications needed, present to user:
## Clarification Needed
**Q1: [Topic]**
Context: [Quote spec section]
Question: [Specific question]
Options:
A. [Option 1] - [Implications]
B. [Option 2] - [Implications]
C. Custom - [Your answer]
Your choice: _Step 5: Validate Quality
Check the specification against:
General Quality
- No implementation details (languages, frameworks, APIs)
- Focused on user value and business needs
- All requirements are testable
- Success criteria are measurable
- User scenarios cover primary flows
- Dependencies identified
- Scope clearly bounded
- No more than 3
[NEEDS CLARIFICATION]markers
TDD Readiness (MANDATORY)
- Every user story has Given/When/Then acceptance criteria
- Acceptance criteria are specific enough to write tests against
- Edge cases are documented for test coverage
- Test strategy section is complete
Routing Compliance
- Routing preference is recorded in metadata
- Routing choice is reasonable for feature complexity
If validation fails, revise and re-check (max 3 iterations).
Step 6: Save & Validate
- Write complete specification to
SPEC_FILEfrom JSON output - Run the validator to ensure spec.md is correctly formatted:
.claude/skills/validators/scripts/validate-spec.sh "$SPEC_FILE"- If validation fails, fix the errors and re-run
- Warnings are acceptable but should be reviewed
- Create progress.txt if it doesn't exist (note that markdown frontmatter must be properly formatted YAML):
--- feature: FEATURE_NAME started: DATE last_updated: DATE stories_completed: 0 routing_preference: "[auto: mode | allow free: yes/no]" --- # Progress Log: FEATURE_NAME - Report to user:
- Branch created:
BRANCH_NAME - Spec saved:
SPEC_FILE - Quality validation: PASSED/FAILED
- TDD readiness: PASSED/FAILED
- Routing preference: [recorded value]
- Next step:
/relentless.planor/relentless.clarify
- Branch created:
Example Output
# Feature: User Authentication
**Routing Preference**: auto: good | allow free: yes
## Overview
Enable users to create accounts and log in securely using email/password.
## User Scenarios
### User Story 1: New User Registration (Priority: P1)
User visits signup page, enters email and password, and creates an account.
**Why this priority**: Core functionality, blocks all other auth features.
**Independent Test**: Can be fully tested by registering a new account and verifying the account exists.
**Acceptance Scenarios**:
1. **Given** a visitor on the signup page, **When** they submit valid email and password, **Then** the account is created and confirmation email sent
2. **Given** an email already in use, **When** visitor tries to register, **Then** error message shown without revealing account exists
## Functional Requirements
**REQ-1:** System must validate email format
**REQ-2:** System must require passwords ≥ 8 characters
**REQ-3:** System must send confirmation email within 1 minute
**REQ-4:** System must hash passwords before storage
## Test Strategy (MANDATORY)
### Unit Test Approach
- Email validation logic
- Password strength validation
- Password hashing utility
### Integration Test Scenarios
- Full registration flow (submit form → create account → send email)
- Duplicate email rejection
### Edge Case Tests
- Invalid email formats (missing @, invalid domain)
- Password too short
- Unicode in email/password
### Test Data Requirements
- Valid test email addresses
- Various invalid email formats
- Password examples at boundary conditions
## Success Criteria
1. 95% of signups complete within 60 seconds
2. Zero plaintext passwords in database
3. Email confirmation rate > 80%
## Key Entities
**User**
- email: string (unique)
- password_hash: string
- confirmed: boolean
- created_at: timestamp
## Dependencies
- Email service provider (e.g., SendGrid, Mailgun)
- Session management system
## Out of Scope
- Social login (OAuth)
- Two-factor authentication
- Password reset (separate feature)Notes
- Always run the script first to get proper paths
- Use absolute paths from JSON output
- Validate before marking complete
- Keep specification technology-agnostic
- Focus on WHAT, not HOW
- TDD readiness is non-negotiable - all acceptance criteria must be testable
Other versions28 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 28
- ZaxbyHub/opencode-swarm★ 511same name
- zaxbysauce/opencode-swarm★ 503same name
- genkovich/sdd★ 187same name
- team-attention/hoyeon★ 173same name
- jantichy/claude★ 40same name
- mehrad-dm/mastermind★ 23same name
- agent-ix/quoin★ 20same name
- danielcherubini/skills★ 14same name
- ariadoss/superskills★ 12same name
- stormlightlabs/thunderus★ 4same name
18 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use spec-review, init and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillspec-review
Independent, multi-model review of a design or spec **before** any code is written, for the microsoft/winappcli repo. Activate when a contributor asks to "review this spec", "review my design", "review this design doc", "validate this approach", "should we build this", "spec review", "design review", or "feature review". Fans out parallel sub-agents — each doing its OWN research against the real codebase and ecosystem rather than trusting the spec — covering necessity & scope, approach & alternatives, feasibility vs reality, risks & unknowns, DX & user impact, and a different-model-family cross-check. Emits a decision-oriented recommendation (proceed / proceed-with-changes / reconsider) to stdout. This is the PRE-CODE companion to the pr-review skill (which reviews code already written); use spec-review at the design/spec stage, not on an implemented diff. Does NOT write code or edit the spec.
Also in 3 projects that use this
MicrosoftSkillinit
Also in 5 projects that use this
sahinSkillexecute
Also in 3 projects that use this
Itsokay-coSkilldiscover
Automated pattern discovery — finds what correlates with your best and worst sleep nights. Scans workouts, meals, caffeine, tags, gut scores, and timing patterns. Use when the user wants to know what actually affects their sleep.
Also in 3 projects that use this
Microsoft AzureSkillverify
End-to-end app testing pipeline for browser-based web apps on cloud browsers via Azure Playwright Workspaces: verify the live app, author tests for working flows, heal failing tests, then re-run with video and produce one consolidated report. Three phases (app verification, test authoring, test healing) plus a scoped final sanity run; each phase emits a sub-report. Use when asked to "verify my app", "make sure my app works and has good test coverage", "do a full QA pass", "add tests where I'm missing coverage", "fix failing tests and add new ones", "smoke test before deploy", "QA my deployment", or any combined verify-and-test ask. Requires Azure CLI (`az login`) and a Playwright Workspace resource ID — bootstraps configs on first invocation. Browser-based web apps with Playwright only — not for unit/API tests, native mobile/desktop, load/perf, or full accessibility audits.
Also in 10 projects that use this
Microsoft AzureSkilldesign
Design rules and conventions for the API Center Portal. Use when editing detail pages, card components, badges, layout, navigation, sidebars, or headers. Covers badge styling, metadata placement, page navigation patterns, and layout alignment.
Also in 5 projects that use this
- +1 more from microsoft
In this repository15 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- analyzeSkill
- checklistSkill
- clarifySkill
- constitutionSkill
- convertSkill
- implementSkill
- learnSkill
- planSkill
- prdSkill
- relentlessSkill
- tasksSkill
- taskstoissuesSkill
- validatorsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

