Skip to main content
WORKFLOW · Brownfield · OPENSPEC CLI COMPATIBLE

The OpenSpec Workflow

OpenSpec's change-proposal flow: explore → proposal → delta specs → design → tasks.

DEFINITION // GEO SNIPPETENTITY EXTRACT

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.

THINK OF IT AS - REDLINES ON THE DRAWINGS OF RECORD

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.

SECTION 01 OPENSPEC

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.

SECTION 02 STAGES

Explore → proposal → specs → design → tasks

OpenSpec generate-brownfield · openspec-brownfield-v1

  1. 1 Explore (reads your code)
    no file yet
  2. 2 Proposal
    writes proposal.md
  3. 3 Delta specs
    writes specs/<capability>/spec.md
  4. 4 Solution
    writes design.md
  5. 5 Tasks
    writes tasks.md
  6. Complete
    hand off via MCP or ZIP
  1. 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; archive is reserved) and cannot advance until real files were read - mount a folder in Chrome or run npx -y @myspec/mcp-server reverse --root ..
  2. Proposalproposal.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.
  3. 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.
  4. Designdesign.md. The platform normalises OpenSpec's legacy design stage to solution, so the stepper labels this stage "Solution" while the file it writes is still design.md: Context, Goals / Non-Goals, Decisions, Risks / Trade-offs. Optional in OpenSpec; brief for small changes.
  5. Taskstasks.md: one numbered group per capability with N.M checkbox tasks, at planning level - the workflow never implements the change.
SECTION 03 ON DISK

Folder layout and the CLI round-trip

OpenSpec layout as MySpec writes it tree
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.

Closing the loop with the OpenSpec CLI bash
# 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
SECTION 04 COMPARED

OpenSpec vs the MySpec brownfield flow

OpenSpec workflowMySpec brownfield
Stagesexplore → proposal → specs → design → tasksinterview → proposal → requirements delta → tasks (optional)
ProposalNames capabilities (the contract for the specs stage)Contains the Technical Solution with flow and schema diagrams
RequirementsOne delta file per capability; ADDED / MODIFIED / REMOVED / RENAMED + ScenariosOne Requirements Delta grouped by module; AR-/BR-/CR- + EARS+
DesignOptional design.md (context, decisions, risks)Inside the proposal
Rootopenspec/changes/<change-id>/specs/<change>/
Best whenYour repo already has openspec/ baselines and you archive changes with the CLIYou want the leanest path from "change this" to a coded delta your agent can act on
SECTION 05 HAND-OFF

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.

WORKFLOWS MYSPEC · SPEC KIT · OPENSPEC

Other workflows

SPEC FILES FIELD GUIDE

Files this workflow writes

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.