skills/doc-create-roadmap-omega/SKILL.md
{{ 𝛀𝛀𝛀 }} Create a project roadmap document in structured milestone format
npx skillsauth add jasonwarrenuk/goblin-mode doc-create-roadmap-omegaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a project roadmap at docs/roadmaps/{name}.md with milestone-based task organization and dependency tracking via Mermaid diagrams.
| Codebase Context | Arguments Passed | Action |
| -------------------- | ---------------- | ------------------------------------------------------------------- |
| No other roadmaps | 0 | Create overall project roadmap (probably mvp.md) |
| N/A | 1 | Create roadmap for feature/phase specified in argument |
| Other roadmaps exist | 0 | Ask user which roadmap to create or if creating a new feature phase |
docs/roadmaps/ directory exists and contains roadmaps.claude/roadmaps.json exists and parse its contentsRead available documentation to understand:
Sources to check:
README.md (project overview)docs/ directory (all markdown files).claude/CLAUDE.md (project-specific conventions)docs/roadmaps/ (if creating additional roadmap)Ask targeted questions to define:
Milestone count and themes:
Task categories per milestone:
Dependencies:
Create file at docs/roadmaps/{name}.md with:
---
description: [Brief one-line description from user]
---
# {Project Name}: {Roadmap Title}
| | Status | Next Up | Blocked |
| -------- | ----------------------- | ----------------- | ----------------- |
| **{Cat}** | [current status] | [next priority] | [key blockers] |
---
## Contents
- [Milestones](#milestones)
- [Milestone 1: {Name}](#m1)
- [Milestone 2: {Name}](#m2)
- ...
- [Progress Map](#map)
- [Links](#links)
- [Beyond MVP](#post-mvp)
<a name="m{N}"><h3>Milestone {N}: {Name}</h3></a>
> [!IMPORTANT]
> **Goal:** {Milestone objective}
<a name="m{N}-doing"><h4>In Progress (Milestone {N})</h4></a>
- [ ] {MilestoneCategory}.{Seq}. {Task description}
<a name="m{N}-todo"><h4>To Do (Milestone {N})</h4></a>
- [ ] {MilestoneCategory}.{Seq}. {Task description} — **depends on {TaskID}**
<a name="m{N}-blocked"><h4>Blocked (Milestone {N})</h4></a>
- [ ] {MilestoneCategory}.{Seq}. {Task description} — **depends on {TaskID}**
<a name="m{N}-done"><h4>Completed (Milestone {N})</h4></a>
- [x] {MilestoneCategory}.{Seq}. {Task description}
At <a name="map"> section, include ONE Mermaid diagram showing ALL tasks across ALL milestones with full dependency graph:
---
title: Progress Map
---
graph TD
{TaskID}["`*{TaskID}*<br/>**{Category}**<br/>{short desc}`"]:::open --> {DepTaskID}
m{N}{"`**Milestone {N}**<br/>{Name}`"}:::mile
classDef default,blocked fill:#fff7fb;
classDef open fill:#fff9e5;
classDef mile fill:#c4fffe;
Format: {Milestone}{Category}.{Seq}
Examples:
1WA.1 - Milestone 1, Workflow Abstractions, task 12TI.7 - Milestone 2, TUI Interface, task 73DC.2 - Milestone 3, Direct Commands, task 2Sub-tasks:
2TI.3a, 2TI.3bRules:
In task descriptions:
- [ ] 2TI.14. Build validate screen — **depends on 2TI.13, 2TI.7**
In Mermaid diagrams:
2TI.13 --> 2TI.14
2TI.7 --> 2TI.14
Class assignment:
:::open - No blocking dependencies (ready to start):::blocked (default) - Has dependencies or explicit blockers:::mile - Milestone nodeAdd/update .claude/roadmaps.json:
{
"roadmaps": [
{
"name": "{Roadmap Name}",
"path": "docs/roadmaps/{name}.md"
}
]
}
If file exists, append to array. If creating first roadmap, create file.
For each milestone:
At top of roadmap, create status table showing per-category progress:
| | Status | Next Up | Blocked |
| -------- | ----------------------- | ----------------- | ----------------- |
| **Core** | ✅ Milestone 1 complete | — | — |
| **CLI** | Basic structure | Direct commands | `check` (needs X) |
| **TUI** | Screens implemented | Keyboard nav | All screens |
After creating the roadmap:
docs/roadmaps/{name}.md.claude/roadmaps.json updateddoc:update:roadmapThis command creates roadmaps compatible with commands/doc/update/roadmap.md:
#m{N}-doing, #m{N}-todo, #m{N}-blocked, #m{N}-done- [ ] unchecked, - [x] checked— **depends on {TaskID}**classDef default,blocked fill:#f9f; etc.tools
{{ 𝚫𝚫𝚫 }} Rebuild roadmap-system.zip, the distributable snapshot of the roadmap tooling (scripts, HTML template, conventions reference, and every roadmap-touching skill, including this one).
tools
--- name: "Suggest: Task" description: "{{ 𝚫𝚫𝚫 }} Suggest the next logical task — grounded in the roadmap's pre-vetted ready-set when one exists, codebase analysis otherwise" when_to_use: "When you don't know what to work on next and want a grounded recommendation rather than picking arbitrarily." model: haiku effort: low disable-model-invocation: true allowed-tools: ["Read", "Glob", "Grep", "Bash(python3:*)", "Bash(npm:*)", "Bash(bun:*)", "Bash(pnpm:*)", "Bash(deno:*)"] argument-hint: [named
development
{{ 𝛀𝛀𝛀 }} Convert an old simple-style roadmap (single Markdown, four statuses, <a name> anchors, roadmaps.json pointer registry) into the rich phase-array format (roadmaps.json source of truth + PHASE task list + prose overview).
data-ai
{{ ƔƔƔ }} Create a pull request to main — wordy or shiny (with screenshots), ready-for-review or draft