This project uses spec-sync for bidirectional spec-to-code validation.
Each spec in specs/<module>/ has companion files — read them before working, update them after:
requirements.md— Acceptance criteria and user stories. These are permanent invariants, not tasks — do not check them off. Update if requirements change.context.md— Architectural decisions, key files, and current status. Update when you make design decisions or change what's in progress.
- Read the relevant spec in
specs/<module>/<module>.spec.md - Read companion files:
requirements.mdandcontext.md - After changes, run
specsync checkto verify specs still pass
- Update
context.md— record decisions made, update current status - If requirements changed, update
requirements.mdacceptance criteria
Run specsync check --strict — all specs must pass with zero warnings.
Run specsync add-spec <module-name> to scaffold the spec and companion files, then fill in the spec before writing code.
specsync check— validate all specs against source codespecsync check --json— machine-readable validation outputspecsync coverage— show which modules lack specsspecsync score— quality score for each spec (0-100)specsync add-spec <name>— scaffold a new spec with companion filesspecsync resolve --remote— verify cross-project dependencies