All image references now consistently use relative ./screenshots/ paths instead of mixed formats (some were /screenshots/ or screenshots/).
6.6 KiB
title, description, icon
| title | description | icon |
|---|---|---|
| OpenSpec Commands | Spec-driven development workflow for managing code changes with AI-assisted proposal, implementation, and archival. | code-pull-request |
OpenSpec is a spec-driven development tool from Fission-AI/OpenSpec that ensures alignment between humans and AI coding assistants before any code is written. Maestro bundles these workflow commands and keeps them updated automatically.
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 |
Use OpenSpec when:
- 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
Use Spec-Kit when:
- Defining new features from scratch
- Establishing project constitutions and principles
- Creating detailed feature specifications
- Breaking down work into implementation tasks
Both tools integrate with Maestro's Auto Run for autonomous execution.
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
Creates: A 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
Tip: Only start implementation after the proposal is reviewed and approved.
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
CLI command: 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:
openspec/
├── project.md # Project conventions
├── specs/ # Current truth - what IS built
│ └── <capability>/
│ ├── spec.md # Requirements and scenarios
│ └── design.md # Technical patterns
└── changes/ # Proposals - what SHOULD change
├── <change-name>/
│ ├── proposal.md # Why, what, impact
│ ├── tasks.md # Implementation checklist
│ └── specs/ # Spec deltas (ADDED/MODIFIED/REMOVED)
└── archive/ # Completed changes
Spec Delta Format
Changes use explicit operation headers:
## ADDED Requirements
### Requirement: New Feature
The system SHALL provide...
#### Scenario: Success case
- **WHEN** user performs action
- **THEN** expected result
## MODIFIED Requirements
### Requirement: Existing Feature
[Complete updated requirement text]
## REMOVED Requirements
### Requirement: Old Feature
**Reason**: [Why removing]
**Migration**: [How to handle]
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
Commands marked with a Maestro badge are Maestro-specific additions to the upstream workflow.
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