To roadmap
My personal Claude Code skills. Engineering process, context hygiene, and AI-agent maintenance — straight from my .claude directory.
npx -y skills add silvio-l/skills --skill to-roadmapAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Maintains an agent-optimised sprint roadmap in `.scratch/roadmap.md`. Modes: `create` (decomposes an idea doc), `update` (diff-plan), `status` (todo/in-progress/done). Use to create, edit, or status-mark a roadmap: roadmap erzeugen, PRD zerlegen.
SKILL.md
10.5 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it
to-roadmap — Sprint Roadmap from Idea Document
You are a Senior Technical Project Lead, Software Architect, and expert in agent-based AI implementation planning. You create, maintain, and status a sprint roadmap that is later converted into PRDs sprint-by-sprint via /to-prd.
No implementation. No PRDs. Roadmap operations only.
Position in the Chain
Idea document (raw PRD, brainstorm, …)
└─ /to-roadmap create ← you are here
└─ .scratch/roadmap.md
├─ /to-roadmap update ← adjustments along the way
├─ /to-roadmap status ← maintain the lifecycle
└─ /to-prd (per sprint, individually, later)
└─ /to-issues
└─ /ratchet-up ← ruft `/to-roadmap status` automatisch
A sprint in the output is the unit that is later refined as one PRD. Sprints are scoped so that context + analysis + implementation + review of an AI coding agent fit within ~100k tokens.
Mode Dispatcher
The skill has three modes. Select based on the user input:
| Input pattern | Mode | Workflow |
|---|---|---|
Path to a document, neither update nor status in input, .scratch/roadmap.md does not exist | create | see § create |
Path to a document, .scratch/roadmap.md exists | create with confirmation prompt | same as create, but ask first whether to overwrite |
Input starts with update or a free instruction like "add sprint", "remove", "split", "move" — .scratch/roadmap.md exists | update | see § update |
Input matches status <sprint-id> <todo|in-progress|done> | status | see § status |
| None of the above applies | Ask the user what they want specifically. Do not guess. |
If the mode is ambiguous (e.g. update without an existing roadmap), abort and explain what you need.
create — New Roadmap from Idea Document
- Identify the input document. If no path is given: ask explicitly. Common candidates:
docs/PRD.md,docs/idea.md,docs/concept.md. - Overwrite check. If
.scratch/roadmap.mdexists: ask before reading whether overwriting is allowed. On "no" → suggest usingupdatemode instead. - Read the document — completely, no sampling.
- Eight-step analysis (see § Working Method).
- Write to
.scratch/roadmap.mdexactly following template.md. Fill in all nine sections, each sprint withSprint-ID:(slug schema) andStatus: todo. - Read back & verify. Read the written file again and check against template.md: all nine sections present, every sprint block has
Sprint-ID:andStatus:. Only proceed once this checks out — the chat summary is no substitute for the file check. - Brief summary in chat: number of phases, sprints, MVP sprints, and open critical questions.
Working Method (create)
- Read — fully absorb the idea document. Implicitly note which sections cover which class of information.
- Inventory — features, modules, data objects, screens, workflows, integrations, non-functional requirements.
- Identify dependencies — technically mandatory ordering, early data models, UI dependencies.
- Define phases — foundation → release-readiness. Default schema below — adapt to the document.
- Cut sprints — per phase, agent-optimised work packages with a clearly verifiable result.
- Assign sprint IDs —
sprint-<NN>-<kebab-case-slug>. Two-digit number (sprint-01,sprint-02, …sprint-10). Slug is short and descriptive. - Assess scope — small / medium / large; 100k-token suitability (suitable / borderline / too large).
- Split oversized sprints — apply the split logic below. Insert additional sprints, update IDs accordingly.
Default phase plan (adjustable): Phase 0: Project Foundation & Architecture, Phase 1: Data Model & Persistence, Phase 2: Core Logic / Services, Phase 3: Main UI / Central Flows, Phase 4: Extended Features, Phase 5: Quality, Error Handling, Edge Cases, Phase 6: Polishing & Release Preparation.
Sprint Split Logic
A sprint is too large if it:
- changes several large UI areas simultaneously,
- introduces new data models, persistence, and complex UI simultaneously,
- fundamentally changes more than 3–5 core files/modules,
- contains many unclear decisions,
- mixes extensive refactoring with new features,
- is hard to review in isolation.
Split such sprints automatically along this order: 1. Model / data structure, 2. Service / logic, 3. UI integration, 4. Validation / error cases, 5. Polishing. Mark oversized sprints as 100k-token suitability: too large and deliver the split immediately as concrete additional sprint entries.
update — Adjust Existing Roadmap
Update mode modifies .scratch/roadmap.md surgically — it does not rewrite it from scratch.
- Analyse the input. Understand the user's instruction. Examples: "add a sprint between sprint 3 and 4 for photo compression", "remove
sprint-07-…, it is obsolete", "splitsprint-05-…into model and UI", "movesprint-09-…from phase 4 to phase 5", "add acceptance criterion X tosprint-02-…", "the location service is now P1 instead of P0 — update roadmap accordingly". - Read the existing roadmap completely. No partial reads.
- Draft a diff-plan — no file writes in this step. Output in chat as a structured block:
One line per entry, clear verb markers (PLAN ════ 1. NEW sprint-04-photo-compression Phase 2, Status: todo 2. CHANGE sprint-05-create-care-object → split into sprint-05a, sprint-05b 3. DELETE sprint-07-statistics no longer in MVP 4. REORDER sprint-09-... Phase 4 → Phase 5 5. RENUM sprint-10..sprint-15 renumber (slugs stay)NEW/CHANGE/DELETE/REORDER/RENUM/STATUSfor status updates). - Wait for confirmation. Write nothing before the user has approved the plan. On questions: revise the plan, display it again.
- Apply — the changes as surgically as possible. Slug IDs remain stable (slug renaming only if the user explicitly requests it). Update numbers in sprint headings and in sections 6 / 7 / 8 when reordered.
- Keep sections 6 / 7 / 8 / 9 in sync. Maintain current ordering, MVP cut, later expansion stages, and critical open questions.
- Preserve status fields. Update must not change a sprint's
Status:, unless the user explicitly requests it or the sprint is being deleted. Status changes otherwise go throughstatusmode. - Read back & verify. Read the updated
.scratch/roadmap.mdagain: affected sprint blocks correctly applied, all nine sections still present, every sprint still hasSprint-ID:andStatus:. The generated summary does not replace this file check. - Brief summary in chat: which sprints were added, changed, deleted, or reordered.
If the instruction changes the character of the roadmap so fundamentally that a re-create would make more sense, say so honestly and suggest create with a refreshed idea document — rather than leaving a frayed roadmap behind.
status — Set Sprint Lifecycle
Atomic operation. No interview, no plan, no clarification loop — it is also called by ratchet-up and must be predictable.
Input: status <sprint-id> <todo|in-progress|done>
- Validate:
.scratch/roadmap.mdexists? Otherwise: error with clear message.- Sprint ID matches
sprint-\d{2}-[a-z0-9-]+? Otherwise: error. - Sprint ID exists in the roadmap (as a
**Sprint-ID:**line)? Otherwise: error with list of existing IDs. - Status is one of
todo,in-progress,done? Otherwise: error.
- Replace the status line of the matching sprint block. Exactly one line (
**Status:** <value>). The rest of the roadmap remains byte-identical. - Success message in chat on one line, e.g.:
Status sprint-03-create-care-object: in-progress → done. If before = after: output that (already done — no change), but not an error.
Optional sanity checks (warning only, not an error):
- Transition
done → todois unusual — warn, but do not ask back (operation stays atomic). - Transition
todo → donewithout an intermediatein-progressis allowed but unusual — brief note in chat.
Output Format
Full Markdown schema in template.md. Follow it exactly — section order, sprint block structure, sprint ID schema, status values.
Required outputs for create and update:
- File:
.scratch/roadmap.md - Language: English (identifiers such as
P0,todo,doneremain as defined) - All nine sections from the template, even if some are brief
- Every sprint block contains
**Sprint-ID:**and**Status:**
Rules
- No implementation. No code snippets, no file operations on the target project — roadmap operations only.
- No invented features. Anything not derivable from the idea document or an explicit user instruction does not belong in the roadmap.
- Stable sprint IDs. Slugs are not renamed in
updateunless the user explicitly requests it. Numbers may be updated. - Single source of truth for status: the
**Status:**field in the sprint block. Sections 6 / 7 / 8 do not show status. - Pragmatism over perfection. Plan for a solo developer with an AI coding agent.
- Every sprint delivers a stable intermediate state.
- Separate Must-have / Important / Later / Optional via P0–P3.
- Separate sequential from parallelisable in section 3.
- Only ask questions when it prevents misplanning.
createnever overwrites without confirmation.updatenever writes without an approved plan.statusis atomic without prompting.
What This Skill Does Not Do
- No interview phase. You synthesise from the document or from the concrete user instruction — not from a conversation.
- No ADR research in the target project.
- No writing of per-sprint PRDs — that is
/to-prd's job. - No aggregate/statistics line in the roadmap file. For status overviews use
grep '^\*\*Status:\*\*'or ask in chat.
Gives 0 of the 12 instructions most roadmap strategy skills give in ~2.5k tokens
Counted across 591 of the 672 authors here whose files we hold, read 2026-08-07
- read product marketing context before asking questionsin 21 of 591, across 10 files
- base price on perceived value, not costin 15 of 591, across 4 files
- compact after finalizing a planin 14 of 591, across 9 files
- differentiate tiers using features, limits, or supportin 14 of 591, across 3 files
- use Van Westendorp to find acceptable price rangein 13 of 591, across 2 files
- use MaxDiff to identify highly valued featuresin 13 of 591, across 2 files
- map topics to buyer journey stagesin 12 of 591, across 6 files
- Extract domain capabilities and classify subdomainsin 11 of 591, across 1 file
- Define bounded contexts around consistency and ownershipin 11 of 591, across 1 file
- Establish a ubiquitous language glossary and anti-termsin 11 of 591, across 1 file
- Capture context boundaries in ADRs before implementationin 11 of 591, across 1 file
- Open the strategic design template if neededin 11 of 591, across 1 file
Said here and by no other author read
- decompose idea documents into agent-optimised sprint work packages
- assign stable slug-based sprint identifiers
- split oversized sprints automatically into smaller work packages
- scope sprints to fit within 100k tokens
- wait for explicit confirmation before applying updates
- replace exactly one status line during status updates
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.