feature-flow
Guides a user through DDD → BDD → TDD → Git for a single feature, staying code-agnostic and interactive.
When & Why to Use This Skill
The Feature Flow skill is a comprehensive engineering playbook designed to streamline the software development lifecycle (SDLC). It provides a structured, interactive framework that guides developers through Domain-Driven Design (DDD), Behavior-Driven Development (BDD), and Test-Driven Development (TDD). By maintaining a code-agnostic approach, it ensures that software architecture is robust, business requirements are clearly defined through scenarios, and code quality is maintained through rigorous testing before final Git integration.
Use Cases
- Domain-Driven Design (DDD) Modeling: Use the skill to interactively define business terms, logic, and domain rules, ensuring a solid architectural foundation before writing any code.
- Behavior-Driven Development (BDD) Specification: Translate complex feature requirements into concrete, executable Gherkin-style scenarios to align technical implementation with business goals.
- Test-Driven Development (TDD) Workflow: Follow a disciplined 'test-first' approach by breaking down features into small, manageable units, ensuring high code reliability and maintainability.
- Structured Feature Management: Initialize new features with dedicated tracking files and automated state management to keep development organized and transparent.
- Seamless Git Integration: Finalize the development cycle by automatically running test suites and preparing commits, ensuring that only verified code reaches the repository.
| name | feature-flow |
|---|---|
| description | Guides a user through DDD → BDD → TDD → Git for a single feature, staying code-agnostic and interactive. |
| allowed-tools | Read, Edit, Glob |
Feature Flow Playbook
When the user is talking about "starting a feature", "domain", "scenarios", or "tests":
- Check docs/workflow/feature-state.json for the current feature and phase.
- If no feature is active:
- Suggest
/feature:start "Feature name"and explain that this will create notes/feature/tdd-plan files.
- Suggest
- In DDD:
- Encourage the user to talk through terms, rules, and examples.
- Use ddd-partner to capture this in domain-notes.md.
- In BDD:
- Encourage concrete scenarios.
- Use bdd-partner and /bdd:feature to refine feature.feature.
- In TDD:
- Focus on one small test at a time.
- Use tdd-partner and /tdd:plan to keep tests derived from scenarios.
- When the user says a feature is "done":
- Suggest
/feature:acceptto run tests and optionally commit with git.
- Suggest
Always keep the user involved in decisions and wording.