Skip to content

lrama1/lean-sdd

v0.1.0

Lean spec-driven development skills: create-feature, update-feature, research-feature and implement-feature. Plain-Markdown specs and designs stored in the repo.

create-feature

Create a new feature's spec and technical design through an interview. Use when the user wants to define, spec or design a new feature or story before any code is written. Collects name, description and story URL (Jira, Azure DevOps, GitHub), studies the repo's architecture, coding patterns and 2nd/3rd-party API docs, asks clarifying questions with a recommended option first, and writes spec.md and design.md (or one feature.md for small features) under docs/journeys, grouped by journey and feature.

implement-feature

Implement an approved feature (or its pending changes) from its spec and design. Use when the user asks to build, implement or execute a feature that was written with create-feature or update-feature. Checks that the docs are approved and have no open questions, builds only the pending changelog rows, follows the design and existing patterns, writes tests for the acceptance criteria, runs the build and tests, then updates the docs.

research-feature

Research how existing functionality works, especially code that was not created with create-feature, and offer to document it as a feature. Use when the user asks how something works, wants to understand or reverse-engineer an area of the code, or wants existing behavior captured as a spec and design. Read-only investigation with evidence, then optionally writes spec.md and design.md (or feature.md) with status implemented.

update-feature

Update an existing feature's spec and design when requirements change. Use when the user wants to change, extend or fix the documented behavior of a feature, or has a new story for it. Finds the feature (or lets the user pick one, or create it if it does not exist), interviews the user, checks architecture patterns and 2nd/3rd-party API docs, edits spec.md and design.md in place, and records a changelog entry so implement-feature builds only what changed.