project-roadmap-manager
Project Roadmap Manager
Maintain ROADMAP.md in the project root as the canonical roadmap record. Prefer updating existing sections over appending duplicates, and keep Current Milestone synchronized with the latest accepted plan.
Workflow
- Load active customization config:
- Prefer
<skill_root>/config/customization.yaml. - Fall back to
<skill_root>/config/customization.template.yaml. - Apply settings under
settingsto roadmap generation and update decisions. - Treat missing sub-milestone keys in user config as template defaults.
- Prefer
- Identify project root and target file:
- Use
<project_root>/ROADMAP.md. - If root is ambiguous, infer from repository root.
- Use
- Ensure
ROADMAP.mdexists:- If missing, create it using the template in this skill.
- Classify the request into one of these event types:
- Project bootstrap.
- Plan acceptance/completion.
- Milestone/version roadmap set or changed.
- Milestone reached/blocked/de-scoped.
- Roadmap reference/query.
- Apply the event-specific update rules.
- Keep all sections internally consistent:
Current Milestonematches active milestone inMilestones.Plan Historyincludes accepted plan snapshots.Change Logcaptures each roadmap mutation with date and reason.- When sub-milestones are enabled, parent/child linkage and ID uniqueness are valid.
Customization Workflow
When a user asks to customize this skill, use this deterministic flow:
- Read active config from
config/customization.yaml; if missing, useconfig/customization.template.yaml. - Confirm target profile and desired behavior for:
milestoneIdStyletargetStylestatusValues- sub-milestone enablement, ID style, and status model
- owner/dependency fields
- plan history and changelog verbosity
- Propose 2-4 option bundles with one recommended default.
- Create or update
config/customization.yamlfrom the template and set:schemaVersion: 1isCustomized: trueprofile: <selected-profile>
- Apply the selected settings immediately to roadmap output behavior.
- Validate with a dry-run roadmap update and report changed keys plus behavior deltas.
Customization Reference
- Detailed knobs and examples:
references/customization.md - YAML schema and allowed values:
references/config-schema.md
ROADMAP.md Template
Use this structure when creating a new roadmap:
# Project Roadmap
## Current Milestone
- ID: M1
- Name: Initial Setup
- Status: Planned
- Target Version: v0.1.0
- Last Updated: YYYY-MM-DD
- Summary: One-paragraph summary of the currently accepted plan.
## Milestones
| ID | Name | Target Version | Status | Target Date | Notes |
| --- | --- | --- | --- | --- | --- |
| M1 | Initial Setup | v0.1.0 | Planned | YYYY-MM-DD | Bootstrap milestone |
<!-- Include this section only when settings.enableSubMilestones is true. -->
## Sub-Milestones
| ID | Parent Milestone | Name | Status | Target Date | Notes |
| --- | --- | --- | --- | --- | --- |
| M1.1 | M1 | First deliverable | Planned | YYYY-MM-DD | Optional child milestone |
## Plan History
### YYYY-MM-DD - Accepted Plan (v0.1.0 / M1)
- Scope:
- Acceptance Criteria:
- Risks/Dependencies:
## Change Log
- YYYY-MM-DD: Initialized roadmap.
Event Handling Rules
Project Bootstrap
- Create
ROADMAP.mdif absent. - Add an initial milestone (
M1unless user provides a different identifier). - If
enableSubMilestonesis true and initial child milestones are provided, generate IDs deterministically from style settings. - Add a changelog entry indicating roadmap initialization.
Plan Acceptance or Completion
- Update
Current Milestoneto reflect the accepted plan. - Add or update corresponding row in
Milestones. - If
enableSubMilestonesis true, add or update affected child entries under the active milestone. - Append an
Accepted Planentry inPlan Historywith scope and acceptance criteria. - Add a changelog entry summarizing what changed and why (include parent + child transition details when child entries changed).
Milestone or Version Roadmap Set/Update
- Update existing milestone by ID/version if it exists.
- Add milestone only when no matching milestone exists.
- Avoid duplicate milestones for the same ID or target version.
- When
enableSubMilestonesis true:- Avoid duplicate child IDs within the same parent milestone.
- Keep child status values inside
subMilestoneStatusValues(or inheritstatusValueswhen child list is absent). - Use deterministic ID generation rules from settings:
hierarchical:<milestoneID><delimiter><n>(defaultM2.1).letter:<milestoneID><letter>(for exampleM2a).ticket:<prefix><delimiter><zero-padded n>and render with parent context (for exampleM2-T01).external: accept tracker IDs only whenallowExternalTrackerIdsis true.
- If the updated milestone is active, sync
Current Milestone.
Milestone Reached/Changed
- Update milestone status (
Completed,In Progress,Blocked,De-scoped, orPlanned). - Update
Current Milestoneif active milestone changed. - If
enableSubMilestonesis true, keep child transitions and parent/child linkage consistent. - Add a dated note in
Change Logthat captures transition and reason (include parent + child details when children are involved).
Roadmap Reference Requests
- Point explicitly to
<project_root>/ROADMAP.md. - Cite the relevant section name (
Current Milestone,Milestones,Plan History, orChange Log). - If file is missing, create it first, then reference it.
Quality Bar
- Preserve existing useful roadmap content.
- Use ISO date format (
YYYY-MM-DD) for all dated fields. - Keep edits minimal and deterministic.
- Never leave conflicting milestone statuses across sections.
- If sub-milestones are disabled, do not require or mutate any sub-milestone section.
- If sub-milestones are enabled, enforce deterministic child ID style and unique IDs within parent scope.
Automation Templates
Use $project-roadmap-manager inside automation prompts so Codex consistently applies the roadmap update rules.
For ready-to-fill Codex App and Codex CLI (codex exec) templates, including bounded-edit guardrails and placeholders, use:
references/automation-prompts.md
References
- Automation prompt templates:
references/automation-prompts.md - Customization guide:
references/customization.md - Customization schema:
references/config-schema.md
More from gaelic-ghost/productivity-skills
things-digest-generator
Generate a week-ahead Things planning digest with recent activity, upcoming deadlines, and concrete next actions. Use when users request Things check-ins, weekly planning summaries, or prioritized planning recommendations.
28things-week-ahead-digest
Summarize Things todos and recommend next actions using recent activity across projects, areas, and checklist-like notes, plus a week/weekend-ahead preview. Use when asked for Things planning digests, productivity check-ins, weekly previews, or automation that turns Things data into concise priorities.
12workspace-cleanup-audit
Read-only repository hygiene scanner for directories under ~/Workspace. Use when asked to audit cleanup chores, detect build or cache artifact buildup, find large transient files, or rank cleanup issues by severity with the repo and directory where each issue is found.
11maintain-skills-readme
Maintain README.md files for agent-skills, Codex plugin, Claude plugin, and similar skills or plugin repositories with specialized install, discoverability, and catalog sections. Use when a skills or plugin repo README needs auditing or bounded fixes. Do not use this for ordinary software project READMEs.
1maintain-project-roadmap
Maintain checklist-style ROADMAP.md files for projects through deterministic validation and bounded apply modes. Use when a project roadmap needs auditing, normalization, or legacy-format migration.
1