openspec-roadmap
Manage large feature development by decomposing PRDs into actionable, tracked OpenSpec slices.
Install
mkdir -p .claude/skills/openspec-roadmap && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11821" && unzip -o skill.zip -d .claude/skills/openspec-roadmap && rm skill.zipInstalls to .claude/skills/openspec-roadmap
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Decomposes a PRD or large epic into prioritized OpenSpec slices in openspec/roadmap.md and keeps slice lifecycle in sync with propose, apply, and archive. Use when a PRD exists but work is still one mega proposal, when breaking a feature into multiple OpenSpec changes, when picking the next slice, or when updating roadmap status after OpenSpec steps.Key capabilities
- →Decompose a PRD or large epic into OpenSpec slices
- →Prioritize OpenSpec slices in `openspec/roadmap.md`
- →Keep slice lifecycle in sync with propose, apply, and archive
- →Pick the highest-priority slice with `Ready` status
- →Delegate to `openspec-propose` for `Ready` slices
- →Update slice status and progress log after OpenSpec steps
How it works
The skill manages the `openspec/roadmap.md` file to decompose large epics into prioritized OpenSpec slices and keeps their lifecycle status updated.
Inputs & outputs
When to use openspec-roadmap
- →Decompose large epic into slices
- →Update roadmap status
- →Bootstrap new project roadmap
About this skill
OpenSpec Roadmap
Bridge PRD / large epic → multiple OpenSpec changes using openspec/roadmap.md. Do not replace OpenSpec CLI skills (openspec-propose, openspec-apply-change, openspec-archive-change); orchestrate them and keep the roadmap current.
Roadmap format and templates: REFERENCE.md. The consumer repo uses exactly one roadmap file at openspec/roadmap.md.
When to use
| Situation | Action |
|---|---|
| PRD exists, no execution plan | Bootstrap → openspec/roadmap.md |
| Need next unit of work | Pick highest-priority slice with status Ready |
Slice is Ready | Delegate to openspec-propose using exact Candidate OpenSpec change id (1:1 slice → change folder) |
| Change approved / implementing | Delegate to openspec-apply-change; set slice Applying |
| Change done | Delegate to openspec-archive-change; set slice Archived |
| Upstream only conversation | Create a PRD.md file first, then bootstrap |
Orchestration
`PRD.md` file / tracked issue
↓
openspec-roadmap → openspec/roadmap.md (concise slices)
↓ (per slice, status Ready)
openspec-propose → openspec/changes/<Candidate OpenSpec change id>/
openspec-apply-change → implementation
openspec-archive-change → archive
↓
openspec-roadmap → update slice status + progress log
File layout
| Artifact | Path |
|---|---|
| Roadmap | openspec/roadmap.md |
| Roadmap config | openspec/config.yaml (openspec_roadmap) |
| Temporary roadmap assets | openspec/.temp_assets/ |
The roadmap is a planning file, not an OpenSpec change. Do not duplicate proposal/design/tasks content from openspec/changes/ into the roadmap.
Temporary working files used to prepare or apply slices (for example audit.md, checklists, scratch analysis notes, or intermediate outputs) must be stored under openspec/.temp_assets/.
These files are ephemeral support artifacts and must not be committed.
Token budget and loading scope
Use openspec/config.yaml to keep context bounded. Default to these constraints unless the repo has stricter values:
- Mode: default roadmap format (preferred).
- Load only:
openspec/roadmap.md- selected slice
- linked OpenSpec change
- directly referenced files
- Do not load the full PRD unless the selected slice is ambiguous.
- Respect token ceilings from config before adding optional context.
openspec/config.yamlis reference-only guidance for limits and loading; it must never be used to regenerate, rewrite, or recreate OpenSpec specs.
Slice ↔ change
- 1:1 for implementable slices: each slice has a
Candidate OpenSpec change idthat becomes one change underopenspec/changes/. - Exception: doc-only / audit slices may use a single
audit-*change.
Change id naming rule (mandatory)
- Always prefix
Candidate OpenSpec change idwith the slice id lowercased, followed by the slice title slug. - Format:
<slice-id-lower>-<slice-title-kebab>. - Example:
T10 - audit legacy test harness->t10-audit-legacy-test-harness. - Keep
Spec linkaligned with the same id:openspec/changes/<change-id>/. - If the slice title changes while the slice is still non-executed (
ReadyorSpec Proposed), update both the candidate id and spec link to keep them aligned.
At propose (mandatory)
When delegating to openspec-propose for a slice in Ready:
- Read
Candidate OpenSpec change idfrom that slice block inopenspec/roadmap.md. - Pass that exact id to
openspec-proposeso the change folder isopenspec/changes/<change-id>/. - Do not invent a new slug from the goal, PRD text, or conversation — the roadmap id is the source of truth.
- If
Candidate OpenSpec change idis missing or does not match<slice-id-lower>-<slice-title-kebab>, fix the roadmap first, then propose. - After propose, set
Spec linkand progress log to the same id; reject mismatched folder names.
Example: ### T09 - Location Search And Proposal Add Discovery with candidate id t09-location-search-and-proposal-add-discovery → propose into openspec/changes/t09-location-search-and-proposal-add-discovery/.
Why this matters: stable 1:1 mapping between slice headings, roadmap status, change folders, and archive paths.
Slice IDs
| Prefix | Use |
|---|---|
F | Product feature slices |
R | Refactoring slices (no intended behavior change) |
T | Testing and quality slices |
D | Documentation-only slices |
I | Infrastructure/tooling slices (optional) |
Number sequentially within prefix (F01, R02, …).
Prefix decision rules:
- Use
Fwhen user-visible behavior or API behavior changes. - Use
Rfor structural code improvements without intended behavior changes. - Use
Twhen the primary output is tests, coverage, or reliability harness work. - Use
Dwhen the primary output is documentation/runbook/spec support text. - Use
Ifor CI, build, tooling, or environment changes. - Split mixed slices into smaller slices when possible (for example
R+T).
Status model
Fixed lifecycle: Ready → Spec Proposed → Applying → Applied → Archived, plus Blocked.
| Transition | Roadmap update | Delegate to |
|---|---|---|
| Pick slice | — | — |
| Change created | Spec Proposed; Spec link = openspec/changes/<Candidate OpenSpec change id>/ | openspec-propose using exact Candidate OpenSpec change id |
| Implementation started | Applying; branch/notes optional | openspec-apply-change |
| Code/tests verified | Applied; tests + validation commands | (during apply) |
| Change archived | Archived; archive path + date | openspec-archive-change |
| Cannot proceed | Blocked; open question + recommendation | — |
Follow the Agent update checklist in REFERENCE.md at each step.
Parallel execution policy
OpenSpec supports multiple open changes, but lifecycle transitions must stay deterministic.
- Allow parallel proposals: multiple slices can be in
Spec Proposed. - Limit active implementation: keep at most 2 slices in
Applyingat once. - Critical-area safeguard: allow at most 1
Applyingslice at a time for critical domains (for example payments, auth, checkout). - Keep
nextatomic: onenextcommand moves exactly one lifecycle gate for one slice.
Spec verification gate (mandatory)
Between propose, apply, and archive, always run the repository OpenSpec spec verification command and fix any issues before continuing.
- after
openspec-propose: verify spec health before moving toopenspec-apply-change - after
openspec-apply-change: verify spec health before moving toopenspec-archive-change - after
openspec-archive-change: verify spec health before selecting the next slice
If verification fails, stop progression, resolve issues, re-run verification, then continue.
Modes
1. Bootstrap
Create or update openspec/roadmap.md from a PRD or epic:
- Read PRD/issue,
CONTEXT.md(domain terms), andAGENTS.md(OpenSpec + GitNexus gates). - Legacy migration (mandatory when present): if
openspec/TIMELINE_*.mdoropenspec/programs/*.mdexists, run legacy migration before writing the roadmap.- Merge slice content into the single canonical file
openspec/roadmap.md(fixed path; no<context>suffix). - Delete every legacy file after a successful merge. Do not
git mv/ renameTIMELINE_*→roadmap.mdand do not keep legacy paths as fallbacks. - If
openspec/roadmap.mdalready exists, merge legacy slices into it (resolve id collisions); do not create a second planning file.
- Merge slice content into the single canonical file
- Create or update
openspec/config.yamlwithopenspec_roadmapdefaults and token/context limits. - Ensure
.gitignorecontainsopenspec/.temp_assets/(create/update it if needed). - Decompose into short, actionable slices.
- Write roadmap sections per REFERENCE.md and ROADMAP_SKELETON.md: header, how-to, status model, compacted history, slices, dependency map, recommended execution order, agent checklist.
- Link PRD at top (
PRD:issue URL or path). - Register the workflow in agent docs — see Agent documentation below.
- Do not run
openspec-proposeuntil user asks to start a slice.
Parameters (adapt per roadmap):
scope— what the roadmap covers- Priority scale — default P0 (urgent) / P1 / P2
principles— optional global constraints (testing, security, etc.)execution_order— ordered slice list; note when reordered- Item kind —
F|R|T|D(Ioptional) per slice
2. Add slice / lifecycle
- Add slice: append one
### <ID> - Titleblock using the default skeleton (see REFERENCE). - Update lifecycle: change status and progress log only; link paths, do not copy OpenSpec artifacts.
- Pick next: highest priority among
Ready, respecting execution order unless user overrides. - Reorder: update Recommended Execution Order + short note why.
Quick commands
Support lightweight command-style prompts that map to deterministic actions on openspec/roadmap.md.
| Command | Intent | Required input | Expected action |
|---|---|---|---|
status | Show roadmap state | none by default | Summarize slice counts by status, current blockers, and recommended next 1-2 slices. |
next:dry | Preview the next OpenSpec gate | none by default | Resolve the active slice and return exactly one next gate action (propose or apply or archive) without executing it. |
next | Execute one OpenSpec gate | none by default | Resolve the active slice and execute exactly one lifecycle gate: Ready -> run openspec-propose with that slice's Candidate OpenSpec change id; Spec Proposed -> run openspec-apply-change; Applied -> run `opens |
Content truncated.
When not to use it
- →Replacing OpenSpec CLI skills like `openspec-propose`
- →Using verbose, spec-like prose inside `openspec/roadmap.md`
- →Creating one mega OpenSpec change for an entire PRD
Limitations
- →Does not replace OpenSpec CLI skills
- →Roadmap is a planning file, not an OpenSpec change
- →Requires a 1:1 mapping between implementable slices and OpenSpec changes
How it compares
This skill bridges PRD planning and execution by creating a concise roadmap of OpenSpec slices, ensuring a 1:1 mapping between slices and changes, unlike direct implementation from a PRD.
Compared to similar skills
openspec-roadmap side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| openspec-roadmap (this skill) | 0 | 2mo | No flags | Intermediate |
| create-plan | 36 | 8mo | Review | Beginner |
| project-planner | 32 | 9mo | Review | Intermediate |
| system-design | 19 | 9mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
create-plan
antinomyhq
Generate detailed implementation plans for complex tasks. Creates comprehensive strategic plans in Markdown format with objectives, step-by-step implementation tasks using checkbox format, verification criteria, risk assessments, and alternative approaches. Use when users need thorough analysis and structured planning before implementation, when breaking down complex features into actionable steps, or when they explicitly ask for a plan, roadmap, or strategy. Strictly planning-focused with no code modifications.
project-planner
adrianpuiu
Comprehensive project planning and documentation generator for software projects. Creates structured requirements documents, system design documents, and task breakdown plans with implementation tracking. Use when starting a new project, defining specifications, creating technical designs, or breaking down complex systems into implementable tasks. Supports user story format, acceptance criteria, component design, API specifications, and hierarchical task decomposition with requirement traceability.
system-design
lagz0ne
Use when designing, architecting, or planning a new system from requirements or ideas - transforms concepts into navigable design catalog using EventStorming methodology, Mermaid diagrams, and progressive elaboration through 5 phases (Requirements, Big Picture, Processes, Data/Flows, Integration)
spec-kit-workflow
jmanhype
Guides specification-driven development workflow. Automatically invoked when discussing new features, specifications, technical planning, or implementation tasks. Ensures proper workflow phases (specify → clarify → plan → checklist → tasks → analyze → implement).
sparc-methodology
ruvnet
SPARC (Specification, Pseudocode, Architecture, Refinement, Completion) comprehensive development methodology with multi-agent orchestration
spec-workflow
TencentCloudBase
Standard software engineering workflow for requirement analysis, technical design, and task planning. Use this skill when developing new features, complex architecture designs, multi-module integrations, or projects involving database/UI design.