Architecture Overview¶
oh-my-sdd is not one monolithic skill — it's an orchestrator that activates 5 specialized skills, one per phase of Spec-Driven Development. Each skill owns exactly one artifact and, where relevant, its own human checkpoint.
The flow¶
flowchart TD
A["/oh-my-sdd <task or Jira key>"] --> B[oh-my-sdd<br/>orchestrator]
B --> C[oh-my-sdd-constitution]
C --> D[oh-my-sdd-specify]
D -->|checkpoint: spec.md validated?| D
D --> E[oh-my-sdd-plan]
E --> F[oh-my-sdd-tasks]
F -->|checkpoint: plan.md + tasks.md approved?| F
F --> G[oh-my-sdd-implement]
G --> H[Code implemented,<br/>tasks.md checked off]
Responsibilities at a glance¶
| Skill | Reads | Writes | Checkpoint |
|---|---|---|---|
oh-my-sdd |
user input / Jira | — | — |
oh-my-sdd-constitution |
project source & config | .oh-my-sdd/constitution.md |
none (analyzes first, asks only if needed) |
oh-my-sdd-specify |
constitution.md |
.oh-my-sdd/specs/<slug>/spec.md |
#1 — spec must be validated |
oh-my-sdd-plan |
spec.md, constitution.md |
.oh-my-sdd/specs/<slug>/plan.md |
none |
oh-my-sdd-tasks |
plan.md, spec.md |
.oh-my-sdd/specs/<slug>/tasks.md |
#2 — plan + tasks must be approved |
oh-my-sdd-implement |
tasks.md, spec.md, constitution.md |
project source code | none (implementation only starts after checkpoint #2) |
Design principles¶
- The orchestrator never generates artifacts itself. It only sequences the 5 skills and waits for each one's signal before moving on.
- Checkpoints belong to the skill that owns the artifact.
oh-my-sdd-specifywon't hand control back until you've validatedspec.md;oh-my-sdd-taskswon't hand control back until you've approvedplan.md+tasks.md. - Every skill is self-contained. Each ships with its own copy of the SDD knowledge base, so no skill depends on a relative path into a sibling skill's folder.
- Constitution is inferred, not interviewed.
oh-my-sdd-constitutionreads your actual code and config first; it only asks what genuinely can't be inferred.
For the exact behavior of each skill, see the Skills Reference.