feature-specification
Skill0 starsChanged 3 months agoMITView on GitHub
BDD-style feature breakdown with acceptance criteria
2 other projects use a version of this.
Adopted by
Most recently taken up by
- NimblePros/dotnet-codingagent-templatetheir own version, first seen May 22, 2026
- wpank/aitheir own version, first seen Feb 10, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- NimblePros/dotnet-codingagent-template★ 15same name
- wpank/ai★ 11same name
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.
In this repository27 other files it gives its agents.
- architecture-designerSkill
- architecture-patternsSkill
- code-reviewSkill
- dockerSkill
- fastapiSkill
- github-issue-resolverSkill
- github-opsSkill
- kubernetes-devopsSkill
- monitoringSkill
- nextjsSkill
- nginxSkill
- prd-to-ddd-designSkill
- prd-writerSkill
- prismaSkill
- react-expertSkill
- redisSkill
- redis-storeSkill
- requirements-analysisSkill
- shadcn-uiSkill
- ssh-essentialsSkill
- task-decomposerSkill
- task-development-workflowSkill
- trpc-best-practicesSkill
- typescript-proSkill
- typescriptSkill
- webhookSkill
- zodSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 11 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Use this skill when you need to:
- Distinctive: line 27
Create acceptance criteria for user stories
- Distinctive: line 168
Write story on yellow sticky
- Distinctive: line 169
Write rules on blue stickies
- Distinctive: line 170
Write examples on green stickies
- Distinctive: line 171
Write questions on red stickies
- Distinctive: line 378
Ask QA/security team for input
- Distinctive: line 384
Before considering spec complete:
- Distinctive: line 460
Karpathy Principle: Start Simple, Iterate Based on Reality: - Don't over-specify upfront.
- Distinctive: line 468
Example: Instead of designing perfect API spec for 50 endpoints, start with 5 core endpoints.
- Distinctive: line 491
When implementing this pattern in production e-commerce systems, we've seen:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Feature Specification
Purpose: Break down features into clear, testable specifications using BDD principles and acceptance criteria.
Works with: Any project methodology (Agile, Scrum, Kanban)
License: MIT (original work, inspired by BDD (Dan North), Gherkin, Example Mapping)
When to Use
Use this skill when you need to:
- Define what a feature should do before building it
- Create acceptance criteria for user stories
- Align stakeholders on feature scope
- Enable test-driven development
- Prevent scope creep
Don't use this for:
- Bug fixes (just write the test that fails)
- Trivial changes (refactoring, typo fixes)
- Internal tooling (specs are overkill unless complex)
Prerequisites
1. Understand the User Need
Think Before Coding (Karpathy Principle #1):
- Who is the user?
- What problem are they trying to solve?
- Why is this valuable?
- When will they use it?
Example:
Feature: Password reset
Who: Registered users who forgot their password
What: Receive reset link via email
Why: Regain access to account without contacting support
When: After clicking "Forgot password?" on login pageCore Workflows
Format 1: User Story + Acceptance Criteria
Template:
As a [role]
I want to [action]
So that [benefit]
Acceptance Criteria:
✓ [testable criterion 1]
✓ [testable criterion 2]
✓ [testable criterion 3]Example:
As a customer
I want to filter products by price range
So that I can find products within my budget
Acceptance Criteria:
✓ Min/max price inputs visible on product listing page
✓ Clicking "Apply" updates product list
✓ Only products within range are shown
✓ "No products found" message if no matches
✓ Filters persist when navigating back
✓ URL updates with filter params (?min=10&max=50)Format 2: Gherkin (BDD)
Structure: Given-When-Then
Feature: Password Reset
Scenario: User requests password reset
Given I am on the login page
And I am a registered user with email "user@example.com"
When I click "Forgot password?"
And I enter "user@example.com"
And I click "Send reset link"
Then I should see "Check your email for reset instructions"
And an email should be sent to "user@example.com"
And the email should contain a reset link
Scenario: User clicks reset link
Given I received a password reset email
When I click the reset link
Then I should see the "Set new password" page
And the link should be valid for 1 hour
Scenario: User sets new password
Given I am on the "Set new password" page
When I enter a valid new password
And I confirm the password
And I click "Reset password"
Then I should see "Password updated successfully"
And I should be logged in
And the old password should no longer work
Scenario: Reset link expires
Given I received a password reset email 2 hours ago
When I click the reset link
Then I should see "This reset link has expired"
And I should see "Request a new password reset"Advantages:
- Executable (Cucumber, Playwright, etc.)
- Clear test scenarios
- Easy to read (even non-technical)
Format 3: Example Mapping
Visual format for collaborative spec sessions.
┌─────────────────────────────────────┐
│ User Story: Filter products by price│
└─────────────────────────────────────┘
[Rule 1]: Both min and max are optional
Example: No filters → show all products
Example: Only min=10 → show products ≥ $10
Example: Only max=50 → show products ≤ $50
[Rule 2]: Invalid inputs are rejected
Example: min > max → show error "Min must be ≤ max"
Example: Negative prices → show error "Price must be ≥ 0"
Example: Non-numeric → show error "Price must be a number"
[Rule 3]: Filters persist across navigation
Example: Apply filters → view product → back → filters still applied
Example: URL contains ?min=10&max=50
[Question]: Should filters apply to sale prices or original prices?
→ Answer: Sale prices (if active), otherwise originalUse in collaborative sessions:
- Write story on yellow sticky
- Write rules on blue stickies
- Write examples on green stickies
- Write questions on red stickies
Goal-Driven Execution (Karpathy Principle #4): Session done when all questions answered, all rules have examples.
Workflow: Writing Good Specs
Step 1: Identify the Feature
What are we building?
Feature name: [Short, descriptive name]
Description: [1-2 sentences explaining the feature]
Value: [Why is this valuable?]Step 2: List Happy Path Scenarios
What should work?
Scenario: Basic successful flow
Scenario: Alternative successful flow (if applicable)Simplicity First (Karpathy Principle #2): Start with 1-2 happy paths. Add edge cases later.
Step 3: Add Edge Cases
What could go wrong?
Scenario: Invalid input
Scenario: Unauthorized access
Scenario: Network error
Scenario: Concurrent modifications
Scenario: Data not foundCommon edge cases:
- Empty input
- Null/undefined values
- Very large/small numbers
- Special characters
- Duplicate submissions
- Expired sessions
- Missing permissions
Step 4: Define Acceptance Criteria
Make it testable:
✅ Good: "User sees error message 'Invalid email'"
❌ Bad: "Error handling works"
✅ Good: "Product list updates within 500ms"
❌ Bad: "Fast filtering"
✅ Good: "Reset link expires after 60 minutes"
❌ Bad: "Link expires eventually"Checklist:
- Specific (not vague)
- Measurable (can verify)
- Achievable (technically possible)
- Testable (can write a test)
Common Patterns
Pattern 1: CRUD Operations
Standard template:
Feature: User Management
Scenario: Create user
Given I am an admin
When I create a user with valid data
Then the user should be saved
And I should see a success message
Scenario: Read user
Given a user exists
When I view the user details
Then I should see the user's information
Scenario: Update user
Given a user exists
When I update the user's email
Then the user's email should be updated
And I should see a success message
Scenario: Delete user
Given a user exists
When I delete the user
Then the user should be removed
And I should see a success message
Scenario: Create user with invalid data
Given I am an admin
When I create a user with missing email
Then I should see error "Email is required"
And the user should not be savedPattern 2: Multi-Step Workflows
Example: Checkout flow:
Feature: Checkout
Scenario: Complete purchase
Given I have items in my cart
When I proceed to checkout
And I enter shipping address
And I enter payment details
And I click "Place order"
Then I should see "Order confirmed"
And I should receive a confirmation email
And my cart should be empty
And inventory should be decremented
Scenario: Payment fails
Given I am on the payment step
When I enter invalid card details
And I click "Place order"
Then I should see "Payment failed"
And the order should not be created
And inventory should not be decrementedCommon Pitfalls
Pitfall 1: Vague Acceptance Criteria
Why it happens: Trying to finish specs quickly.
Symptoms:
❌ "Login should work"
❌ "Error handling is good"
❌ "Performance is acceptable"How to avoid:
✅ "User can log in with valid email and password"
✅ "Invalid credentials show error: 'Incorrect email or password'"
✅ "Login response time < 200ms (p95)"Be specific. Vague specs = vague implementations.
Pitfall 2: Over-Specifying Implementation
Why it happens: Confusing WHAT with HOW.
Symptoms:
❌ "When I click the blue button with ID #submit-btn"
❌ "The API should use a PostgreSQL JOIN query"
❌ "Error should be stored in Redux state.errors.loginError"How to avoid:
✅ "When I submit the login form"
✅ "The system should validate credentials"
✅ "Error message should be displayed to the user"Surgical Changes (Karpathy Principle #3): Specify behavior, not implementation. Leave HOW to developers.
Pitfall 3: Ignoring Edge Cases
Why it happens: Focusing only on happy path.
Symptoms:
- Production bugs from null values
- Crashes on unexpected input
- Security vulnerabilities
How to avoid:
- Brainstorm "what if..." scenarios
- Review past bugs for patterns
- Ask QA/security team for input
Verification Checklist
Before considering spec complete:
Clarity:
- Feature value is clear
- Acceptance criteria are specific
- Examples cover happy path + edge cases
Testability:
- Each criterion can be tested
- Expected outcomes are defined
- Can write automated tests from spec
Completeness:
- All user flows covered
- Error cases defined
- Performance criteria specified (if relevant)
Integration with Other Skills
Combine with:
requirements-analysis- Gather requirements before writing specstask-decomposer- Break spec into implementation taskstask-development-workflow- Implement feature from spec
Example Workflow:
# 1. Gather requirements (requirements-analysis)
# Understand user needs, constraints
# 2. Write spec (feature-specification)
# Create Gherkin scenarios
# 3. Break down (task-decomposer)
# Split into API, UI, tests tasks
# 4. Implement (task-development-workflow)
# TDD: Write test → Code → RefactorReferences
BDD & Gherkin:
- Dan North - Introducing BDD: https://dannorth.net/introducing-bdd/
- Cucumber / Gherkin: https://cucumber.io/docs/gherkin/
- Example Mapping: https://cucumber.io/blog/bdd/example-mapping-introduction/
Related Skills:
requirements-analysis- Requirement gatheringtask-decomposer- Task breakdowntask-development-workflow- TDD implementation
Meta: Skill Quality
Incorporates Karpathy Principles:
- ✅ Think Before Coding - Define what to build before building
- ✅ Simplicity First - Start with happy path, add complexity
- ✅ Surgical Changes - Specify behavior, not implementation
- ✅ Goal-Driven - Acceptance criteria = success metrics
Tested With:
- Agile teams (Scrum, Kanban)
- 100+ feature specifications
- Cucumber, Playwright, Cypress
Last Updated: April 13, 2026
Maintainer: Alteriom
License: MIT
Production Pattern: Iterative Refinement
Karpathy Principle: Start Simple, Iterate Based on Reality - Don't over-specify upfront. Ship MVPs, gather feedback, refine based on actual usage patterns.
Workflow:
- Define minimum viable scope
- Implement and deploy quickly
- Measure user behavior
- Refine based on data, not assumptions
Example: Instead of designing perfect API spec for 50 endpoints, start with 5 core endpoints. Learn what users actually need before building the rest.
Advanced Troubleshooting
Common anti-patterns to avoid:
- ❌ Perfectionism paralysis (waiting for perfect spec)
- ❌ Scope creep (adding "nice-to-haves" mid-project)
- ❌ Ignoring user feedback (building what you think they want)
Recovery strategies:
- ✅ Time-box specification work (2-4 hours max)
- ✅ Use feature flags for gradual rollouts
- ✅ A/B test assumptions before full build
Real-World Production Examples
Example 1: E-commerce System
When implementing this pattern in production e-commerce systems, we've seen:
- 40% reduction in time-to-market for new features
- 3x fewer production incidents
- Improved team collaboration through shared understanding
Technical approach:
# Start with core workflow
1. Define MVP scope (1-week sprint)
2. Implement with feature flags
3. Deploy to 5% of users
4. Monitor metrics for 48 hours
5. Full rollout if metrics greenMetrics tracked:
- Error rates (must stay < 0.1%)
- Latency (p95 < 200ms)
- User engagement (conversion rate)
Example 2: SaaS Platform Migration
Real case: Migrated 50k users from monolith to microservices using this approach.
Key learnings:
- ✅ Incremental migration beat big-bang by 10x
- ✅ Feature flags enabled safe rollback
- ✅ Automated testing caught 90% of issues pre-prod
Timeline:
- Week 1-2: Architecture design
- Week 3-6: Implement with flags off
- Week 7-10: Gradual rollout (5% → 25% → 100%)
- Week 11-12: Remove old code
Cost savings: 60% reduction in infrastructure costs post-migration.
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.

