BMAD-METHOD/.claude/templates/feature-specification.md

6.2 KiB

Feature Specification: {{feature_name}}

Feature ID: {{feature_id}}
Created: {{creation_date}}
Status: {{status}}
Priority: {{priority}} Input: User description: "{{user_description}}"

Execution Flow (SDD Approach)

1. Parse user description from Input
   → If empty: ERROR "No feature description provided"
2. Extract key concepts from description
   → Identify: actors, actions, data, constraints
3. For each unclear aspect:
   → Mark with [NEEDS CLARIFICATION: {{specific_question}}]
4. Fill User Scenarios & Testing section
   → If no clear user flow: ERROR "Cannot determine user scenarios"
5. Generate Functional Requirements
   → Each requirement must be testable
   → Mark ambiguous requirements
6. Identify Key Entities (if data involved)
7. Run Review Checklist
   → If any [NEEDS CLARIFICATION]: WARN "Spec has uncertainties"
   → If implementation details found: ERROR "Remove tech details"
8. Return: SUCCESS (spec ready for implementation planning)

SDD Guidelines

  • Focus on WHAT users need and WHY
  • Avoid HOW to implement (no tech stack, APIs, code structure)
  • 👥 Written for business stakeholders, specifications drive code
  • 🔄 Specifications are executable - they generate implementation

Problem Statement

What Problem Does This Solve?

{{problem_description}}

Who Is Affected?

  • Primary Users: {{primary_users}}
  • Secondary Users: {{secondary_users}}
  • Stakeholders: {{stakeholders}}

Current Pain Points

  • {{pain_point_1}}
  • {{pain_point_2}}
  • {{pain_point_3}}

Success Criteria

Business Objectives

  • {{business_objective_1}}
  • {{business_objective_2}}
  • {{business_objective_3}}

User Success Metrics

  • {{user_metric_1}}
  • {{user_metric_2}}
  • {{user_metric_3}}

Acceptance Definition

{{acceptance_definition}}

User Scenarios & Testing

Primary User Flow

Given {{precondition}}
When {{user_action}}
Then {{expected_outcome}}

Edge Cases & Error Scenarios

  1. {{edge_case_1}}: {{edge_case_1_behavior}}
  2. {{edge_case_2}}: {{edge_case_2_behavior}}
  3. {{edge_case_3}}: {{edge_case_3_behavior}}

Integration Points

  • {{integration_point_1}}
  • {{integration_point_2}}
  • {{integration_point_3}}

Functional Requirements

Core Requirements

  1. FR1: {{functional_requirement_1}}
  2. FR2: {{functional_requirement_2}}
  3. FR3: {{functional_requirement_3}}

Data Requirements

  • Input Data: {{input_data_requirements}}
  • Output Data: {{output_data_requirements}}
  • Data Validation: {{data_validation_rules}}
  • Data Retention: {{data_retention_policy}}

Business Rules

  • {{business_rule_1}}
  • {{business_rule_2}}
  • {{business_rule_3}}

Non-Functional Requirements

Performance Requirements

  • Response Time: {{response_time_requirement}}
  • Throughput: {{throughput_requirement}}
  • Concurrent Users: {{concurrency_requirement}}

Security Requirements

  • Authentication: {{auth_requirements}}
  • Authorization: {{authorization_requirements}}
  • Data Protection: {{data_protection_requirements}}

Usability Requirements

  • Accessibility: {{accessibility_requirements}}
  • User Experience: {{ux_requirements}}
  • Browser Support: {{browser_support_requirements}}

Key Entities & Relationships

Data Entities

  • {{entity_1}}: {{entity_1_description}}

    • Attributes: {{entity_1_attributes}}
    • Relationships: {{entity_1_relationships}}
  • {{entity_2}}: {{entity_2_description}}

    • Attributes: {{entity_2_attributes}}
    • Relationships: {{entity_2_relationships}}

State Management

  • States: {{possible_states}}
  • Transitions: {{state_transitions}}
  • Triggers: {{state_triggers}}

Constraints & Assumptions

Technical Constraints

  • {{technical_constraint_1}}
  • {{technical_constraint_2}}
  • {{technical_constraint_3}}

Business Constraints

  • {{business_constraint_1}}
  • {{business_constraint_2}}
  • {{business_constraint_3}}

Key Assumptions

  • {{assumption_1}}
  • {{assumption_2}}
  • {{assumption_3}}

Dependencies & Prerequisites

Internal Dependencies

  • {{internal_dependency_1}}
  • {{internal_dependency_2}}
  • {{internal_dependency_3}}

External Dependencies

  • {{external_dependency_1}}
  • {{external_dependency_2}}
  • {{external_dependency_3}}

Prerequisites

  • {{prerequisite_1}}
  • {{prerequisite_2}}
  • {{prerequisite_3}}

Open Questions & Clarifications

Needs Clarification

  • [NEEDS CLARIFICATION: {{clarification_1}}]
  • [NEEDS CLARIFICATION: {{clarification_2}}]
  • [NEEDS CLARIFICATION: {{clarification_3}}]

Research Required

  • {{research_item_1}}
  • {{research_item_2}}
  • {{research_item_3}}

Review Checklist

  • Testable Requirements: Every requirement has clear acceptance criteria
  • No Implementation Details: Specification focuses on WHAT, not HOW
  • Complete User Flows: All primary and edge case scenarios covered
  • Clear Business Value: Success criteria directly relate to user/business needs
  • Unambiguous Language: No room for multiple interpretations
  • Data Model Clarity: All entities and relationships clearly defined
  • Error Handling: All failure scenarios have defined behaviors
  • Integration Points: All external dependencies identified
  • Performance Criteria: Non-functional requirements are measurable
  • Security Considerations: Authentication, authorization, and data protection addressed

Implementation Handoff

For Architect Agent

This specification defines WHAT needs to be built. Create technical architecture that determines HOW to implement these requirements using appropriate technologies and patterns.

For Developer Agent

Implementation must satisfy ALL functional requirements and success criteria. Generated code should include comprehensive tests that validate specification compliance.

For QA Agent

Test plans must verify EVERY requirement and scenario defined in this specification. Focus on specification compliance, not just code coverage.


This specification follows Specification-Driven Development (SDD) principles where specifications are executable and generate implementation. Changes to requirements should update this specification first, then propagate to implementation.