| name | Artefacts: Create Roadmap |
| description | {{ ๐ซ๐ซ๐ซ }} Generate the HTML roadmap dashboard deterministically via roadmap.py render. |
| when_to_use | When you want to view or share the current roadmap as an interactive dashboard rather than reading roadmaps.json directly. |
| model | haiku |
| disable-model-invocation | true |
| allowed-tools | ["Read","Glob","Bash(python3:*)","Bash(open:*)"] |
| argument-hint | ["phase name (optional","when several are active)"] |
Render the interactive roadmap dashboard. The HTML is generated deterministically by roadmap.py render from the template at ~/.claude/library/templates/roadmap-artefact.html โ this skill runs the command and opens the result; it writes no HTML itself. Same data in, same file out, so regenerated artefacts diff cleanly and can never drift from roadmaps.json.
Shared conventions (statuses, colour table): ~/.claude/library/references/roadmap-conventions.md.
Steps
- Check the format. Run
python3 "$HOME"/.claude/library/scripts/roadmap.py detect. Exit 3 = old simple format โ stop and tell the user to run roadmap-migrate first. Exit 2 = could not locate/parse โ ask for the path. Proceed on exit 0.
- Render. Run
python3 "$HOME"/.claude/library/scripts/roadmap.py render, adding --phase "$ARGUMENTS" when the user named a phase (required if several are active). Default output: {project_root}/docs/artefacts/roadmap-{slug}.html. On a validation-discrepancy note in the output, still render (the page shows a discrepancy banner) but include the discrepancies in your report.
- Open and report.
open the written file. Report: the file path; milestone and task counts plus done percentage (roadmap.py stats); the unblocked todo tasks (roadmap.py ready โ surfaced directly, no need to open the file); any validation discrepancies.
Notes
- The dashboard refreshes automatically when
roadmap-maintain runs (recompute --render); invoke this skill for the first render or an on-demand refresh.
- Sections, palette and behaviour live in the template. To change the dashboard's look, edit
library/templates/roadmap-artefact.html; to change status colours, change the canonical table (STATUS_STYLE in roadmap.py + the conventions reference) โ never patch a generated file.
- The artefact is generated in the CLI's own canonical form (tabs, single-line JSON payload), not Prettier's. A repo that runs Prettier (or another formatter) in a pre-commit hook or CI should exclude it โ add
docs/artefacts/roadmap-*.html to .prettierignore, the same way .claude/roadmaps.json is already excluded โ so regenerating the dashboard never fights the formatter.