What problem does it solve?
Add or update functional specification documents that describe what the software must do. Specifications are implementation-agnostic requirements. From these documents alone, a team could recreate the software in any language or framework without access to the current codebase.
Core Features & Use Cases
- Specification files live in a dedicated directory (e.g., docs/specs/). Each file covers a component or functional area. If the user specifies a component, only update that file. Otherwise update all spec files.
- Append and update only. Never remove a specification. Specs are a living record.
- No implementation details. No language, framework, library, file path, class name, function name, data structure, or internal architecture belongs in a spec. Describe observable behavior and contracts between components.
- Each spec is one testable requirement. If you cannot verify whether the software satisfies a spec through its external behavior or documented contracts, it is too vague. If a spec uses 'and' to join two distinct behaviors, split it.
Quick Start
Place or update specification files under docs/specs/ to reflect observable software behavior and use the provided workflow to validate them.