The OpenSpec workflow is MySpec's implementation of OpenSpec's change-proposal methodology for existing codebases: the AI explores your repository, writes a proposal.md that names the capabilities it touches, one delta spec.md per capability (ADDED / MODIFIED / REMOVED / RENAMED requirements), an optional design.md, and a tasks.md - under openspec/changes/<change-id>/, where the OpenSpec CLI reads them.
A building department keeps one approved drawing per system - structure, electrical, plumbing (the capabilities). A renovation is submitted as a change package: a cover sheet saying which drawings it affects (the proposal), a redlined sheet per affected drawing (the delta specs), engineer's notes (design), and a work list (tasks). When the work passes inspection, the redlines are merged into the drawings of record (archive). Nothing is ever re-drawn from scratch.
What OpenSpec is
OpenSpec is an open-source SDD toolkit built for brownfield work. Instead of one monolithic spec it maintains living specs per capability under openspec/specs/, and every change is a self-contained folder under openspec/changes/. Its CLI validates a change's structure, and archiving a finished change merges its deltas into the baselines, so the specs never drift from the code. Its slash commands (/opsx:…) drive the same steps from an AI coding agent.
MySpec's OpenSpec workflow produces that change folder - with the codebase actually read, the capabilities validated, and every file reviewed before you see it.
Explore → proposal → specs → design → tasks
OpenSpec generate-brownfield · openspec-brownfield-v1
- 1 Explore (reads your code)no file yet
- 2 Proposalwrites proposal.md
- 3 Delta specswrites specs/<capability>/spec.md
- 4 Solutionwrites design.md
- 5 Taskswrites tasks.md
- Completehand off via MCP or ZIP
- Explore. The Brownfield Explorer packs the whole repository first (
local_pack_codebase), then greps and reads the modules the change touches, and asks focused multiple-choice questions only where a real gap exists. It sets a kebab-case change id (add-oauth-login,rename-billing-module;archiveis reserved) and cannot advance until real files were read - mount a folder in Chrome or runnpx -y @myspec/mcp-server reverse --root .. - Proposal → proposal.md: Why, What Changes, Capabilities (new and modified), Impact. The capability list is a contract: each name must be a stable domain or module identifier (
webapp,user-auth; ≤3 words, ≤25 characters), never the feature itself. - Specs → one delta spec.md per capability at
specs/<capability>/spec.md, using the exact delta headers and WHEN / THEN scenarios the OpenSpec validator enforces. Generate → review per file; the stage ends only when every capability has an approved delta. - Design → design.md. The platform normalises OpenSpec's legacy
designstage tosolution, so the stepper labels this stage "Solution" while the file it writes is stilldesign.md: Context, Goals / Non-Goals, Decisions, Risks / Trade-offs. Optional in OpenSpec; brief for small changes. - Tasks → tasks.md: one numbered group per capability with
N.Mcheckbox tasks, at planning level - the workflow never implements the change.
Folder layout and the CLI round-trip
openspec/
├── specs/ # long-lived capability baselines
│ ├── webapp/spec.md
│ └── platform/spec.md
└── changes/
├── add-session-rename/ # <change-id>: kebab-case verb phrase
│ ├── proposal.md
│ ├── design.md # optional
│ ├── tasks.md
│ └── specs/
│ ├── webapp/spec.md # one delta per capability named in the proposal
│ └── platform/spec.md
└── archive/ # reserved: the CLI moves applied changes here
Spec paths for this workflow are rooted at openspec/; the MCP server's download_spec_file keeps that root beneath .specs/ (.specs/openspec/changes/…), so move or symlink the change folder into your repo's openspec/changes/ before running the CLI.
# after MySpec has written the change and you have pulled it into the repo
openspec validate add-session-rename # delta headers + scenarios check out
# implement the tasks with your coding agent, then
openspec archive add-session-rename # merges the deltas into openspec/specs/<capability>/spec.md
# or drive the same steps from your editor with /opsx:apply and /opsx:archive OpenSpec vs the MySpec brownfield flow
| OpenSpec workflow | MySpec brownfield | |
|---|---|---|
| Stages | explore → proposal → specs → design → tasks | interview → proposal → requirements delta → tasks (optional) |
| Proposal | Names capabilities (the contract for the specs stage) | Contains the Technical Solution with flow and schema diagrams |
| Requirements | One delta file per capability; ADDED / MODIFIED / REMOVED / RENAMED + Scenarios | One Requirements Delta grouped by module; AR-/BR-/CR- + EARS+ |
| Design | Optional design.md (context, decisions, risks) | Inside the proposal |
| Root | openspec/changes/<change-id>/ | specs/<change>/ |
| Best when | Your repo already has openspec/ baselines and you archive changes with the CLI | You want the leanest path from "change this" to a coded delta your agent can act on |
Implementing the change
Once the change folder is in your repository, your coding agent works task group by task group, ticking N.M boxes, and you archive the change with the OpenSpec CLI when it ships. Through the MySpec MCP server the agent can also update the files as reviewable revisions while it works - passing expected_version so nobody's edit is overwritten.
Other workflows
The default four-file bundle: interview → constitution → requirements → solution → tasks.
GitHub Spec Kit's feature-scoped flow: interview → constitution → specify → plan → tasks.
OpenSpec's change-proposal flow: explore → proposal → delta specs → design → tasks.
Files this workflow writes
Project vision, core principles, and the MUST / MUST NOT constraints every later file has to obey.
User roles, FR-/NFR- requirements with EARS+ acceptance criteria; a coded AR-/BR-/CR- delta for brownfield changes.
Architecture, modules, data model, and API design with Mermaid flowchart, ER and sequence diagrams - plus C4 diagrams when your organisation enables them.
Ordered, sized implementation tasks grouped into milestones, traced back to requirement IDs.
Why a brownfield change is needed, what changes, the technical solution, and its impact on existing code.
Spec Kit's prioritised user stories and success criteria, or OpenSpec's ADDED / MODIFIED / REMOVED / RENAMED requirement deltas.
Spec Kit's technical plan: technical context, constitution gates, architecture, data model, and key decisions.
OpenSpec's optional context, goals / non-goals, decisions, and risks for a change.
Let the AI Architect write it for you
MySpec interviews you, then drafts every spec file with collect → generate → review gates. Free during Open Beta.