Unikit roadmap
AI-Powered Code Toolkit for Game Engines
npx -y skills add NintendaDev/unikit-ai --skill unikit-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
- 16 stars16 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
Create or update a strategic project roadmap with major milestones. Generates .unikit/ROADMAP.md — a high-level checklist of project goals. Use when user says "roadmap", "project plan", "milestones", "what to build next", "strategic goals", or wants to see big-picture progress. Also use when the user asks to check which milestones are done or wants to plan the overall project direction.
SKILL.md
12.9 KB, as published. Nobody here has run it
Roadmap — Strategic Project Planning
Create and maintain a high-level project roadmap with major milestones.
Language Awareness — BLOCKING PRE-REQUISITE
BEFORE producing ANY output, silently read .unikit/system/LANGUAGE_RULES.md
and apply its rules to ALL subsequent output.
If the file is missing or unreadable, fall back to English.
Do not produce any user-facing output until language rules are loaded.
Do not announce, confirm, or mention the language setting.
Workflow
Step 0: Load Project Context
Read .unikit/DESCRIPTION.md if it exists to understand:
- Tech stack (engine, framework, DI, async patterns)
- Project architecture and conventions
- Non-functional requirements
Read .unikit/ARCHITECTURE.md if it exists to understand:
- Chosen architecture pattern and folder structure
- Module boundaries and communication patterns
Read .unikit/skill-context/unikit-roadmap/SKILL.md — MANDATORY if the file exists.
This file contains project-specific rules accumulated by /unikit-evolve from patches,
codebase conventions, and tech-stack analysis. These rules are tailored to the current project.
How to apply skill-context rules:
- Treat them as project-level overrides for this skill's general instructions
- When a skill-context rule conflicts with a general rule written in this SKILL.md, the skill-context rule wins (more specific context takes priority)
- When there is no conflict, apply both: general rules from SKILL.md + project rules from skill-context
- Do NOT ignore skill-context rules even if they seem to contradict this skill's defaults — they exist because the project's experience proved the default insufficient
- CRITICAL: skill-context rules apply to ALL outputs of this skill — including the ROADMAP.md template. The template in this SKILL.md is a base structure. If a skill-context rule says "roadmap MUST include X" or "milestones MUST have Y" — you MUST augment the template accordingly. Generating a roadmap that violates skill-context rules is a bug.
Enforcement: After generating any output artifact, verify it against all skill-context rules. If any rule is violated — fix the output before presenting it to the user.
Step 1: Determine Mode
If argument is check → Mode 3: Check Progress (requires ROADMAP.md)
Otherwise check if .unikit/ROADMAP.md exists:
- Does NOT exist → Mode 1: Create Roadmap
- Exists → Mode 2: Update Roadmap
Mode 1: Create Roadmap (First Run)
1.1: Gather Input
If user provided arguments — first classify each argument:
- File path (contains
/,\, or ends with a known extension like.md,.txt,.json,.pdf,.docx) → treat as a reference document. Read the file content and use it as context for generating milestones. Store the path for the References section. - Plain text → treat as vision/description input for milestones.
Arguments can be mixed — e.g., a description string plus one or more file paths.
If reference documents were detected:
- Read each document via
Readtool - Extract key goals, requirements, features, and priorities from the document content
- Use extracted information as primary input for milestone generation
- Track which milestones were derived from which documents — this mapping will be recorded in the
## Referencessection
If only plain text arguments provided:
- Use as primary input for milestones
If no arguments:
- Ask interactively:
AskUserQuestion: What are the major goals for this project?
Options:
1. Let me describe the vision
2. Analyze codebase and suggest milestones
3. Both — I'll describe, you'll add what's missing
Based on choice:
- Describe vision → ask follow-up about priorities (next question)
- Analyze codebase → proceed to Step 1.2 (Explore Codebase), auto-generate milestones
- Both → ask for description, then enrich with codebase analysis
If user chooses option 1 or 3, ask follow-up:
AskUserQuestion: Any priorities or deadlines?
Options:
1. Yes, let me specify
2. No, just order by logical sequence
3. Skip — I'll reprioritize later
Based on choice:
- Yes → ask user for priorities/deadlines, incorporate into milestone ordering
- No → order milestones by logical dependency sequence
- Skip → proceed without priority ordering
1.2: Explore Codebase
Scan the project to understand what's already built:
Globfor project structure (key directories, modules)Grepfor implemented features (controllers, systems, views, installers)- Check git log for completed work:
git log --oneline -20
1.3: Generate ROADMAP.md
Create .unikit/ROADMAP.md using the format defined in the ROADMAP.md Format section below.
Rules for milestones:
- Each milestone is a high-level goal, not a granular task (that's
/unikit-plan) - 5-15 milestones is the sweet spot — fewer means too vague, more means too granular
- Order by logical sequence (dependencies first)
- Mark already-completed milestones as
[x]and add them to the Completed table - Use today's date for milestones detected as already done
1.4: Confirm with user
Show the generated roadmap and ask:
AskUserQuestion: Here's the proposed roadmap. What would you like to do?
Options:
1. Looks good — save it
2. Add more milestones
3. Remove/modify some milestones
4. Rewrite — let me give better input
Based on choice:
- Save → write to
.unikit/ROADMAP.md - Add more → ask for additional milestones, regenerate, re-confirm
- Remove/modify → ask which to change, apply edits, re-confirm
- Rewrite → ask for new input, regenerate from scratch
Mode 2: Update Roadmap (Subsequent Run)
2.1: Read Current State
- Read
.unikit/ROADMAP.md - Read
.unikit/DESCRIPTION.mdfor context - Explore codebase briefly to check what's changed since last update
2.2: Determine Action
If user provided arguments — classify each argument (same rules as Mode 1 Step 1.1):
- File path → read document, use content as context, add to
## Referencessection (append to existing references, avoid duplicates) - Plain text → treat as new milestones or change instructions
If arguments contain reference documents:
- Read each document, extract goals/requirements
- Generate new milestones from the document content and append to the roadmap
- Add document paths to the References section
If only plain text arguments:
- Apply the requested changes directly
If no arguments:
- Analyze current state and present options:
AskUserQuestion: What would you like to do with the roadmap?
Options:
1. Review progress — check what's done, mark completed milestones
2. Add new milestones
3. Reprioritize — reorder existing milestones
4. Rewrite — major revision of the roadmap
Based on choice:
- Review progress → scan codebase for completed milestones, propose updates (Step 2.3)
- Add milestones → ask for new milestones, append to roadmap (Step 2.4)
- Reprioritize → present current order, ask for new order (Step 2.5)
- Rewrite → major revision, ask for new vision
2.3: Review Progress (if chosen)
- Scan codebase for evidence of completed milestones
- For each unchecked milestone, check if the work appears done
- Propose marking completed milestones:
AskUserQuestion: These milestones appear to be done:
- **Milestone Name** — [evidence: files exist, systems implemented, etc.]
Mark them as completed?
Options:
1. Yes — mark all as completed
2. No — skip
Based on choice:
- Yes → change
- [ ]to- [x]for listed milestones, add to Completed table with today's date - No → skip, proceed to next step
If confirmed:
- Change
- [ ]to- [x]in the Milestones section - Add entry to Completed table with today's date
- Move completed milestones below unchecked ones (or keep in place — user preference)
2.4: Add New Milestones (if chosen)
- Ask user to describe new milestones
- Insert them in logical order among existing milestones
- Update
.unikit/ROADMAP.md
2.5: Reprioritize (if chosen)
- Show current order
- Ask user for new order or let them describe priority changes
- Reorder milestones in
.unikit/ROADMAP.md
2.6: Save Changes
Update .unikit/ROADMAP.md with all modifications.
Show summary:
## Roadmap Updated
Total milestones: N
✅ Completed: X/N
▶ Next up: **Milestone Name**
To start working on the next milestone:
/unikit-plan <milestone description> → creates plan
/unikit-implement → executes the plan
Mode 3: Check Progress (/unikit-roadmap check)
Automated scan — analyze the codebase, detect completed milestones, and propose marking them (with user confirmation).
Requires .unikit/ROADMAP.md to exist. If it doesn't — tell the user to run /unikit-roadmap first.
3.1: Read roadmap and project context
- Read
.unikit/ROADMAP.md - Read
.unikit/DESCRIPTION.mdfor tech stack context
3.2: Analyze each unchecked milestone
For every - [ ] milestone:
- Determine what evidence would prove it's done (files, systems, models, configs, tests)
- Use
GlobandGrepto search for that evidence - Check
git log --oneline --all -30for related commits - Score: done (strong evidence), partial (some work started), not started
3.3: Report findings
## Roadmap Progress Check
✅ Done (ready to mark):
- **Trading System** — found: TradeController, TradeOffer, trade installers, tests
- **Customer Behaviour** — found: CustomerFSM, NodeCanvas trees, customer spawning
🔄 In Progress:
- **Mini-Games System** — found: MiniGameLauncher exists but SliderGame incomplete
⏳ Not Started:
- **Night Market**
- **Dynamic Events**
Mark completed milestones? (2 milestones)
3.4: Apply changes (if confirmed)
- Mark done milestones
[x] - Add entries to Completed table with today's date
- Leave partial and not-started milestones unchanged
Show updated summary:
✅ Completed: X/N milestones
▶ Next up: **Milestone Name**
ROADMAP.md Format
# Project Roadmap
> <project vision — one-liner>
## Milestones
- [ ] **Name** — short description
- [ ] **Name** — short description
- [x] **Name** — short description
## References
| Document | Description | Milestones |
|----------|-------------|------------|
| `relative/path/to/document.md` | Brief description of contents | Milestone A, Milestone B |
## Completed
| Milestone | Date |
|-----------|------|
| Name | YYYY-MM-DD |
References section rules:
- Include
## Referencesonly when reference documents were provided as arguments - If no documents were passed — omit the section entirely (do not include an empty table)
- Store paths relative to the project root
- Description column: a short summary of what the document covers (extracted during reading)
- Milestones column: comma-separated names of milestones that were derived from or informed by this document. When generating milestones from a document, track which milestones came from which source. A milestone may appear in multiple rows if it was informed by several documents.
- On subsequent updates (Mode 2): append new documents, never remove existing references unless user explicitly asks. When new milestones are added from existing references, update the Milestones column accordingly.
Critical Rules
- Milestones are high-level — each represents a major feature or capability, not a task
- ROADMAP.md is the source of truth — always read before modifying
- Never remove milestones silently — always confirm with user before removing
- Completed table tracks history — every checked milestone gets a date entry
- NO implementation — this skill only plans, use
/unikit-planto start a feature and/unikit-implementto execute - Ownership boundary — this command owns
.unikit/ROADMAP.md./unikit-implementmay only mark milestones completed when implementation evidence is clear - Respond in the configured language — use
language.uifrom.unikit/config.yaml(default: English) for all user-facing messages - References are append-only — never remove document references unless explicitly asked by the user
- References require documents — only add the
## Referencessection when actual documents were provided; never generate it with empty content