[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71BNWH4SE1W3E5Y50Z1KX6K":3,"skill-same:01M71BNWH4SE1W3E5Y50Z1KX6K":86},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":64,"commitSha":65,"skillDirectory":66,"forksCount":67,"repositoryHtmlUrl":68,"repositoryHomepageUrl":69,"ownerHtmlUrl":70,"ownerBlogUrl":6,"ownerDescription":71,"updatedAt":72,"install":73,"resources":85},"01M71BNWH4SE1W3E5Y50Z1KX6K","unikit-roadmap",null,"Create or update a strategic project roadmap with major milestones. Generates .unikit\u002FROADMAP.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.","NintendaDev\u002Funikit-ai","NintendaDev","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F181320258?v=4","01M71BFH8JJ6EBGRXBWRZK894Y","Dmitrii Vasilev","01M71BFH9T4K66TTBFNV1ZWFN5",22,"MIT","https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-roadmap\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000031","产品经理","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"roadmap","unikit roadmap","vision","git","edit","write","read","update","project plan","next","progress","plan","create","Bash","done","when","milestones","project","direction","which","2026-11-10 10:12:30",false,"---\nname: unikit-roadmap\ndescription: >-\n  Create or update a strategic project roadmap with major milestones.\n  Generates .unikit\u002FROADMAP.md — a high-level checklist of project goals.\n  Use when user says \"roadmap\", \"project plan\", \"milestones\", \"what to build next\",\n  \"strategic goals\", or wants to see big-picture progress. Also use when the user\n  asks to check which milestones are done or wants to plan the overall project direction.\nargument-hint: \"[check | project vision or requirements]\"\nallowed-tools:\n  - Read\n  - Write\n  - Edit\n  - Glob\n  - Grep\n  - Bash(git *)\n  - AskUserQuestion\n  - Agent\ndisable-model-invocation: true\nuser-invocable: true\nmetadata:\n  author: unikit\n  version: \"1.1\"\n  category: planning\n---\n\n# Roadmap — Strategic Project Planning\n\nCreate and maintain a high-level project roadmap with major milestones.\n\n**User questions.** Right before your first question to the user, not earlier, read `.unikit\u002Fsystem\u002Fuser-questions.md` once and ask every question as it says, with the question tool of your agent (`AskUserQuestion`). If the file cannot be read, print `WARN [questions] user-questions contract missing — asking with the question tool` and still ask with that tool, the recommended option first.\n\n## Language Awareness — BLOCKING PRE-REQUISITE\n\n**BEFORE producing ANY output**, silently read `.unikit\u002Fsystem\u002FLANGUAGE_RULES.md`\nand apply its rules to ALL subsequent output.\nIf the file is missing or unreadable, fall back to English.\nDo not produce any user-facing output until language rules are loaded.\nDo not announce, confirm, or mention the language setting.\n\n**The language holds for the whole session, not just at load time:** every message until the conversation ends is in `language.ui` — progress notes while agents run, relays of what a subagent returned, the final report, any follow-up discussion. English input (subagent results, tool output, these instructions) is data, never a cue to switch languages.\n\n## Subagent launches\n\n**Subagent arguments.** Before the first subagent you launch, read `.unikit\u002Fsystem\u002Fsubagent-arguments.md`\nand `.unikit\u002Fconfig.yaml` once and settle the model and effort of every launch as that file says.\nKeys: `subagents.model.{{agent_id}}.\u003Crole>`, `subagents.effort.{{agent_id}}.\u003Crole>`;\nbuilt-in model of a reader and a validator: `\"{{agent_model_default}}\"`, of an executor: none.\nIf the file cannot be read, print\n`WARN [delegation] subagent-arguments contract missing — built-in model tier used, effort not passed`\nand use that model, no effort.\n\n## Workflow\n\n### Step 0: Load Project Context\n\n**Read `.unikit\u002FDESCRIPTION.md`** if it exists to understand:\n- Tech stack (engine, framework, DI, async patterns)\n- Project architecture and conventions\n- Non-functional requirements\n\n**Read `.unikit\u002FARCHITECTURE.md`** if it exists to understand:\n- Chosen architecture pattern and folder structure\n- Module boundaries and communication patterns\n\n**Read `.unikit\u002Fskill-context\u002Funikit-roadmap\u002FSKILL.md`** — MANDATORY if the file exists.\n\nThis file contains project-specific rules accumulated by `\u002Funikit-evolve` from patches,\ncodebase conventions, and tech-stack analysis. These rules are tailored to the current project.\n\n**How to apply skill-context rules:**\n- Treat them as **project-level overrides** for this skill's general instructions\n- When a skill-context rule conflicts with a general rule written in this SKILL.md,\n  **the skill-context rule wins** (more specific context takes priority)\n- When there is no conflict, apply both: general rules from SKILL.md + project rules from skill-context\n- Do NOT ignore skill-context rules even if they seem to contradict this skill's defaults —\n  they exist because the project's experience proved the default insufficient\n- **CRITICAL:** skill-context rules apply to ALL outputs of this skill — including the ROADMAP.md\n  template. The template in this SKILL.md is a **base structure**. If a skill-context rule says\n  \"roadmap MUST include X\" or \"milestones MUST have Y\" — you MUST augment the template accordingly.\n  Generating a roadmap that violates skill-context rules is a bug.\n\n**Enforcement:** After generating any output artifact, verify it against all skill-context rules.\nIf any rule is violated — fix the output before presenting it to the user.\n\n\u003C!-- unikit:extension-point:bootstrap -->\n\n### Step 1: Determine Mode\n\nIf argument is `check` → Mode 3: Check Progress (requires ROADMAP.md)\n\nOtherwise check if `.unikit\u002FROADMAP.md` exists:\n- **Does NOT exist** → Mode 1: Create Roadmap\n- **Exists** → Mode 2: Update Roadmap\n\n---\n\n### Mode 1: Create Roadmap (First Run)\n\n**1.1: Gather Input**\n\nIf user provided arguments — first classify each argument:\n- **File path** (contains `\u002F`, `\\`, 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.\n- **Plain text** → treat as vision\u002Fdescription input for milestones.\n\nArguments can be mixed — e.g., a description string plus one or more file paths.\n\nIf reference documents were detected:\n- Read each document via `Read` tool\n- Extract key goals, requirements, features, and priorities from the document content\n- Use extracted information as primary input for milestone generation\n- Track which milestones were derived from which documents — this mapping will be recorded in the `## References` section\n\nIf only plain text arguments provided:\n- Use as primary input for milestones\n\nIf no arguments:\n- Ask interactively:\n\n```\nThe question tool of your agent (`AskUserQuestion`): What are the major goals for this project?\n\nOptions:\n1. Let me describe the vision\n2. Analyze codebase and suggest milestones\n3. Both — I'll describe, you'll add what's missing\n```\n\nBased on choice:\n- Describe vision → ask follow-up about priorities (next question)\n- Analyze codebase → proceed to Step 1.2 (Explore Codebase), auto-generate milestones\n- Both → ask for description, then enrich with codebase analysis\n\nIf user chooses option 1 or 3, ask follow-up:\n\n```\nThe question tool of your agent (`AskUserQuestion`): Any priorities or deadlines?\n\nOptions:\n1. Yes, let me specify\n2. No, just order by logical sequence\n3. Skip — I'll reprioritize later\n```\n\nBased on choice:\n- Yes → ask user for priorities\u002Fdeadlines, incorporate into milestone ordering\n- No → order milestones by logical dependency sequence\n- Skip → proceed without priority ordering\n\n**1.2: Explore Codebase**\n\nScan the project to understand what's already built:\n- `Glob` for project structure (key directories, modules)\n- `Grep` for implemented features (controllers, systems, views, installers)\n- Check git log for completed work: `git log --oneline -20`\n\n**1.3: Generate ROADMAP.md**\n\nCreate `.unikit\u002FROADMAP.md` using the format defined in the **ROADMAP.md Format** section below.\n\n**Rules for milestones:**\n- Each milestone is a **high-level goal**, not a granular task (that's `\u002Funikit-plan`)\n- 5-15 milestones is the sweet spot — fewer means too vague, more means too granular\n- Order by logical sequence (dependencies first)\n- Mark already-completed milestones as `[x]` and add them to the Completed table\n- Use today's date for milestones detected as already done\n\n**1.4: Confirm with user**\n\nShow the generated roadmap and ask:\n\n```\nThe question tool of your agent (`AskUserQuestion`): Here's the proposed roadmap. What would you like to do?\n\nOptions:\n1. Looks good — save it\n2. Add more milestones\n3. Remove\u002Fmodify some milestones\n4. Rewrite — let me give better input\n```\n\nBased on choice:\n- Save → write to `.unikit\u002FROADMAP.md`\n- Add more → ask for additional milestones, regenerate, re-confirm\n- Remove\u002Fmodify → ask which to change, apply edits, re-confirm\n- Rewrite → ask for new input, regenerate from scratch\n\n---\n\n### Mode 2: Update Roadmap (Subsequent Run)\n\n**2.1: Read Current State**\n\n- Read `.unikit\u002FROADMAP.md`\n- Read `.unikit\u002FDESCRIPTION.md` for context\n- Explore codebase briefly to check what's changed since last update\n\n**2.2: Determine Action**\n\nIf user provided arguments — classify each argument (same rules as Mode 1 Step 1.1):\n- **File path** → read document, use content as context, add to `## References` section (append to existing references, avoid duplicates)\n- **Plain text** → treat as new milestones or change instructions\n\nIf arguments contain reference documents:\n- Read each document, extract goals\u002Frequirements\n- Generate new milestones from the document content and append to the roadmap\n- Add document paths to the References section\n\nIf only plain text arguments:\n- Apply the requested changes directly\n\nIf no arguments:\n- Analyze current state and present options:\n\n```\nThe question tool of your agent (`AskUserQuestion`): What would you like to do with the roadmap?\n\nOptions:\n1. Review progress — check what's done, mark completed milestones\n2. Add new milestones\n3. Reprioritize — reorder existing milestones\n4. Rewrite — major revision of the roadmap\n```\n\nBased on choice:\n- Review progress → scan codebase for completed milestones, propose updates (Step 2.3)\n- Add milestones → ask for new milestones, append to roadmap (Step 2.4)\n- Reprioritize → present current order, ask for new order (Step 2.5)\n- Rewrite → major revision, ask for new vision\n\n**2.3: Review Progress (if chosen)**\n\n- Scan codebase for evidence of completed milestones\n- For each unchecked milestone, check if the work appears done\n- Propose marking completed milestones:\n\n```\nThe question tool of your agent (`AskUserQuestion`): These milestones appear to be done:\n- **Milestone Name** — [evidence: files exist, systems implemented, etc.]\n\nMark them as completed?\n\nOptions:\n1. Yes — mark all as completed\n2. No — skip\n```\n\nBased on choice:\n- Yes → change `- [ ]` to `- [x]` for listed milestones, add to Completed table with today's date\n- No → skip, proceed to next step\n\nIf confirmed:\n- Change `- [ ]` to `- [x]` in the Milestones section\n- Add entry to Completed table with today's date\n- Move completed milestones below unchecked ones (or keep in place — user preference)\n\n**2.4: Add New Milestones (if chosen)**\n\n- Ask user to describe new milestones\n- Insert them in logical order among existing milestones\n- Update `.unikit\u002FROADMAP.md`\n\n**2.5: Reprioritize (if chosen)**\n\n- Show current order\n- Ask user for new order or let them describe priority changes\n- Reorder milestones in `.unikit\u002FROADMAP.md`\n\n**2.6: Save Changes**\n\nUpdate `.unikit\u002FROADMAP.md` with all modifications.\n\nShow summary:\n```\n## Roadmap Updated\n\nTotal milestones: N\n✅ Completed: X\u002FN\n▶ Next up: **Milestone Name**\n\nTo start working on the next milestone:\n\u002Funikit-plan \u003Cmilestone description>  → creates plan\n\u002Funikit-implement                     → executes the plan\n```\n\n---\n\n### Mode 3: Check Progress (`\u002Funikit-roadmap check`)\n\nAutomated scan — analyze the codebase, detect completed milestones, and propose marking them (with user confirmation).\n\n**Requires** `.unikit\u002FROADMAP.md` to exist. If it doesn't — tell the user to run `\u002Funikit-roadmap` first.\n\n**3.1: Read roadmap and project context**\n\n- Read `.unikit\u002FROADMAP.md`\n- Read `.unikit\u002FDESCRIPTION.md` for tech stack context\n\n**3.2: Analyze each unchecked milestone**\n\nFor every `- [ ]` milestone:\n- Determine what evidence would prove it's done (files, systems, models, configs, tests)\n- Use `Glob` and `Grep` to search for that evidence\n- Check `git log --oneline --all -30` for related commits\n- Score: **done** (strong evidence), **partial** (some work started), **not started**\n\n**3.3: Report findings**\n\n```\n## Roadmap Progress Check\n\n✅ Done (ready to mark):\n- **Trading System** — found: TradeController, TradeOffer, trade installers, tests\n- **Customer Behaviour** — found: CustomerFSM, NodeCanvas trees, customer spawning\n\n🔄 In Progress:\n- **Mini-Games System** — found: MiniGameLauncher exists but SliderGame incomplete\n\n⏳ Not Started:\n- **Night Market**\n- **Dynamic Events**\n```\n\nThen the question, with the question tool of your agent (`AskUserQuestion`): `Mark them as completed` (Recommended) · `Leave them as they are` — the ✅ Done list printed above is what is being chosen.\n\n**3.4: Apply changes (if confirmed)**\n\n- Mark done milestones `[x]`\n- Add entries to Completed table with today's date\n- Leave partial and not-started milestones unchanged\n\nShow updated summary:\n```\n✅ Completed: X\u002FN milestones\n▶ Next up: **Milestone Name**\n```\n\n---\n\n## ROADMAP.md Format\n\n```markdown\n# Project Roadmap\n\n> \u003Cproject vision — one-liner>\n\n## Milestones\n\n- [ ] **Name** — short description\n- [ ] **Name** — short description\n- [x] **Name** — short description\n\n## References\n\n| Document | Description | Milestones |\n|----------|-------------|------------|\n| `relative\u002Fpath\u002Fto\u002Fdocument.md` | Brief description of contents | Milestone A, Milestone B |\n\n## Completed\n\n| Milestone | Date |\n|-----------|------|\n| Name | YYYY-MM-DD |\n```\n\n**References section rules:**\n- Include `## References` only when reference documents were provided as arguments\n- If no documents were passed — omit the section entirely (do not include an empty table)\n- Store paths relative to the project root\n- Description column: a short summary of what the document covers (extracted during reading)\n- 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.\n- 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.\n\n## Critical Rules\n\n1. **Milestones are high-level** — each represents a major feature or capability, not a task\n2. **ROADMAP.md is the source of truth** — always read before modifying\n3. **Never remove milestones silently** — always confirm with user before removing\n4. **Completed table tracks history** — every checked milestone gets a date entry\n5. **NO implementation** — this skill only plans, use `\u002Funikit-plan` to start a feature and `\u002Funikit-implement` to execute\n6. **Ownership boundary** — this command owns `.unikit\u002FROADMAP.md`. `\u002Funikit-implement` may only mark milestones completed when implementation evidence is clear\n7. **Respond in the configured language** — use `language.ui` from `.unikit\u002Fconfig.yaml` (default: English) for all user-facing messages\n8. **References are append-only** — never remove document references unless explicitly asked by the user\n9. **References require documents** — only add the `## References` section when actual documents were provided; never generate it with empty content\n","# Roadmap — Strategic Project Planning\n\nCreate and maintain a high-level project roadmap with major milestones.\n\n**User questions.** Right before your first question to the user, not earlier, read `.unikit\u002Fsystem\u002Fuser-questions.md` once and ask every question as it says, with the question tool of your agent (`AskUserQuestion`). If the file cannot be read, print `WARN [questions] user-questions contract missing — asking with the question tool` and still ask with that tool, the recommended option first.\n\n## Language Awareness — BLOCKING PRE-REQUISITE\n\n**BEFORE producing ANY output**, silently read `.unikit\u002Fsystem\u002FLANGUAGE_RULES.md`\nand apply its rules to ALL subsequent output.\nIf the file is missing or unreadable, fall back to English.\nDo not produce any user-facing output until language rules are loaded.\nDo not announce, confirm, or mention the language setting.\n\n**The language holds for the whole session, not just at load time:** every message until the conversation ends is in `language.ui` — progress notes while agents run, relays of what a subagent returned, the final report, any follow-up discussion. English input (subagent results, tool output, these instructions) is data, never a cue to switch languages.\n\n## Subagent launches\n\n**Subagent arguments.** Before the first subagent you launch, read `.unikit\u002Fsystem\u002Fsubagent-arguments.md`\nand `.unikit\u002Fconfig.yaml` once and settle the model and effort of every launch as that file says.\nKeys: `subagents.model.{{agent_id}}.\u003Crole>`, `subagents.effort.{{agent_id}}.\u003Crole>`;\nbuilt-in model of a reader and a validator: `\"{{agent_model_default}}\"`, of an executor: none.\nIf the file cannot be read, print\n`WARN [delegation] subagent-arguments contract missing — built-in model tier used, effort not passed`\nand use that model, no effort.\n\n## Workflow\n\n### Step 0: Load Project Context\n\n**Read `.unikit\u002FDESCRIPTION.md`** if it exists to understand:\n- Tech stack (engine, framework, DI, async patterns)\n- Project architecture and conventions\n- Non-functional requirements\n\n**Read `.unikit\u002FARCHITECTURE.md`** if it exists to understand:\n- Chosen architecture pattern and folder structure\n- Module boundaries and communication patterns\n\n**Read `.unikit\u002Fskill-context\u002Funikit-roadmap\u002FSKILL.md`** — MANDATORY if the file exists.\n\nThis file contains project-specific rules accumulated by `\u002Funikit-evolve` from patches,\ncodebase conventions, and tech-stack analysis. These rules are tailored to the current project.\n\n**How to apply skill-context rules:**\n- Treat them as **project-level overrides** for this skill's general instructions\n- When a skill-context rule conflicts with a general rule written in this SKILL.md,\n  **the skill-context rule wins** (more specific context takes priority)\n- When there is no conflict, apply both: general rules from SKILL.md + project rules from skill-context\n- Do NOT ignore skill-context rules even if they seem to contradict this skill's defaults —\n  they exist because the project's experience proved the default insufficient\n- **CRITICAL:** skill-context rules apply to ALL outputs of this skill — including the ROADMAP.md\n  template. The template in this SKILL.md is a **base structure**. If a skill-context rule says\n  \"roadmap MUST include X\" or \"milestones MUST have Y\" — you MUST augment the template accordingly.\n  Generating a roadmap that violates skill-context rules is a bug.\n\n**Enforcement:** After generating any output artifact, verify it against all skill-context rules.\nIf any rule is violated — fix the output before presenting it to the user.\n\n\u003C!-- unikit:extension-point:bootstrap -->\n\n### Step 1: Determine Mode\n\nIf argument is `check` → Mode 3: Check Progress (requires ROADMAP.md)\n\nOtherwise check if `.unikit\u002FROADMAP.md` exists:\n- **Does NOT exist** → Mode 1: Create Roadmap\n- **Exists** → Mode 2: Update Roadmap\n\n---\n\n### Mode 1: Create Roadmap (First Run)\n\n**1.1: Gather Input**\n\nIf user provided arguments — first classify each argument:\n- **File path** (contains `\u002F`, `\\`, 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.\n- **Plain text** → treat as vision\u002Fdescription input for milestones.\n\nArguments can be mixed — e.g., a description string plus one or more file paths.\n\nIf reference documents were detected:\n- Read each document via `Read` tool\n- Extract key goals, requirements, features, and priorities from the document content\n- Use extracted information as primary input for milestone generation\n- Track which milestones were derived from which documents — this mapping will be recorded in the `## References` section\n\nIf only plain text arguments provided:\n- Use as primary input for milestones\n\nIf no arguments:\n- Ask interactively:\n\n```\nThe question tool of your agent (`AskUserQuestion`): What are the major goals for this project?\n\nOptions:\n1. Let me describe the vision\n2. Analyze codebase and suggest milestones\n3. Both — I'll describe, you'll add what's missing\n```\n\nBased on choice:\n- Describe vision → ask follow-up about priorities (next question)\n- Analyze codebase → proceed to Step 1.2 (Explore Codebase), auto-generate milestones\n- Both → ask for description, then enrich with codebase analysis\n\nIf user chooses option 1 or 3, ask follow-up:\n\n```\nThe question tool of your agent (`AskUserQuestion`): Any priorities or deadlines?\n\nOptions:\n1. Yes, let me specify\n2. No, just order by logical sequence\n3. Skip — I'll reprioritize later\n```\n\nBased on choice:\n- Yes → ask user for priorities\u002Fdeadlines, incorporate into milestone ordering\n- No → order milestones by logical dependency sequence\n- Skip → proceed without priority ordering\n\n**1.2: Explore Codebase**\n\nScan the project to understand what's already built:\n- `Glob` for project structure (key directories, modules)\n- `Grep` for implemented features (controllers, systems, views, installers)\n- Check git log for completed work: `git log --oneline -20`\n\n**1.3: Generate ROADMAP.md**\n\nCreate `.unikit\u002FROADMAP.md` using the format defined in the **ROADMAP.md Format** section below.\n\n**Rules for milestones:**\n- Each milestone is a **high-level goal**, not a granular task (that's `\u002Funikit-plan`)\n- 5-15 milestones is the sweet spot — fewer means too vague, more means too granular\n- Order by logical sequence (dependencies first)\n- Mark already-completed milestones as `[x]` and add them to the Completed table\n- Use today's date for milestones detected as already done\n\n**1.4: Confirm with user**\n\nShow the generated roadmap and ask:\n\n```\nThe question tool of your agent (`AskUserQuestion`): Here's the proposed roadmap. What would you like to do?\n\nOptions:\n1. Looks good — save it\n2. Add more milestones\n3. Remove\u002Fmodify some milestones\n4. Rewrite — let me give better input\n```\n\nBased on choice:\n- Save → write to `.unikit\u002FROADMAP.md`\n- Add more → ask for additional milestones, regenerate, re-confirm\n- Remove\u002Fmodify → ask which to change, apply edits, re-confirm\n- Rewrite → ask for new input, regenerate from scratch\n\n---\n\n### Mode 2: Update Roadmap (Subsequent Run)\n\n**2.1: Read Current State**\n\n- Read `.unikit\u002FROADMAP.md`\n- Read `.unikit\u002FDESCRIPTION.md` for context\n- Explore codebase briefly to check what's changed since last update\n\n**2.2: Determine Action**\n\nIf user provided arguments — classify each argument (same rules as Mode 1 Step 1.1):\n- **File path** → read document, use content as context, add to `## References` section (append to existing references, avoid duplicates)\n- **Plain text** → treat as new milestones or change instructions\n\nIf arguments contain reference documents:\n- Read each document, extract goals\u002Frequirements\n- Generate new milestones from the document content and append to the roadmap\n- Add document paths to the References section\n\nIf only plain text arguments:\n- Apply the requested changes directly\n\nIf no arguments:\n- Analyze current state and present options:\n\n```\nThe question tool of your agent (`AskUserQuestion`): What would you like to do with the roadmap?\n\nOptions:\n1. Review progress — check what's done, mark completed milestones\n2. Add new milestones\n3. Reprioritize — reorder existing milestones\n4. Rewrite — major revision of the roadmap\n```\n\nBased on choice:\n- Review progress → scan codebase for completed milestones, propose updates (Step 2.3)\n- Add milestones → ask for new milestones, append to roadmap (Step 2.4)\n- Reprioritize → present current order, ask for new order (Step 2.5)\n- Rewrite → major revision, ask for new vision\n\n**2.3: Review Progress (if chosen)**\n\n- Scan codebase for evidence of completed milestones\n- For each unchecked milestone, check if the work appears done\n- Propose marking completed milestones:\n\n```\nThe question tool of your agent (`AskUserQuestion`): These milestones appear to be done:\n- **Milestone Name** — [evidence: files exist, systems implemented, etc.]\n\nMark them as completed?\n\nOptions:\n1. Yes — mark all as completed\n2. No — skip\n```\n\nBased on choice:\n- Yes → change `- [ ]` to `- [x]` for listed milestones, add to Completed table with today's date\n- No → skip, proceed to next step\n\nIf confirmed:\n- Change `- [ ]` to `- [x]` in the Milestones section\n- Add entry to Completed table with today's date\n- Move completed milestones below unchecked ones (or keep in place — user preference)\n\n**2.4: Add New Milestones (if chosen)**\n\n- Ask user to describe new milestones\n- Insert them in logical order among existing milestones\n- Update `.unikit\u002FROADMAP.md`\n\n**2.5: Reprioritize (if chosen)**\n\n- Show current order\n- Ask user for new order or let them describe priority changes\n- Reorder milestones in `.unikit\u002FROADMAP.md`\n\n**2.6: Save Changes**\n\nUpdate `.unikit\u002FROADMAP.md` with all modifications.\n\nShow summary:\n```\n## Roadmap Updated\n\nTotal milestones: N\n✅ Completed: X\u002FN\n▶ Next up: **Milestone Name**\n\nTo start working on the next milestone:\n\u002Funikit-plan \u003Cmilestone description>  → creates plan\n\u002Funikit-implement                     → executes the plan\n```\n\n---\n\n### Mode 3: Check Progress (`\u002Funikit-roadmap check`)\n\nAutomated scan — analyze the codebase, detect completed milestones, and propose marking them (with user confirmation).\n\n**Requires** `.unikit\u002FROADMAP.md` to exist. If it doesn't — tell the user to run `\u002Funikit-roadmap` first.\n\n**3.1: Read roadmap and project context**\n\n- Read `.unikit\u002FROADMAP.md`\n- Read `.unikit\u002FDESCRIPTION.md` for tech stack context\n\n**3.2: Analyze each unchecked milestone**\n\nFor every `- [ ]` milestone:\n- Determine what evidence would prove it's done (files, systems, models, configs, tests)\n- Use `Glob` and `Grep` to search for that evidence\n- Check `git log --oneline --all -30` for related commits\n- Score: **done** (strong evidence), **partial** (some work started), **not started**\n\n**3.3: Report findings**\n\n```\n## Roadmap Progress Check\n\n✅ Done (ready to mark):\n- **Trading System** — found: TradeController, TradeOffer, trade installers, tests\n- **Customer Behaviour** — found: CustomerFSM, NodeCanvas trees, customer spawning\n\n🔄 In Progress:\n- **Mini-Games System** — found: MiniGameLauncher exists but SliderGame incomplete\n\n⏳ Not Started:\n- **Night Market**\n- **Dynamic Events**\n```\n\nThen the question, with the question tool of your agent (`AskUserQuestion`): `Mark them as completed` (Recommended) · `Leave them as they are` — the ✅ Done list printed above is what is being chosen.\n\n**3.4: Apply changes (if confirmed)**\n\n- Mark done milestones `[x]`\n- Add entries to Completed table with today's date\n- Leave partial and not-started milestones unchanged\n\nShow updated summary:\n```\n✅ Completed: X\u002FN milestones\n▶ Next up: **Milestone Name**\n```\n\n---\n\n## ROADMAP.md Format\n\n```markdown\n# Project Roadmap\n\n> \u003Cproject vision — one-liner>\n\n## Milestones\n\n- [ ] **Name** — short description\n- [ ] **Name** — short description\n- [x] **Name** — short description\n\n## References\n\n| Document | Description | Milestones |\n|----------|-------------|------------|\n| `relative\u002Fpath\u002Fto\u002Fdocument.md` | Brief description of contents | Milestone A, Milestone B |\n\n## Completed\n\n| Milestone | Date |\n|-----------|------|\n| Name | YYYY-MM-DD |\n```\n\n**References section rules:**\n- Include `## References` only when reference documents were provided as arguments\n- If no documents were passed — omit the section entirely (do not include an empty table)\n- Store paths relative to the project root\n- Description column: a short summary of what the document covers (extracted during reading)\n- 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.\n- 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.\n\n## Critical Rules\n\n1. **Milestones are high-level** — each represents a major feature or capability, not a task\n2. **ROADMAP.md is the source of truth** — always read before modifying\n3. **Never remove milestones silently** — always confirm with user before removing\n4. **Completed table tracks history** — every checked milestone gets a date entry\n5. **NO implementation** — this skill only plans, use `\u002Funikit-plan` to start a feature and `\u002Funikit-implement` to execute\n6. **Ownership boundary** — this command owns `.unikit\u002FROADMAP.md`. `\u002Funikit-implement` may only mark milestones completed when implementation evidence is clear\n7. **Respond in the configured language** — use `language.ui` from `.unikit\u002Fconfig.yaml` (default: English) for all user-facing messages\n8. **References are append-only** — never remove document references unless explicitly asked by the user\n9. **References require documents** — only add the `## References` section when actual documents were provided; never generate it with empty content\n",{"name":5,"metadata":49,"description":7,"allowed-tools":53,"argument-hint":62,"user-invocable":63,"disable-model-invocation":63},{"author":50,"version":51,"category":52},"unikit","1.1","planning",[54,55,56,57,58,59,60,61],"Read","Write","Edit","Glob","Grep","Bash(git *)","AskUserQuestion","Agent","[check | project vision or requirements]",true,"main","ae3c6dfffd26d9b45b9d96d71ba2c122c50b67ae","skills\u002Funikit-roadmap",1,"https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai","https:\u002F\u002Funikit.nintenda.dev","https:\u002F\u002Fgithub.com\u002FNintendaDev","Unity Developer. Building games and UniKit AI","2026-11-08 15:05:51",{"source":8,"skillName":5,"commands":74,"prompt":84,"zipAvailable":63},[75,78,81],{"tool":76,"command":77},"npx","npx skills add NintendaDev\u002Funikit-ai --skill unikit-roadmap",{"tool":79,"command":80},"bunx","bunx skills add NintendaDev\u002Funikit-ai --skill unikit-roadmap",{"tool":82,"command":83},"pnpm","pnpm dlx skills add NintendaDev\u002Funikit-ai --skill unikit-roadmap","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-roadmap\u002FSKILL.md",[],[87,111,135,156,175,201],{"skillNo":88,"name":50,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":97,"publishedAt":44},"01M71BQ00EXGX51PPCDY7VG334","Initialize the UniKit framework in a project. Scans the current project to detect the engine and real tech stack, then generates the base framework documents that give AI agents context about the project — the resolved project description, the architecture doc, AGENTS.md, and the user-editable .unikit\u002Fconfig.yaml. This is the one-time, whole-project setup run before any other unikit skill. Use whenever the user wants to initialize, set up, or onboard the framework, e.g. \"initialize unikit\", \"init the framework\", \"set up unikit\", \"set up the project\", \"configure AI context\", \"scan my project and set it up\", \"bootstrap the project\". It also actualizes the config of a project already set up — say \"update the config\", \"add missing settings\", \"actualize configuration\", \"fix my config\". On a set-up project it offers the actions to choose from.","https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit\u002FSKILL.md",[92],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[50,41,98,99,100,101,102,103,104,31,30,29,105,28,27,106,107,108,109,110],"time","actions","fix","documents","architecture","stack","run","config","context","initialize","tech","scan","use",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":121,"publishedAt":44},"01M71BPRTMKW7FRAZZBN44NW5Q","unikit-verify","Verify a completed implementation against the plan in .unikit\u002Fcode\u002Fplans\u002F. Checks that every task was implemented, nothing was forgotten, the code compiles, the recorded test run still matches the code, and {{engine_name}} conventions are followed. Use after \u002Funikit-implement completes, or when the user says \"verify\", \"check the work\", \"did we miss anything\". For code review use \u002Funikit-review instead.","https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-verify\u002FSKILL.md",[117,120],{"categoryNo":118,"categoryName":119,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},[122,123,124,125,126,35,104,30,29,28,27,127,128,110,129,130,131,132,133,134],"unikit verify","verify","powershell","code review","phase","for","system","implement","check","engine","research","name","quality",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":44},"01M71BPM35M5ETPA4E7EKQYRWD","unikit-todo","Manage the project's TODO list in .unikit\u002FTODO.md — capture work to remember for later, not to do right now. Use it to add a deferred item, mark a todo complete, or show the list. The point is to park tasks you don't want to act on in the moment but don't want to forget. Trigger on \"add a todo\", \"add this to the todo list\", \"put X on the todo list\", \"remind me to...\", \"don't forget to...\", \"note this for later\", \"we should do this later\", \"mark this todo done\", \"what's on the todo list\", \"what's left to do\". This is only for parking reminders — to actually plan or do the work now, use \u002Funikit-plan, \u002Funikit-implement, or \u002Funikit-execute.","https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-todo\u002FSKILL.md",[],[142,143,144,145,41,146,147,148,149,38,150,151,35,152,153,154,30,29,28,155],"unikit todo","todo","remind","show","todo list","only","now","you","tasks","work","me","reminders","later","act",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":163,"publishedAt":44},"01M71BPEQDVD7DTGFQBQJQ7JKY","unikit-skills-context","Customize how a built-in unikit skill behaves in this specific project by writing workflow overrides into its skill-context file. These are per-skill workflow rules (e.g. \"\u002Funikit-review should also flag TODO comments\", \"\u002Funikit-implement should run tests after each task\"), not coding conventions. Use when the user wants to change, customize, or override how a particular unikit skill works in this project — \"customize the review skill\", \"make \u002Funikit-fix always add logging here\", \"the implement skill should do X differently\", \"add a skill rule for \u002Funikit-commit\". Use \"validate\" to find stale overrides against updated base skills. For a general coding convention (not tied to one skill) use \u002Funikit-rules; to derive rules from past mistakes use \u002Funikit-evolve.","https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-skills-context\u002FSKILL.md",[162],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},[164,106,41,100,165,166,39,167,168,169,170,171,143,172,173,104,174,30,29,28],"unikit skills context","coding conventions","writing","workflow","commit","review","general coding","text","change","how","past",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":188,"publishedAt":44},"01M71BP7K5KEGJV4ASRKPG1DM8","unikit-rules","Add a short, project-specific rule, convention, or override to .unikit\u002FRULES.md — the quick-capture inbox for this project's rules (common rules always load; topic files in .unikit\u002Frules\u002F load when the work matches), automatically loaded by \u002Funikit-implement (later promotable via \u002Funikit-memory migrate-rules). Works only with a rule typed as a prompt — it does NOT read files, folders, URLs, or PDFs. Cross-checks the knowledge base (RULES_INDEX.md) to avoid duplicating core\u002Fstack entries. Use for one-line conventions and corrections: \"add a rule\", \"remember this\", \"convention\", \"always do X\", \"never use Y\", \"from now on do Z\", or when the user corrects agent behavior and wants it remembered; also \"split the rules into topics\" (optimise), \"clean up the rules\" (prune), \"shorten RULES.md\" (compact), by keyword or in plain words. If the user points to a source (file, folder, URL, PDF, article, book) or wants to research\u002Fdocument framework usage, use \u002Funikit-memory; for architecture decisions use ARCHITECTURE.md.","https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-rules\u002FSKILL.md",[181,184,187],{"categoryNo":182,"categoryName":183,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":185,"categoryName":186,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},[189,190,191,192,41,193,194,195,196,197,102,198,171,199,103,154,30,29,28,200],"Rules","unikit rules","quick","PDF","clean","knowledge","files","URL","migrate","batch","knowledge base","prune",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":44},"01M71BP02S49HHD4R5X6N12C9Q","unikit-rules-registry","Orchestrate the remote rules registry — the shared registry (often connected as a local folder or git repo) that the project's rules are published to and pulled from. Three modes, picked from the user's wording: create scaffolds a new local rules registry (\"create a local rules registry\", \"init a rules registry\"); update migrates\u002Fpromotes local knowledge-base rules from .unikit\u002Fmemory\u002F into the remote registry with automatic semver bumps (\"migrate local rules to the remote registry\", \"promote my rules to the registry\", \"push local rules\", \"publish local rules\", \"update the rules registry\"); sync pulls registry updates back into memory (\"sync the rules registry\", \"pull registry updates\"). Pass \"--module \u003Cid>\" to scope to one knowledge-base module. This skill ONLY orchestrates the CLI (`unikit-ai rules *`) — it never edits .unikit.json or .unikit\u002Fmemory\u002F sources directly.","https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-rules-registry\u002FSKILL.md",[],[208,189,209,210,41,211,194,212,197,36,31,30,29,27,213,214,215,216,217,218],"registry","unikit rules registry","shared","local","remote","ai rules","automatic","semver","knowledge-base","as","three"]