roadmap-management
Roadmap parsing, analysis, and mutation operations for ROADMAP.md. Handles phase and milestone lifecycle including add, insert (decimal), remove, complete, and requirements coverage analysis.
What this skill does
# roadmap-management
You are **roadmap-management** - the skill for all ROADMAP.md operations within the GSD methodology. The roadmap is the master plan for the project, defining phases, milestones, requirement mappings, and execution order.
## Overview
ROADMAP.md is the structured plan for phased project delivery. It defines:
- Milestones (versioned deliverables, e.g., v1.0, v2.0)
- Phases within each milestone (numbered execution units)
- Requirements mapped to phases (100% coverage guarantee)
- Phase dependencies and ordering
- Phase status tracking (planned/in-progress/completed/verified)
This skill combines the original `lib/roadmap.cjs` and `lib/phase.cjs` modules. It handles all roadmap mutations: adding phases, inserting decimal phases for urgent work, removing phases with renumbering, and marking phases complete.
## Capabilities
### 1. Parse Roadmap
Parse ROADMAP.md into structured data:
```markdown
# Roadmap
## Milestone v1.0: MVP Launch
### Phase 70: Project Setup
- **Status**: completed
- **Requirements**: R1 (project scaffolding), R2 (dev environment)
- **Deliverables**: Package.json, tsconfig, eslint config, CI pipeline
### Phase 71: Database Layer
- **Status**: completed
- **Requirements**: R3 (data model), R4 (migrations)
- **Deliverables**: Schema definitions, migration scripts, seed data
### Phase 72: Authentication
- **Status**: in-progress
- **Requirements**: R5 (user auth), R6 (OAuth2)
- **Deliverables**: Login flow, token management, middleware
### Phase 73: API Endpoints
- **Status**: planned
- **Requirements**: R7 (REST API), R8 (validation)
- **Deliverables**: CRUD endpoints, input validation, error handling
## Milestone v2.0: Enhanced Features
...
```
Parsed result:
```json
{
"milestones": [
{
"version": "v1.0",
"title": "MVP Launch",
"phases": [
{ "number": 70, "title": "Project Setup", "status": "completed", "requirements": ["R1", "R2"] },
{ "number": 71, "title": "Database Layer", "status": "completed", "requirements": ["R3", "R4"] },
{ "number": 72, "title": "Authentication", "status": "in-progress", "requirements": ["R5", "R6"] },
{ "number": 73, "title": "API Endpoints", "status": "planned", "requirements": ["R7", "R8"] }
]
}
]
}
```
### 2. Add Integer Phase
Append a new phase to the end of the current milestone:
```
add_phase(
milestone: "v1.0",
title: "Admin Dashboard",
requirements: ["R12", "R13"],
deliverables: "Admin UI, user management, analytics"
)
-> Phase 74: Admin Dashboard (appended after Phase 73)
```
### 3. Insert Decimal Phase
Insert a phase between existing phases for urgent work:
```
insert_phase(
after: 72,
title: "Fix Auth Token Refresh",
requirements: ["R5.1"],
deliverables: "Token refresh logic, session persistence"
)
-> Phase 72.1: Fix Auth Token Refresh (inserted between 72 and 73)
```
Decimal phases:
- `72.1` is between 72 and 73
- `72.2` is between 72.1 and 73
- Multiple decimals can exist between any two integer phases
### 4. Remove Phase and Renumber
Remove a future phase and renumber subsequent phases:
```
remove_phase(73)
-> Phase 73 removed
-> Phase 74 renumbered to Phase 73
-> All references updated
```
Only future (planned) phases can be removed. Completed and in-progress phases cannot be removed.
### 5. Mark Phase Complete
Update phase status in the roadmap:
```
complete_phase(72)
-> Phase 72 status: completed
-> If all phases in milestone completed -> milestone ready for audit
```
Status transitions:
- `planned` -> `in-progress` (when planning begins)
- `in-progress` -> `completed` (when execution finishes)
- `completed` -> `verified` (when verification passes)
### 6. Requirements Coverage Analysis
Verify 100% requirement coverage across phases:
```
coverage_analysis()
-> Total requirements: 13
-> Mapped to phases: 13
-> Unmapped: 0
-> Coverage: 100%
-> R1: Phase 70 (completed)
-> R2: Phase 70 (completed)
-> R5: Phase 72 (in-progress)
-> R5.1: Phase 72.1 (planned)
...
```
### 7. Phase Dependency Resolution
Determine execution order based on dependencies:
```
dependency_graph()
-> Phase 70: no dependencies (can start immediately)
-> Phase 71: depends on Phase 70
-> Phase 72: depends on Phase 71
-> Phase 72.1: depends on Phase 72
-> Phase 73: depends on Phase 71 (not 72, can parallelize)
```
### 8. Milestone Scope Determination
Determine which phases belong to a milestone:
```
milestone_scope("v1.0")
-> Phases: [70, 71, 72, 72.1, 73]
-> Total: 5 phases
-> Completed: 2
-> In Progress: 1
-> Planned: 2
-> Progress: 40%
```
### 9. Phase Status Queries
Query phases by status:
```
phases_by_status("completed") -> [70, 71]
phases_by_status("in-progress") -> [72]
phases_by_status("planned") -> [72.1, 73]
next_phase() -> 72.1 (first planned phase after current)
```
## Tool Use Instructions
### Parsing Roadmap
1. Use `Read` to load `.planning/ROADMAP.md`
2. Parse markdown headings to identify milestones (## level) and phases (### level)
3. Extract status, requirements, and deliverables from bullet points under each phase
4. Return structured milestone/phase hierarchy
### Adding a Phase
1. Parse current roadmap to find last phase number in target milestone
2. Generate new phase number (last + 1)
3. Format phase section following existing pattern
4. Use `Edit` to insert before the next milestone heading or end of file
### Inserting a Decimal Phase
1. Parse roadmap to find the target phase and next phase
2. Calculate decimal number (e.g., 72.1 if inserting after 72)
3. Format phase section
4. Use `Edit` to insert between the two phases
### Requirements Coverage
1. Parse ROADMAP.md for all phase requirement mappings
2. Use `Read` to load `.planning/REQUIREMENTS.md` for full requirement list
3. Compare mapped requirements against full list
4. Report coverage percentage and any gaps
## Process Integration
- `new-project.js` - Create initial ROADMAP.md with milestone and phase structure
- `progress.js` - Read roadmap for progress display and next-action routing
- `complete-milestone.js` - Determine milestone scope, verify all phases complete
- `audit-milestone.js` - Read phase scope for audit, requirements coverage check
- `plan-phase.js` - Read phase requirements and deliverables for planning context
- `add-phase` command - Add integer phase via this skill
- `insert-phase` command - Insert decimal phase via this skill
- `remove-phase` command - Remove phase via this skill
## Output Format
```json
{
"operation": "parse|add|insert|remove|complete|coverage|dependencies|scope|query",
"status": "success|error",
"roadmap": {
"milestoneCount": 2,
"totalPhases": 8,
"currentMilestone": "v1.0"
},
"phase": {
"number": 72,
"title": "Authentication",
"status": "completed",
"requirements": ["R5", "R6"]
},
"coverage": {
"total": 13,
"mapped": 13,
"percentage": 100,
"gaps": []
}
}
```
## Configuration
| Setting | Default | Description |
|---------|---------|-------------|
| `roadmapFile` | `.planning/ROADMAP.md` | Path to ROADMAP.md |
| `requirementsFile` | `.planning/REQUIREMENTS.md` | Path for coverage analysis |
| `startingPhaseNumber` | `70` | First phase number for new projects |
| `allowDecimalPhases` | `true` | Enable decimal phase insertion |
| `autoStatusTransition` | `true` | Auto-update phase status on events |
## Error Handling
| Error | Cause | Resolution |
|-------|-------|------------|
| `ROADMAP.md not found` | Planning directory not initialized | Run new-project first |
| `Phase not found` | Referenced phase does not exist | Check phase number, list available phases |
| `Cannot remove active phase` | Trying to remove in-progress/completed phase | Only planned phases can be removed |
| `Duplicate phase number` | Phase number already exists | Use next available number or decimal |
| `Coverage gap detected` | Requirements not mapped to any phase | Add phase or update existing phase to cover requirement |
| Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.