--- name: track-roadmap description: | Plan, update, and audit a high-level project roadmap. Use when asked to "create a roadmap", "plan features", "what should we build next", "update the roadmap", "audit the roadmap", "review project direction", "prioritize features", or when starting a new project and needing to map out future work. license: MIT metadata: author: Antonin Januska version: "1.0.0" argument-hint: "[generate|update|audit]" tags: [planning, roadmap, features, project-management] --- # Track Roadmap > **Roadmap tracking activated** - I'll use ROADMAP.md to capture and manage the high-level feature plan for this project. ## Overview Use ROADMAP.md in the project root to plan and track high-level project features. Think through what to build, keep the plan current, and periodically audit whether the roadmap still reflects reality. **Core principle:** Maintain a living document of what the project should become, so decisions about what to build next are intentional, not reactive. ## Usage Modes This skill supports three modes via optional arguments: | Mode | Command | What it does | Use when | |------|---------|-------------|----------| | **Generate** | `/track-roadmap` or `/track-roadmap generate` | Interactive feature discovery and ROADMAP.md creation | Starting a project or first-time roadmap | | **Update** | `/track-roadmap update` | Add, remove, or modify features in existing roadmap | Scope changes, new ideas, completed work | | **Audit** | `/track-roadmap audit` | Check progress against codebase and re-evaluate relevance | Periodic review, before planning next sprint | ## When to Use **Always use when:** - Starting a new project and need to plan features - User asks "what should we build?" or "what's the plan?" - Project has grown organically and needs direction - Before a major planning session or milestone **Useful for:** - Capturing feature ideas before they're lost - Communicating project scope to collaborators - Deciding what to work on next - Tracking what's been built vs. what's planned **Avoid when:** - Tracking granular task-level work (use `track-session` instead) - Single-feature implementation (just build it) - Project is a one-off script or throwaway prototype --- ## Mode: Generate **Command:** `/track-roadmap` or `/track-roadmap generate` Creates a new ROADMAP.md through an interactive process. ### Phase 1: Discovery **Step 1 - Optional codebase scan:** Ask the user if they want a codebase scan to inform the roadmap: ``` "Would you like me to scan the project to understand what exists before we plan features?" ``` If yes, examine: - README.md, CLAUDE.md, or any project description files - Directory structure and existing features - TODO/FIXME comments in source files - Package dependencies (package.json, requirements.txt, etc.) - Existing issues or task lists Summarize findings briefly to the user before proceeding. **Step 2 - Interactive questioning:** Ask the user about their vision using AskUserQuestion. Adapt questions to what you learned from the codebase scan (if performed). Core questions: 1. **"What is the core purpose of this project?"** - Understand the project's reason to exist. 2. **"What are the must-have features you already know about?"** - Capture what's already in the user's head. 3. **"Who is the target user and what workflows should the project support?"** - Uncover features the user hasn't thought of yet. 4. **"Are there any technical capabilities you know you'll need?"** - Infrastructure, integrations, platform support, etc. After gathering answers, propose a draft feature list and ask the user to confirm, add, or remove items before writing ROADMAP.md. ### Phase 2: Organize and Write Group features into logical categories. Write ROADMAP.md using the format below. **Verification before writing:** - [ ] User confirmed the feature list - [ ] Features are grouped logically - [ ] Each feature has a clear description (see Format Rules) - [ ] No duplicate or overlapping features --- ## Mode: Update **Command:** `/track-roadmap update` Modifies an existing ROADMAP.md. ### Process 1. **Read** the current ROADMAP.md 2. **Ask the user** what changed: - New features to add? - Features to remove or deprioritize? - Features that are now complete? - Features that need rewording? 3. **Apply changes** and present the updated roadmap for confirmation 4. **Write** the updated ROADMAP.md ### Update Rules - When marking features complete, move them to the "Completed" section - When adding features, ask which category they belong to - All rules in the Rules section apply (especially: user confirms all changes) --- ## Mode: Audit **Command:** `/track-roadmap audit` Performs a combined progress check and relevance review. ### Part 1: Progress Check Scan the codebase to assess each roadmap feature: - **Read project files** to determine what's actually been built - **Compare against ROADMAP.md** features - **Categorize each feature:** - **Done** - Feature exists and works - **In Progress** - Partially implemented - **Not Started** - No evidence of implementation - **Unclear** - Can't determine status from code alone ### Part 2: Relevance Review For each feature, ask whether it's still relevant: - Present the audit findings to the user - Ask: "Are there features that are no longer needed?" - Ask: "Are there new features that should be added?" - Ask: "Should any priorities change based on what we've learned?" ### Part 3: Update Apply any changes from the review and write the updated ROADMAP.md. See the Audit example below for output format. --- ## ROADMAP.md Format ```markdown # Roadmap > Project purpose in one sentence. ## Core Features - **Feature Name** - Short description of what it does and why it matters. - **Feature Name** - Short description. ## User Experience - **Feature Name** - Short description. - **Feature Name** - Short description. ## Technical Infrastructure - **Feature Name** - Short description. ## Future Ideas - **Feature Name** - Short description. (Not committed, just captured.) ## Completed - ~~**Feature Name**~~ - Short description. *(Completed: YYYY-MM-DD)* ``` ### Format Rules 1. **Categories are flexible** - Use whatever groupings make sense for the project (the above are suggestions) 2. **One line per feature** - Title in bold + 1-2 sentence description 3. **Future Ideas** section is a parking lot for uncommitted ideas 4. **Completed** section preserves history of what's been built 5. **Keep it scannable** - The whole file should be readable in under 2 minutes --- ## Rules 1. **User drives the roadmap** - Never add features without user confirmation 2. **Keep it high-level** - Features, not tasks. "User authentication" not "Add bcrypt to hash passwords" 3. **ROADMAP.md is the source of truth** - If it's not in the file, it's not on the roadmap 4. **Audit regularly** - Roadmaps drift. Audit catches the drift. 5. **Don't over-plan** - 5-15 features is a healthy roadmap. 50 features means the project needs splitting. 6. **Completed features stay** - Move to Completed section, don't delete. History matters. ## Examples ### Example: Generating a Roadmap ```markdown # Roadmap > A personal task manager that syncs across devices. ## Core Features - **Task CRUD** - Create, read, update, and delete tasks with title, description, and due date. - **Task lists** - Organize tasks into named lists (e.g., Work, Personal, Shopping). - **Due date reminders** - Notify users when tasks are approaching their due date. ## User Experience - **Dark mode** - Support system-level dark/light theme preference. - **Keyboard shortcuts** - Power users can manage tasks without touching the mouse. - **Drag-and-drop reordering** - Reorder tasks within and across lists. ## Technical Infrastructure - **Cloud sync** - Sync tasks across devices via a backend API. - **Offline support** - App works without internet, syncs when reconnected. ## Future Ideas - **Shared lists** - Collaborate on task lists with other users. - **Recurring tasks** - Tasks that repeat on a schedule. ## Completed ``` **Why this is good:** Clear project purpose, logical groupings, each feature is one line with a concise description, Future Ideas captures uncommitted work, Completed section ready for use. ```markdown # Roadmap - tasks - lists - dark mode - sync - make it look good - fix bugs - add tests - deploy somewhere - maybe sharing? ``` **Why this is bad:** No descriptions, no groupings, mixes features with tasks ("fix bugs", "add tests"), vague items ("make it look good"), no project purpose, no structure. ### Example: Auditing a Roadmap ```markdown ## Audit Results ### Progress | Feature | Status | Evidence | |---------|--------|----------| | Task CRUD | Done | src/components/TaskForm, TaskList, API routes | | Task lists | Done | src/models/List.ts, list management UI | | Due date reminders | Not Started | No notification system found | | Dark mode | In Progress | Theme context exists but only light theme defined | | Cloud sync | Not Started | No backend API or sync logic | ### Recommendations - Move "Task CRUD" and "Task lists" to Completed - "Dark mode" is close - just needs dark theme CSS variables - Consider deprioritizing "Cloud sync" until core UX is solid - New: "Search/filter tasks" came up in TODO comments (src/App.tsx:42) ``` **Why this is good:** Every feature checked, evidence cited with file paths, actionable recommendations, surfaced a new feature from codebase discovery. ```markdown ## Audit Looks like some stuff is done. Maybe we should build more things. ``` **Why this is bad:** No specifics, no evidence, no per-feature assessment, no actionable recommendations. ### Example: Updating a Roadmap User says: *"We decided not to do offline support, and I want to add calendar integration."* ```markdown # Before: ## Technical Infrastructure - **Cloud sync** - Sync tasks across devices via a backend API. - **Offline support** - App works without internet, syncs when reconnected. ## User Experience - **Dark mode** - Support system-level dark/light theme preference. # After (confirmed with user): ## Technical Infrastructure - **Cloud sync** - Sync tasks across devices via a backend API. ## User Experience - **Dark mode** - Support system-level dark/light theme preference. - **Calendar integration** - Show tasks with due dates in a calendar view. ``` **Why this is good:** Confirms removal before acting, places new feature in appropriate category with description, only changes what the user asked for. ```markdown # User asked to remove offline support. # Agent removes offline support AND cloud sync AND dark mode # because it decided they weren't important either. ``` **Why this is bad:** Removed features the user didn't ask about. Never make unilateral roadmap decisions. ## Troubleshooting ### Problem: ROADMAP.md has too many features (30+) **Cause:** Roadmap has become a wish list instead of a plan. **Solution:** - Run `/track-roadmap audit` to review relevance - Move speculative items to "Future Ideas" - Consider splitting into multiple projects or milestones - A healthy roadmap has 5-15 committed features ### Problem: Roadmap doesn't match what's actually being built **Cause:** Roadmap wasn't updated as priorities shifted. **Solution:** - Run `/track-roadmap audit` to reconcile plan vs. reality - Update the roadmap to reflect actual direction - Set a habit: audit after every major feature completion ### Problem: Features are too granular **Cause:** Mixing task-level work with feature-level planning. **Solution:** - Features should be user-visible capabilities, not implementation steps - Bad: "Add bcrypt", "Create user table", "Build login form" - Good: "User authentication" - Use `track-session` for task-level tracking within a feature ### Problem: Codebase scan suggests irrelevant features **Cause:** Discovery picked up on implementation details, not user features. **Solution:** - Treat scan results as suggestions, not requirements - Always confirm with user before adding to roadmap - Focus on user-facing capabilities, not internal architecture ### Problem: User can't decide on features **Cause:** Too many options or unclear project direction. **Solution:** - Start with the core question: "What problem does this project solve?" - Ask: "If you could only build 3 features, what would they be?" - Use the "Future Ideas" section as a pressure valve for uncommitted items ## Integration **This skill works with:** - **track-session** - After choosing a feature from the roadmap, use `track-session` to plan and track the implementation work - **generate-skill** - Use the roadmap to identify features that could become reusable skills - **git-worktree** - Work on multiple roadmap features in parallel across worktrees **Workflow pattern:** ``` /track-roadmap generate → Pick a feature → /track-session → Build it /track-roadmap audit → Review progress → /track-roadmap update → Adjust plan ``` **Pairs with:** - Sprint planning and milestone reviews - Project kickoff and scope definition - Periodic retrospectives