OpenSpec vs. Spec-Kit
Maestro offers two complementary spec-driven development tools:| Feature | OpenSpec | Spec-Kit |
|---|---|---|
| Focus | Change management & proposals | Feature specifications |
| Workflow | Proposal → Apply → Archive | Constitution → Specify → Plan → Tasks |
| Best For | Iterative changes, brownfield projects | New features, greenfield development |
| Output | Change proposals with spec deltas | Feature specifications and task lists |
| Directory | openspec/ | specs/ or project root |
- Making iterative changes to existing features
- You need explicit change proposals before implementation
- Working on brownfield projects with existing specifications
- You want a clear archive of completed changes
- Defining new features from scratch
- Establishing project constitutions and principles
- Creating detailed feature specifications
- Breaking down work into implementation tasks
Core Workflow
OpenSpec follows a three-stage cycle:Stage 1: Proposal (/openspec.proposal)
Create a change proposal before writing any code:
- Reviews
openspec/project.mdfor project conventions - Runs
openspec listto see active changes andopenspec list --specsfor existing capabilities - Scaffolds
proposal.md,tasks.md, and optionaldesign.md - Creates spec deltas showing what will be ADDED, MODIFIED, or REMOVED
- Validates with
openspec validate <change-id> --strict
openspec/changes/<change-id>/ directory with:
proposal.md— Why and whattasks.md— Implementation checklistspecs/<capability>/spec.md— Spec deltas
Stage 2: Apply (/openspec.apply)
Implement the approved proposal:
- Reads proposal and tasks
- Implements tasks sequentially
- Updates task checkboxes as work completes
- Ensures approval gate is passed before starting
Stage 3: Archive (/openspec.archive)
After deployment, archive the completed change:
- Moves
changes/<name>/tochanges/archive/YYYY-MM-DD-<name>/ - Updates source-of-truth specs if capabilities changed
- Validates the archived change with
openspec validate --strict
openspec archive <change-id> --yes (use --skip-specs for tooling-only changes that don’t affect capabilities)
Maestro-Specific Commands
/openspec.implement — Generate Auto Run Documents
Bridges OpenSpec with Maestro’s Auto Run:
- Reads the proposal and tasks from a change
- Converts tasks into Auto Run document format with phases
- Saves to
Auto Run Docs/with task checkboxes (filename:OpenSpec-<change-id>-Phase-XX-[Description].md) - Preserves task IDs (T001, T002, etc.) for traceability
- Groups related tasks into logical phases (5–15 tasks each)
/openspec.help — Workflow Overview
Get help with OpenSpec concepts and Maestro integration.
Directory Structure
OpenSpec uses a clear separation between current truth and proposed changes:Spec Delta Format
Changes use explicit operation headers:OpenSpec CLI Commands
The OpenSpec CLI provides these essential commands:| Command | Purpose |
|---|---|
openspec list | Display active changes in changes/ |
openspec list --specs | List existing capability specs |
openspec show <change-id> | View change or spec details |
openspec validate <change-id> --strict | Comprehensive validation |
openspec archive <change-id> --yes | Archive after deployment |
openspec spec list --long | Enumerate all specifications |
Viewing & Managing Commands
Access OpenSpec commands via Settings → AI Commands tab. Here you can:- View all commands — Click the chevron to expand and see the full prompt
- Check for Updates — Pull the latest workflow from GitHub
- Edit prompts — Customize prompts for your workflow
- Reset to default — Restore modified prompts to bundled version

Auto-Updates
OpenSpec prompts are synced from the Fission-AI/OpenSpec repository:- Open Settings → AI Commands
- Click Check for Updates in the OpenSpec section
- New workflow improvements are downloaded
- Your custom modifications are preserved
Tips for Best Results
- Proposal first — Never start implementation without an approved proposal
- Keep changes focused — One logical change per proposal
- Use verb-led IDs —
add-user-auth,update-api-schema,remove-legacy-handler - Include scenarios — Every requirement needs at least one
#### Scenario:block - Check existing work — Run
openspec listbefore creating proposals to avoid conflicts - Validate early — Run
openspec validate <change-id> --strictbefore sharing - Archive promptly — Archive changes after deployment to keep
changes/clean