Skip to content

OpenSpec

OpenSpec is a lightweight spec framework for AI coding assistants. Its philosophy is explicitly fluid, iterative, easy, and brownfield-first. It adds a spec layer without forcing a rigid phase-gate process.

The easiest way to position it:

OpenSpec is for teams that want spec discipline, but not the ceremony of a heavy lifecycle framework.

Primary reference: Fission-AI/OpenSpec

Mental model

OpenSpec separates the current truth from proposed changes:

mermaid
flowchart LR
    A[openspec/specs] -->|source of truth| B[Current behavior]
    C[openspec/changes/change-id] -->|proposal + deltas| D[Proposed behavior]
    D -->|sync/archive| A
AreaMeaning
openspec/specs/Source of truth for how the system currently behaves
openspec/changes/<change>/Proposed modification with artifacts and delta specs
proposal.mdWhy the change exists and what changes
specs/ inside a changeRequirements and scenarios for the changed behavior
design.mdTechnical approach
tasks.mdImplementation checklist

Why OpenSpec exists

OpenSpec exists because many teams want the benefits of SDD, but find heavyweight processes too rigid. The project emphasizes:

PrinciplePractical meaning
Fluid not rigidCommands are actions you can take, not phase locks
Iterative not waterfallArtifacts can change as understanding improves
Easy not complexInitialize quickly and customize later
Brownfield-firstDesigned for changes to existing behavior, not only greenfield systems

Setup

OpenSpec requires Node.js 20.19.0 or higher.

bash
npm install -g @fission-ai/openspec@latest
cd your-project
openspec init

Then start from your AI coding assistant:

text
/opsx:propose add-dark-mode

Reference docs:

Core workflow

The default OPSX core profile provides:

CommandPurpose
/opsx:proposeCreate a change and generate planning artifacts
/opsx:exploreExplore ideas before committing to a change
/opsx:applyImplement tasks from the change
/opsx:syncMerge delta specs into main specs
/opsx:archiveArchive completed change
mermaid
flowchart LR
    A["/opsx:explore"] --> B["/opsx:propose"]
    B --> C["proposal.md + specs + design.md + tasks.md"]
    C --> D["/opsx:apply"]
    D --> E["/opsx:sync"]
    E --> F["/opsx:archive"]

The expanded workflow can be enabled with:

bash
openspec config profile
openspec update

Expanded commands include /opsx:new, /opsx:continue, /opsx:ff, /opsx:verify, /opsx:bulk-archive, and /opsx:onboard.

Strengths

  1. Lower ceremony than Spec Kit and AI-DLC. It gives structure without heavy gates.
  2. Brownfield-friendly. The change/delta model fits existing systems.
  3. Tool-flexible. It supports many AI coding assistants through generated instructions and slash commands.
  4. Fluid workflow. You can revisit proposal, design, specs, and tasks as learning changes.
  5. Clear change isolation. Each change gets its own folder before merging into current specs.

Weaknesses

WeaknessPractical consequence
Less governance than AI-DLCHigh-risk enterprise work needs extra approval/audit process
Less opinionated than Spec KitTeams must decide how strict their reviews are
Can be too light for regulated workAdd security, NFR, and operations gates yourself
Requires artifact disciplineIf /opsx:sync or archive is skipped, specs can drift
Newer ecosystem compared to older practicesVerify supported tools and workflow profile for your team

Best use cases

Use caseWhy OpenSpec fits
Brownfield feature changeProposed deltas are isolated before becoming source of truth
Solo or small-team AI codingLightweight setup and low ceremony
Iterative product workArtifacts can evolve as you learn
Teams overwhelmed by heavier SDDKeeps specs without rigid phase gates
Multi-tool AI environmentsWorks through generated agent instructions

When not to use as primary

Choose something else when:

  • You need enterprise audit and approval: use AWS AI-DLC.
  • You need high-throughput multi-agent execution: use GSD.
  • You need strict TDD/review behavior: combine with Superpowers.
  • You need very formal organization-level SDD standards: Spec Kit may be easier to standardize.

OpenSpec vs Spec Kit

DimensionOpenSpecSpec Kit
PhilosophyFluid, iterative, lightweightStructured SDD with clearer phase progression
SetupNode/npm CLISpecify CLI, templates, integrations
Artifact shapeopenspec/specs and openspec/changesspecs/plans/tasks driven by templates
Change modelChange folders and delta specsFeature specs and implementation plans
Best fitBrownfield iterative changesFeature-level spec-first delivery
RiskToo light if team needs strict gatesToo heavy if team wants fluid iteration

Step-by-step: feature change

Example: add a customer export feature.

  1. Install and initialize OpenSpec.
  2. Run:
text
/opsx:explore customer export requirements
  1. Once scope is clear:
text
/opsx:propose add-customer-export
  1. Review generated artifacts:
    • proposal.md
    • change specs/
    • design.md
    • tasks.md
  2. Edit artifacts manually if they are wrong.
  3. Run:
text
/opsx:apply
  1. Verify implementation manually or with expanded /opsx:verify.
  2. Run:
text
/opsx:sync
/opsx:archive
  1. Confirm openspec/specs/ now reflects current behavior.

Definition of done

A change is done when:

  1. The change folder explains why the change exists.
  2. Specs describe the behavior clearly.
  3. Design explains material technical choices.
  4. Tasks are complete.
  5. Implementation has test evidence.
  6. Delta specs are synced into current specs.
  7. The change is archived for traceability.

Built as a static bilingual AI engineering stack guide.