some files rename
5.3 KiB
Generate Feature Specification
Create a focused behavioral specification that describes what the system should do, not how it should be built.
Input parameter
building_block.md
Example: 03_building_blocks/01-dashboard-export-example.md
Objective
Generate lean specifications with:
- Clear problem statement and desired outcomes
- Behavioral acceptance criteria in Gherkin format
- Essential non-functional requirements
- No implementation prescriptiveness
Process
- Read the building_block.md
- Analyze the codebase to understand context
- Generate a behavioral specification using the structure below
- DO NOT include implementation details, file structures, or technical architecture
- Focus on behavior, user experience, and acceptance criteria
- Save the specification into the
03_feature_specs/spec.mdExample:03_feature_specs/01-dashboard-export-example.md
Specification Structure
Header
# [Feature Name]
**Status**: Draft | **Date**: [YYYY-MM-DD] | **Feature**: [Brief Feature Description]
Problem
Clear, concise statement of the problem users are facing.
Outcome
Measurable or observable goals/benefits (use bullet points).
Scope
Included
What's in scope for this feature (bullet points).
Excluded
Explicitly what's NOT in scope (bullet points).
Acceptance Criteria
Each acceptance criterion should be:
- Numbered sequentially (AC-1, AC-2, etc.)
- Include a brief title
- Written in Gherkin format (Given/When/Then)
Example: AC-1: Export Availability Given the user is viewing the dashboard When the dashboard loads Then an "Export to Excel" button should be visible in the filter/actions area
Non-Functional Requirements
Only include essential non-functional requirements:
- Performance (if relevant)
- Compatibility (if relevant)
- Reliability (if relevant)
Use sub-sections with bullet points.
Unit tests based on Acceptance Criteria
- Acceptance criteria references
- What should be tested
- Required outcome
Integration tests based on Acceptance Criteria and/or Non-Functional requirements
- Acceptance criteria references
- Initial data and conditions
- What should be tested
- How system should behave
- List of Non-functional requiremnts to be met
Constraints
High-level constraints that guide implementation:
- Architectural patterns (if critical)
- Technical limitations
- Integration requirements
- No breaking changes (if applicable)
Risks & Mitigation
List key risks with mitigation strategies (if applicable).
Each risk should have:
- Risk: Description
- Mitigation: Approach
Output Guidelines
DO:
- Focus on behavior and user experience
- Use clear, simple language
- Keep acceptance criteria testable
- Include realistic scope boundaries
- Write from the user's perspective
DON'T:
- Include implementation details (file paths, classes, methods)
- Prescribe technical solutions or libraries
- Add architectural diagrams or code examples
- Specify exact API endpoints or data structures
- Include step-by-step implementation instructions
- Add "how to build" guidance
Example
# Dashboard Export to Excel
**Status**: Draft | **Date**: 2025-01-XX | **Feature**: Export Dashboard Data to Excel
## Problem
Users currently have no efficient way to export dashboard data for offline analysis, reporting, or sharing. Manual copy-paste is time-consuming, error-prone, and lacks context about active filters.
## Outcome
- Eliminate manual copy-paste workflows
- Enable accurate data sharing with proper context
- Measurable time savings (target: <30s vs. several minutes)
- Improved data consistency for offline analysis
## Scope
### Included
- Export filtered dashboard data to Excel
- Single-click export from dashboard view
- Respect all active filters (status, date range)
### Excluded
- CSV or PDF export options
- Scheduled or automated exports
- Email export functionality
## Acceptance Criteria
**AC-1: Export Button Visibility**
Given the user is viewing the dashboard
When the dashboard loads
Then an "Export to Excel" button should be visible in the actions area
**AC-2: Basic Export Functionality**
Given the user is viewing the dashboard with data
When the user clicks the "Export to Excel" button
Then an Excel file should download to their default location
And the filename should include a timestamp
## Non-Functional Requirements
**Performance**
- Export completes in <2 seconds for up to 1000 records
- Support up to 10,000 records per export
**Compatibility**
- Excel files openable in Microsoft Excel, Google Sheets, and LibreOffice
- Standard Excel format (.xlsx)
## Constraints
- Must respect all currently active filters
- Must follow existing hexagonal architecture patterns
- No breaking changes to existing functionality
## Risks & Mitigation
**Risk 1: Excel File Compatibility**
- *Risk*: Generated files don't open correctly in all spreadsheet applications
- *Mitigation*: Use standard Excel format, test with multiple applications
Implementation Notes
- Use descriptive but concise titles
- Keep specifications focused and scoped appropriately
- Remember: This is a behavioral spec, not an implementation plan
CRITICAL: Generate the spec file ONLY. Do NOT modify code, create files, or make any implementation changes at this stage.