OpenSpec
Reference

Skills

Every OpenSpec skill: arguments, what it creates, and what it responds with.

The skills come in two sets:

  • Core: installed by default, the main planning loop.
  • Optional: installed only when you add them, via Profiles.
SkillJobType
openspec-exploreThink through an idea before it becomes a change proposalCore
openspec-proposeCreate a change proposal with all its planning artifacts in one stepCore
openspec-apply-changeImplement a change proposal's tasksCore
openspec-update-changeRevise a change proposal's planCore
openspec-sync-specsMerge a change proposal's spec updates into specs/Core
openspec-archive-changeMove a finished change proposal to the archiveCore
openspec-new-changeStart a change proposal as an empty scaffoldOptional
openspec-continue-changeCreate the next planning artifact, one at a timeOptional
openspec-ff-changeCreate a change proposal with every artifact implementation needs, in one passOptional
openspec-verify-changeCheck the implementation matches the planOptional
openspec-bulk-archive-changeArchive several change proposals at onceOptional
openspec-onboardLearn the workflow by doing one real change proposal end to endOptional

openspec-explore

Think through an idea before it becomes a change proposal.

ContractDescription
ArgumentsA topic: an idea, a problem, a comparison, or the name of an existing change proposal to explore in context. With nothing given it just enters explore mode.
CreatesNothing by default; it reads and investigates only. On request it captures insights: a new change proposal under openspec/changes/<name>/, or updates to an existing one's proposal, design, specs, or tasks. Never code.
ResponseAn open conversation with no required output. When thinking crystallizes it summarizes the problem, approach, open questions, and next steps, and offers to capture them; you decide. Implementation never starts here.

openspec-propose

Create a change proposal and generate all its planning artifacts in one step.

ContractDescription
ArgumentsA kebab-case name (add-dark-mode) or a plain description. Asks if you give neither.
Createsopenspec/changes/<name>/ with every artifact the schema defines, in dependency order (spec-driven: proposal, spec deltas, design, tasks). Never code.
ResponseThe created artifacts, ready for review, and the next step. Stops there; implementation waits for openspec-apply-change.

openspec-apply-change

Implement a change proposal's tasks, working through the list until done or blocked.

ContractDescription
ArgumentsA change proposal name (add-auth), optional. If the target is ambiguous it lists the active change proposals and asks you to pick.
CreatesCode: the minimal changes each task calls for, in your project files. In the change proposal it touches only the tasks file, checking off each finished task (- [ ] to - [x]).
ResponseProgress per task, then an overall count (N/M tasks complete). All done: suggests openspec-archive-change. Blocked by missing artifacts: points to openspec-continue-change. Unclear tasks or errors: pauses and asks.

openspec-update-change

Revise a change proposal's existing planning artifacts and keep them coherent with each other.

ContractDescription
ArgumentsA change proposal name, optional, plus the revision you want. With no revision stated it runs a coherence review: artifacts checked against each other for contradictions, gaps, and duplication.
CreatesNothing new. Edits only artifact files that already exist; missing artifacts are openspec-continue-change's job. Never code.
ResponseShows each proposed revision and writes it only after you confirm, one artifact at a time. Ends with what was revised and the next step; implementation waits for openspec-apply-change.

openspec-sync-specs

Merge a change proposal's spec updates into specs/ without archiving it.

ContractDescription
ArgumentsA change proposal name, optional. You can also name a subset of its delta specs; only those sync.
CreatesEdits or creates openspec/specs/<capability-path>/spec.md for each delta spec, merging added, modified, removed, and renamed requirements into the main spec. Never code.
ResponseA per-capability summary of requirements added, modified, removed, or renamed, after the updated specs validate. The change proposal stays active; archiving waits for openspec-archive-change.

openspec-archive-change

Move a finished change proposal to the archive.

ContractDescription
ArgumentsA change proposal name, optional.
CreatesMoves the change proposal folder to openspec/changes/archive/YYYY-MM-DD-<name>/ (no date added if the name already starts with one). With your approval it first syncs outstanding delta specs via openspec-sync-specs. Never code.
ResponseWarns and asks before archiving with incomplete artifacts or tasks, and asks whether to sync when delta specs exist. Ends with a summary: name, schema, archive location, spec sync status, and any warnings.

openspec-new-change

Start a change proposal as an empty scaffold.

ContractDescription
ArgumentsA kebab-case name (add-user-auth) or a plain description, plus a schema name only for a non-default workflow. Asks what you want to build if you give neither.
Createsopenspec/changes/<name>/ as an empty scaffold: no artifacts yet, never code.
ResponseThe scaffold's name and location, the workflow's artifact sequence, status (0/N complete), and the first artifact's template. Drafting artifacts waits for openspec-continue-change.

openspec-continue-change

Create the next planning artifact in a change proposal, one at a time.

ContractDescription
ArgumentsA change proposal name, optional. If still ambiguous it asks you to pick from the most recently modified.
CreatesThe single next ready artifact in the schema's sequence, written into the change proposal folder. One artifact per run, never code.
ResponseThe created artifact, progress (N of M complete), and which artifacts that unlocked. When planning is complete it says so; implementation moves to openspec-apply-change.

openspec-ff-change

Create a change proposal and every planning artifact implementation needs, in one pass.

ContractDescription
ArgumentsA kebab-case name or a plain description. Asks if you give neither; if the named change proposal already exists it suggests continuing it instead.
Createsopenspec/changes/<name>/ and every planning artifact implementation requires, in dependency order (spec-driven: proposal, specs, design, tasks), leaving out only artifacts marked skipped or conditional. Never code.
ResponseThe change proposal's name and location, each artifact created, and any conditional artifact skipped and why. Stops there; implementation waits for openspec-apply-change.

openspec-verify-change

Check that the implementation matches the change proposal's artifacts.

ContractDescription
ArgumentsA change proposal name, optional. When ambiguous it asks, listing change proposals that have a tasks artifact.
CreatesNothing. It reads the change proposal's artifacts and the codebase; verification is report-only.
ResponseA report: a scorecard for Completeness, Correctness, and Coherence, then CRITICAL, WARNING, and SUGGESTION issues with recommendations, and a final archive-readiness assessment. It changes nothing and does not archive.

openspec-bulk-archive-change

Archive several change proposals at once.

ContractDescription
ArgumentsNone. It lists the active change proposals and asks you to select any number, with an option for all; if none are active it says so and stops.
Createsopenspec/changes/archive/YYYY-MM-DD-<name>/ per archived change proposal (already-dated names keep their prefix). Each one's spec deltas sync first via openspec-sync-specs. Never code.
ResponseA status table per change proposal and one confirmation for the whole batch, then a summary of archived, skipped, and failed, plus spec sync results. When two change proposals touch the same spec it checks the codebase and syncs implemented deltas oldest first.

openspec-onboard

Learn the workflow by doing one real change proposal end to end.

ContractDescription
ArgumentsNone. It scans your codebase for small starter tasks and asks you to pick one or describe your own.
CreatesA real change proposal for the chosen task, one artifact at a time, then real code once you confirm implementation. Archives the change proposal at the end.
ResponseA narrated walkthrough of the full cycle with pauses for your input: explore, create, build each artifact, implement, archive. Ends with a recap and a pointer to openspec-propose. Takes about 15 to 20 minutes.

On this page