Spec-Driven Development (SDD) Workflow

common-fwk uses a structured Spec-Driven Development (SDD) workflow for all significant changes. This ensures every feature is specified, designed, tested, and verified before merging.

Why SDD?

  • Produces auditable artifacts for every change.
  • Keeps AI agents and human contributors aligned on requirements.
  • Enforces explicit acceptance criteria before implementation starts.
  • Documentation stays synchronized with code.

Workflow Phases

Issue (approved) → Explore → Propose → Spec → Design → Tasks → Apply → Verify → Archive → PR

1. Explore

Investigate the codebase, clarify requirements, and identify boundaries. Output: exploration notes.

2. Propose

Define intent, scope (in/out), and capability map. Output: proposal.md.

3. Spec

Write testable requirements and acceptance scenarios using Given/When/Then format. Output: spec.md (delta specs per domain affected).

4. Design

Technical approach, architecture decisions, package boundaries, migration notes. Output: design.md.

5. Tasks

Break down implementation into discrete, verifiable tasks organized by phase. Output: tasks.md.

6. Apply

Implement code following specs and design. Track progress in apply-progress.md.

7. Verify

Validate implementation against specs, tasks, and design. Classify findings as CRITICAL / WARNING / SUGGESTION. Output: verify-report.md.

8. Archive

Sync delta specs to canonical docs (docs/architecture/). Output: archive-report.md.

Issue Requirements

Every change must be linked to a GitHub issue with status:approved label. Open issues without approval are blocked from receiving PRs.

See Branch and PR for naming conventions.

Tools

The SDD workflow is supported by agent skills in .atl/ and OpenCode skills. Run the relevant skill for each phase (e.g. sdd-explore, sdd-spec, sdd-apply, sdd-verify, sdd-archive).