OpenSpec

Workflow — the primary skill per SDLC stage this framework runs, top to bottom (folded and off-stage steps omitted; Plan folds into Specify’s propose).

flowchart TB
    A["openspec-explore<br/><i>Align</i>"] --> S["openspec-propose<br/><i>Specify</i>"] --> I["openspec-apply<br/><i>Implement</i>"] --> V["openspec-verify<br/><i>Validate</i>"] --> Rel["openspec-archive<br/><i>Release</i>"]

OpenSpec is “spec-driven development (SDD) for AI coding assistants” by Fission AI — a lightweight specification framework that aligns human developers and AI coding assistants on requirements before implementation, “without rigid ceremony.” Install: npm install -g @fission-ai/openspec@latest (Node.js 20.19.0+), then openspec init. Works with 30+ AI assistants via slash commands.

Its four principles are the wiki’s clearest statement of the spec-driven ethos (see pattern-spec-driven-development): fluid not rigid (no phase gates), iterative not waterfall, easy not complex, and — distinctively — brownfield-first (built for existing codebases, not just greenfield).

What makes OpenSpec different

Every other framework in this wiki treats the spec/plan as a per-change artifact that is written, executed, and then left behind. OpenSpec instead keeps a living specification as the durable source of truth and expresses each change as a delta against it (see pattern-living-specification). Two consequences distinguish it:

  • The spec is permanent, the change is temporary. openspec/specs/ describes how the system currently behaves; a change lives in openspec/changes/<name>/ only until it is archived, at which point its delta is merged back into the living spec.
  • Its “release” is spec-maintenance, not deployment. OpenSpec has no deploy / CI / observability capabilities (unlike gsd or addy-agent-skills). Its finalization step (openspec-sync + openspec-archive) folds the delta into the source-of-truth spec — closing the loop rather than shipping to production.

The workflow (three phases + finalization)

OpenSpec organizes work around exploration → proposal → implementation, then finalization. Each command implements: a canonical SDLC stage:

PhaseCommandStage
Explorationopenspec-explorestage-align
Proposal (spec + plan)openspec-proposestage-specify
Implementationopenspec-applystage-implement
Validationopenspec-verifystage-validate
Finalization — merge deltasopenspec-syncstage-release
Finalization — archiveopenspec-archivestage-release

The proposal step is deliberately fluid: /opsx:propose generates all four planning artifacts (proposal → specs → design → tasks) in one shot, so a single capability spans both stage-specify and stage-plan rather than gating them into separate phases.

Capabilities

Commands — core profile (default)

Documented here, one page each:

  • openspec-explore — investigate the codebase and compare approaches before committing.
  • openspec-propose — generate all planning artifacts (proposal, spec deltas, design, tasks) in one step.
  • openspec-apply — implement the tasks checklist, resuming from checkpoints.
  • openspec-sync — merge a change’s delta specs into the living main specs.
  • openspec-archive — finalize a completed change; optionally sync, then move it to archive/.

Commands — expanded profile (thin wrappers, catalogued not paged)

Enabled via openspec config profile then openspec update. These are artifact-generation control variants of propose/archive plus a tutorial — thin wrappers over the paged capabilities, so they are catalogued here rather than given separate pages:

CommandRoleRelates to
/opsx:newScaffold an empty change folder + metadata, awaiting artifactsprecedes openspec-propose
/opsx:continueGenerate the next artifact in the dependency chain (incremental)staged openspec-propose
/opsx:ffFast-forward: generate all planning artifacts in dependency orderbatch openspec-propose
/opsx:verifyValidate implementation vs artifacts (completeness/correctness/coherence)paged as openspec-verify
/opsx:bulk-archiveArchive several completed changes at once, resolving spec conflictsbatch openspec-archive
/opsx:onboardInteractive 15–30 min guided tutorial on the real codebaseteaches the whole loop

/opsx:verify ships in the expanded profile but is paged as openspec-verify because it is the framework’s only stage-validate capability and clusters cross-framework.

The legacy /openspec:proposal / /openspec:apply / /openspec:archive commands are deprecated in favour of the /opsx: set.

Terminal CLI (tooling, not lifecycle capabilities)

CommandRole
openspec initInitialize OpenSpec; create the directory structure
openspec updateRegenerate skills + command files after config changes
openspec config profileSwitch command profile (core ↔ expanded)
openspec validateCheck artifact correctness and consistency
openspec listList all changes (active + archived)
openspec showShow a change’s details and artifacts
openspec diffCompare artifact versions / changes
openspec archiveTerminal-based archival alternative to openspec-archive

Artifacts produced

Organized under openspec/, split across the living spec and the per-change folder:

  • artifact-spec-delta — the signature output: ADDED/MODIFIED/REMOVED requirement deltas against the living spec, with Given/When/Then scenarios.
  • artifact-proposal-mdproposal.md; the why/what and scope boundaries of a change.
  • artifact-design-mddesign.md; the technical approach and architecture decisions.
  • artifact-plan-mdtasks.md; the hierarchically numbered implementation checklist.

Patterns applied

Key features

  • Stores (Beta) — separate planning repositories shared across teams via Git, for cross-repo feature coordination and centralized requirement ownership.
  • Multi-tool — 30+ assistants; syntax varies (/opsx: for Claude Code / Copilot, /opsx- for Cursor / Windsurf, /skill:openspec- for Kimi CLI / Trae).

See Also