Purpose: Convert confirmed requirements into a formal technical specification.
specs/.spec-counter for the next available integer ID. Zero-pad it to 3 digits (e.g. 1 -> 001) to form <id>. Copy specs/templates/spec-template.md into specs/active/SPEC-<id>-<short-name>.md, then increment the value in specs/.spec-counter by 1 and save it, so the next spec gets a unique ID. Never reuse an ID, even if a spec is later abandoned.specs/active/ for overlap with this list. If another active spec already lists one of the same files, flag it to the user and note the conflicting spec ID in this spec's Business Context — do not silently proceed with both specs touching the same file concurrently..devfoundry/skills/task-decomposition.md, pairing each implementation task with a preceding failing-test (or manual-verification, for legacy stacks) task per the TDD rule in .devfoundry/rules/general.md.DRAFT and present to the user for approval before implementation begins.DRAFT.specs/active/ have been checked for Target Files overlap..devfoundry/references/environments.md, or the spec explicitly records that no command exists for the affected stack.No schema changes; rollback is git revert.completed: <YYYY-MM-DD HH:MM> timestamps.If the user cancels a DRAFT spec before approval:
Status field to ABANDONED.specs/archive/SPEC-<id>-<short-name>.md.specs/.spec-counter and do not reuse the ID.An APPROVED (or later) spec's Acceptance Criteria and Technical Design are frozen. If the user requests a genuine scope change (not a bug in the Builder's execution) after that point:
## Revision <n> — <YYYY-MM-DD> section to the bottom of the spec file describing what changed and why.Status field to REVISED.Status back to IN PROGRESS (or APPROVED if implementation has not started yet) and continue.specs/.spec-counter) instead of revising this one, and note the cross-reference in both files.Powered by TurnKey Linux.