Skill: jcorrego/openspec (version 1.0.0)

--- name: openspec description: Spec-driven development with OpenSpec CLI. Use when building features, migrations, refactors, or any structured development work. Manages proposal → specs → design → tasks → implementation workflows. Supports custom schemas (TDD, rapid, etc.). Trigger on requests involving feature planning, spec writing, change management, or when /opsx commands are mentioned. --- # OpenSpec — Spec-Driven Development OpenSpec structures AI-assisted development into trackable changes with artifacts (proposal, specs, design, tasks) that guide implementation. ## Setup ```bash # Install globally npm install -g @fission-ai/openspec@latest # Initialize in a project cd /path/to/project openspec init --tools claude # Update after CLI upgrade openspec update ``` ## Core Workflow Each change follows: **new → plan → apply → verify → archive** ### 1. Start a Change ```bash # Create change folder with default schema openspec new change <name> # With specific schema openspec new change <name> --schema tdd-driven ``` ### 2. Plan (Create Artifacts) Use the CLI `instructions` command to get enriched prompts for each artifact: ```bash # Get instructions for next artifact openspec instructions --change <name> --json # Check progress openspec status --change <name> --json ``` **Artifact sequence (spec-driven schema):** 1. `proposal.md` — Why and what (intent, scope, approach) 2. `specs/` — Requirements + scenarios (Given/When/Then) 3. `design.md` — Technical approach and architecture decisions 4. `tasks.md` — Implementation checklist with checkboxes ### 3. Implement Read `tasks.md` and work through items, marking `[x]` as complete. ### 4. Verify ```bash openspec validate --change <name> --json ``` Checks completeness, correctness, and coherence. ### 5. Archive ```bash openspec archive <name> --yes ``` Merges delta specs into main `openspec/specs/` and moves change to archive. ## Agent Workflow (How to Use as an AI Agent) When the user asks to build/migrate/refactor something with OpenSpec: 1. **Check project state:** ```bash openspec list --json # Active changes openspec list --specs --json # Current specs openspec schemas --json # Available schemas ``` 2. **Create the change:** ```bash openspec new change <name> [--schema <schema>] ``` 3. **For each artifact**, get instructions and create the file: ```bash openspec instructions <artifact> --change <name> --json openspec status --change <name> --json ``` Then write the artifact file to `openspec/changes/<name>/`. 4. **Implement** tasks from `tasks.md`. 5. **Validate and archive:** ```bash openspec validate <name> --json openspec archive <name> --yes ``` ## CLI Quick Reference | Command | Purpose | |---------|---------| | `openspec list [--specs] [--json]` | List changes or specs | | `openspec show <name> [--json]` | Show change/spec details | | `openspec status --change <name> [--json]` | Artifact completion status | | `openspec instructions [artifact] --change <name> [--json]` | Get enriched creation instructions | | `openspec validate [name] [--all] [--json]` | Validate changes/specs | | `openspec archive <name> [--yes]` | Archive completed change | | `openspec schemas [--json]` | List available schemas | | `openspec templates [--json]` | Show template paths | | `openspec config` | View/modify settings | Always use `--json` for programmatic/agent use. ## Custom Schemas Schemas define artifact sequences. Create custom ones for different workflows: ```bash # Fork built-in schema openspec schema fork spec-driven my-workflow # Create from scratch openspec schema init my-workflow # Validate openspec schema validate my-workflow ``` Schema files live in `openspec/schemas/<name>/schema.yaml` with templates in `templates/`. For schema structure details, see [references/schemas.md](references/schemas.md). ## Project Structure ``` project/ ├── openspec/ │ ├── config.yaml # Project config (default schema, context, rules) │ ├── specs/ # Source of truth — current system behavior │ ├── changes/ # Active changes (one folder each) │ │ └── <change-name>/ │ │ ├── .openspec.yaml │ │ ├── proposal.md │ │ ├── specs/ # Delta specs (what's changing) │ │ ├── design.md │ │ └── tasks.md │ └── schemas/ # Custom schemas └── .claude/skills/ # Auto-generated Claude integration ``` ## Spec Format Specs use RFC 2119 keywords (SHALL/MUST/SHOULD/MAY) with Given/When/Then scenarios: ```markdown ### Requirement: User Authentication The system SHALL issue a JWT token upon successful login. #### Scenario: Valid credentials - GIVEN a user with valid credentials - WHEN the user submits login form - THEN a JWT token is returned ``` ## Delta Specs Changes don't rewrite specs — they describe deltas (ADDED/MODIFIED/REMOVED) that merge into main specs on archive. ## Config `openspec/config.yaml` sets defaults: ```yaml schema: spec-driven # or tdd-driven, rapid, custom context: | Tech stack: TypeScript, React, Node.js Testing: Jest rules: proposal: - Include rollback plan specs: - Use Given/When/Then format ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)