Skip to content

OpenSpec

OpenSpec is a spec-driven framework where each proposed change gets its own folder so you and the agent agree on the spec before any code is written. After openspec init, you drive it with /opsx:* slash commands: /opsx:propose creates the change, /opsx:apply implements it, /opsx:archive merges the spec deltas.

/opsx:propose <idea> writes a change folder under openspec/changes/<change-name>/:

openspec/changes/<change-name>/
├── proposal.md # why and what is changing
├── design.md # technical approach
├── tasks.md # implementation checklist
└── specs/ # delta specs

OpenSpec designed that folder to be reviewed before you implement. That is the pause point for PlanBridge.

After /opsx:propose, open the proposal for inline review:

/planbridge-open openspec/changes/add-dark-mode/proposal.md

PlanBridge opens one markdown file at a time, so review the design and tasks the same way before you run /opsx:apply:

/planbridge-open openspec/changes/add-dark-mode/design.md
/planbridge-open openspec/changes/add-dark-mode/tasks.md

The agent revises the change from your inline comments before it applies it.

To review every proposal without asking, append a snippet to your global agent instructions:

Terminal window
echo '
## OpenSpec + PlanBridge
After `/opsx:propose` writes a change under `openspec/changes/<name>/`, run `/planbridge-open` on its `proposal.md` (then `design.md` and `tasks.md`) before `/opsx:apply`. Treat the returned annotations as my review feedback and revise the change before implementing.
' >> ~/.claude/CLAUDE.md

The /opsx:* commands are OpenSpec’s current default workflow. If you upgraded from an older install, run openspec update to refresh the agent instructions and confirm the command set with your / autocomplete.