01 / Planning
Space-owned context
<planning-path>/
prd.md
explorations/
<workspace>/.sdd/
explorations/ # workspace-owned topics without one idea
Substantial discussions usually stay here as synthesized durable records, while
local guidance or stronger artifact authority may provide a better home. Explore returns a routed
handoff when an outcome matures; Change, ADR, PRD, and implementation remain separate invocations.
02 / Project
Repository-owned truth
<repository>/docs/
epics/<epic>/epic.md
adrs/<date>-<decision>.md
audits/
Epics hold durable behavior and evidence maps. ADRs preserve consequential
technical choices only when real alternatives and their tradeoffs would otherwise be hard to
reconstruct. ADR returns the confirmed direction to its caller without implementing it. Audits remain
point-in-time advisory records.
03 / Changes
Workspace-owned work
<workspace>/.sdd/changes/
<date>-<change>/
change.md # intent, plan, constraints, risks
tasks.md # outcome queue and Resume checkpoint
review.md # candidate, gates, findings, gaps, commit
closed/
<date>-<change>/
sdd change create writes one proposed change.md whose
frontmatter owns status, Space, and repository IDs. Planning expands change.md, then adds a
compact tasks.md queue and one central review.md. Outcomes describe observable
behavior, Scenarios, dependencies, expected risks, and focused proof without predicting files or
implementation technique. One Requirement is a useful default, not a universal rule.
Every outcome passes five universal gates: scope and candidate, behavior, fresh
verification, independent Spec and Quality review, and integrity and authority. Planning declares
expected risks; Review runs concrete behavior-derived checks for those risks and may add material ones
it discovers. Required technical gaps remain explicit unless the owner accepts that exact gap with a
date. Manual product acceptance stays separate.
Apply handles one outcome, permits one consolidated remediation batch and one fresh
final Review, selectively creates one content-identical local commit, records its SHA and tree in
review.md, and stops. It does not authorize another outcome, push, PR, merge, release, or
deployment. Schema-less and receipt-based Change records are unsupported pre-1.0 history, not a second
current profile. The CLI validates deterministic structure and provenance; independent Review judges
whether the proof is sufficient. Existing records may retain a compatible design.md.
Pre-1.0 installation and Change formats are unsupported alpha data. Recreate a
current workspace with sdd setup and sdd init, then manually preserve only
records still worth keeping. sdd update reconciles current managed doctrine and skills;
it does not migrate product artifacts.