Skip to content

Using SDD tools together: spec-sync docs

Comparisons

Different filenames do not mean missing capability. The tools package similar knowledge around different units: SpecSync centers durable modules plus verified changes, Spec Kit centers feature execution, and OpenSpec centers proposals plus canonical behavior.

Artifact equivalence

Knowledge or gateSpecSyncSpec KitOpenSpec
Project principlesPolicy principles_file / repository instructions.specify/memory/constitution.mdProject configuration and agent instructions
Product intent and acceptance criteriaModule requirements.md; change requirements.mdFeature spec.mdproposal.md plus delta requirements/scenarios
Current technical/module contract*.spec.mdFeature spec.md under a chosen persistence modelopenspec/specs/<domain>/spec.md
Proposed contract changedeltas/<module>.mdNo direct core semantic-delta artifactchanges/<name>/specs/<domain>/spec.md
Architecture and rationaleDurable context.md; optional change design.mdplan.md, research.md, data-model.md, contracts/design.md and proposal.md
Work breakdowntasks.mdtasks.mdtasks.md
Quality/evidence plantesting.md, requirement evidence, verification recordchecklists/, analyze/converge results, workflow logsvalidate/verify results and completed tasks
Definition reviewMandatory digest-bound approvalOptional workflow gate or team reviewProposal review convention
Closing reviewMandatory closing approval bound to verificationOptional workflow gate/team reviewArchive confirmation/workflow
HistoryAccepted workspace then immutable archiveFeature folders under the team's persistence modelchanges/archive/

The rows are equivalent by purpose, not identical guarantees. For example, Spec Kit's analyze and OpenSpec's verification can reason across artifacts through an agent, while SpecSync's verification.json and source validators are deterministic records consumed by CI.

Pattern 1: Spec Kit for discovery, SpecSync for durable enforcement

  1. Use Spec Kit to clarify the feature, explore architecture, and produce the plan/tasks.
  2. Translate stable product requirements into module-scoped SpecSync requirement IDs.
  3. Put enforceable exports, dependencies, invariants, and schema expectations in *.spec.md.
  4. Implement with the same coding agent.
  5. Require specsync check --strict and the SpecSync acceptance gate in CI.

This keeps Spec Kit's rich planning ecosystem without making generated feature artifacts the only long-term source of truth.

Pattern 2: Adopt an OpenSpec repository

specsync change adopt --dry-run
specsync change adopt

The import preserves canonical and active OpenSpec material for migration. After adoption, choose one owner for semantic deltas. Maintaining the same requirement independently in both active change systems invites conflicting canonical merges.

Pattern 3: Split ownership by boundary

  • Use Spec Kit or OpenSpec for product/feature exploration.
  • Use SpecSync for library modules, public exports, database schemas, cross-module dependencies, and merge enforcement.
  • Link the feature artifact to stable SpecSync requirement IDs and change IDs.

The rule is simple: overlap in context is useful; overlap in canonical ownership must be explicit.