[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71BK2XF0VHEXYZXDBBS6HPB":3,"skill-same:01M71BK2XF0VHEXYZXDBBS6HPB":103},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":71,"commitSha":72,"skillDirectory":73,"forksCount":74,"repositoryHtmlUrl":75,"repositoryHomepageUrl":76,"ownerHtmlUrl":77,"ownerBlogUrl":6,"ownerDescription":78,"updatedAt":79,"install":80,"resources":92},"01M71BK2XF0VHEXYZXDBBS6HPB","unikit-gd-flow",null,"Author and own one flow's design document (the FLOW.md objective flow) at .unikit\u002Fgamedesign\u002Fflows\u002FFLOW-\u003Cslug>.md — the dynamics layer of the GDD (what the player does over time). Create the skeleton and walk the collaborative section-cycle to write its objectives, pacing, dependencies, and funnel events (\"design the first-session flow\", \"map the onboarding sequence\", \"write the FLOW for the boss encounter\"), AND revise it after approval under the delta discipline (\"retune the pacing\", \"add a branch\", \"change a GOAL\", \"rework the onboarding\") — a cue\u002Fnumber change is Tuning, a small step change a Tweak, restructuring a Rework; each bumps the version and logs the delta. Selects the wiring mode (linear | conditional | emergent) and re-renders the ## Flow Map [gen] \u002F ## Funnel [gen] blocks in GAME.md. To add or detail a system use \u002Funikit-gd-system; to edit GAME.md content use \u002Funikit-gd-spec; to apply a multi-zone edit use \u002Funikit-gd-apply; for a new game concept use \u002Funikit-gd-brainstorm.","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-gd-flow\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"flow","unikit gd flow","events","revise","encounter","edit","write","read","at","discipline","change","create","logs","number","design","mode","time","re","cue","branch","2026-11-10 10:12:30",false,"---\nname: unikit-gd-flow\ndescription: >-\n  Author and own one flow's design document (the FLOW.md objective flow) at\n  .unikit\u002Fgamedesign\u002Fflows\u002FFLOW-\u003Cslug>.md — the dynamics layer of the GDD (what the player\n  does over time). Create the skeleton and walk the collaborative section-cycle to write its\n  objectives, pacing, dependencies, and funnel events (\"design the first-session flow\", \"map\n  the onboarding sequence\", \"write the FLOW for the boss encounter\"), AND revise it after\n  approval under the delta discipline (\"retune the pacing\", \"add a branch\", \"change a GOAL\",\n  \"rework the onboarding\") — a cue\u002Fnumber change is Tuning, a small step change a Tweak,\n  restructuring a Rework; each bumps the version and logs the delta. Selects the wiring\n  mode (linear | conditional | emergent) and re-renders the ## Flow Map [gen] \u002F ## Funnel\n  [gen] blocks in GAME.md. To add or detail a system use \u002Funikit-gd-system; to edit GAME.md\n  content use \u002Funikit-gd-spec; to apply a multi-zone edit use \u002Funikit-gd-apply; for a new\n  game concept use \u002Funikit-gd-brainstorm.\nargument-hint: \"\u003Cflow name | FLOW-slug> [\\\"\u003Cwhat to change>\\\"]  (mode inferred from doc state + intent; no flags)\"\nallowed-tools:\n  - Read\n  - Write\n  - Edit\n  - Glob\n  - Grep\n  - Bash(ls *)\n  - Bash(find *)\n  - Bash(wc *)\n  - Bash(date *)\n  - AskUserQuestion\ndisable-model-invocation: false\nuser-invocable: true\nmetadata:\n  author: unikit\n  version: \"1.0\"\n  category: game-design\n---\n\n# Game Design — Per-Flow GDD (Authoring & Revision)\n\nOwn **one flow's design document** at `.unikit\u002Fgamedesign\u002Fflows\u002FFLOW-\u003Cslug>.md` —\nthe **dynamics** axis of the GDD (what the player does over time), alongside the\nsystem GDDs (the rules) and `GAME.md` (the whole). This skill owns the **flow zone**\n(`gd-principles` → Zone Ownership): the **full lifecycle** of a `FLOW.md` lives here\n— **create** the skeleton, **fill** its placeholders, and **revise** approved\ncontent (Tuning \u002F Tweak \u002F Rework) under the delta discipline. There is no separate\neditor skill.\n\nA flow registers **itself**: this skill writes the flow's own `GD-IDS.yaml` `flows:`\nand `events:` entries and re-renders the `## Flow Map [gen]` \u002F `## Funnel [gen]`\nblocks in `GAME.md` — there is **no add-flow in `unikit-gd-spec`**. It never authors\na system, never edits the `GAME.md` one-pager content, and never adds a system to the\nroster — those are `unikit-gd-system` and `unikit-gd-spec`.\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 it to all output and artifacts (fall back to English if it is missing) —\nincluding the rule to **translate concepts, not transliterate jargon**.\n`gd-principles` → \"Language\" adds the game-design specifics: which IDs and stored\nfield values stay English. Do not announce 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## Phase 0 — Bootstrap\n\nSilently load — do not narrate:\n\n1. **`.unikit\u002Fsystem\u002Fgamedesign\u002Fgd-principles.md`** (the core) — the collaborative\n   protocol, the facts registry \u002F ID conventions, and the language rules. Plus, from\n   the same `gamedesign\u002F` folder, the shards this skill needs: **`gd-authoring.md`**\n   (the **section-cycle authoring contract** + the **delta discipline** — the\n   mandatory Version +1 → changelog → registry-check → recommend-verify tail),\n   **`gd-lifecycle.md`** (the lifecycle & status spine), **`gd-flow-axis.md`** (the\n   **Flow Axis** contract — the `AC · GOAL · event` grammar, flow lifecycle, wiring\n   mode, cross-axis staleness, Win\u002FLose ↔ terminal GOAL), and **`gd-provenance.md`**\n   (the explore-seed \u002F import provenance markers). This skill **applies** that\n   contract; it does not restate the mechanics. If missing, warn (`unikit-ai update`)\n   and fall back to the protocol as summarized in this file.\n2. **`.unikit\u002Fgamedesign\u002FGAME.md`** — pillars, loops, target aesthetics, win\u002Flose\n   intent, and non-goals the flow must serve; its `## System Map [gen]` is the system\n   roster the flow's `GOAL`s depend on. If it does not exist, **stop** — there is no\n   master spec yet. Read `.unikit\u002Fgamedesign\u002Fconcepts\u002FINDEX.md` (if it exists) to route\n   precisely: a `drafted`\u002F`approved` concept present → recommend `\u002Funikit-gd-spec`\n   (build the master spec from it); no concept — or no `concepts\u002FINDEX.md` (or no\n   `concepts\u002F` dir) at all → recommend `\u002Funikit-gd-brainstorm` first, then\n   `\u002Funikit-gd-spec`.\n3. **`.unikit\u002Fgamedesign\u002FGD-IDS.yaml`** — find the target flow's entry under `flows`.\n   If there is **no entry**, this is a new flow: a flow registers itself, so author it\n   here (Create — Phase 3 writes the `flows:` row). The `GOAL`s a new flow needs may\n   reference systems that are **not yet on the map**; that crossing into the *system*\n   roster routes back to `\u002Funikit-gd-spec` add-system (see the re-entry seam in\n   Phase 4) — never write a `systems:` row here.\n4. **`.unikit\u002Fmemory\u002Fgamedesign\u002FRULES_INDEX.md`** — load the **core** domain rules\n   for this flow's **purpose**, on demand by `Load When`, plus any studio `library`\n   rule on the same topic. Read the purpose from the flow's name and Overview (the\n   dynamics it shapes), **not** from a coarse label; when the purpose is ambiguous,\n   confirm the domain with one question, asked with the question tool of your agent (`AskUserQuestion`), rather than guessing. Domains are\n   opt-in and combinable — a flow may match more than one. Every flow shapes\n   **pacing + guidance**, so `core-loops` is always relevant; `ux-onboarding` rides\n   along whenever the flow teaches or guides:\n\n   | Flow purpose | Core rules to load |\n   |--------------|--------------------|\n   | onboarding \u002F first session | `ux-onboarding`, `core-loops` |\n   | core loop \u002F session arc | `core-loops`, `player-motivation` |\n   | progression \u002F mastery arc | `progression`, `core-loops` |\n   | combat \u002F encounter | `balance`, `frameworks` |\n   | economy \u002F shop funnel | `economy`, `monetization-ethics` |\n   | narrative \u002F quest | `narrative` |\n   | level \u002F mission | `level-design` |\n   | liveops \u002F event | `liveops`, `player-motivation` |\n   | meta \u002F retention | `player-motivation`, `liveops` |\n\n   Obey the index's **Rule-Loading Discipline**: load by `Load When`, load a reference\n   only from its parent rule's `> **References**:`, and **never glob the memory tree**\n   (`.unikit\u002Fmemory\u002Fgamedesign\u002F**`) to discover rules.\n\n5. **`.unikit\u002FRULES.md`** (if present) — project overrides, highest priority. **Rule topics:** load the topic files listed under its `## Topics` whose `Load when` matches the design work at hand — the concept, system, flow or content type; when unsure, load.\n6. **Schema guard (clean break — no automatic migration).** `GD-IDS.yaml` MUST be\n   `version: 2`. If it is still `version: 1`, **STOP** and report: the design\n   workspace is on the pre-v2 layout — v2 dropped the standalone markdown\n   system-index and now renders the system, flow, and funnel maps into `GAME.md`\n   (`## System Map [gen]` \u002F `## Flow Map [gen]` \u002F `## Funnel [gen]`); there is no\n   automatic migration. Tell the user to bump `GD-IDS.yaml` to `version: 2` and fold\n   the legacy index rows into GAME.md's `[gen]` maps before re-running.\n\n**One-way boundary:** never read `.unikit\u002Fcode\u002F`, project source, or build\nartifacts. Flow is a *read target* for the code side, never a writeback surface — a\nflow's \"realized\" state is **derived**, never written here.\n\n\u003C!-- unikit:extension-point:bootstrap -->\n\n## Phase 1 — Context\n\nGather the facts the flow must stay consistent with (read-only):\n\n- **Known facts** from `GD-IDS.yaml` — pillars (the flow serves them), the systems\n  in `systems` (a `GOAL` exercises a system through `GOAL → SYS`, refined to\n  `GOAL → AC`), and terms already locked. These are constraints, not suggestions.\n- **Exercised system GDDs** — for each system this flow's `GOAL`s touch, read its\n  header and sections **C (Detailed Design)**, **H (Acceptance Criteria)**, and\n  **B (Player Fantasy)** so each `GOAL` lands on a real rule\u002FAC and the promised\n  feeling is grounded. A `GOAL` aimed at a missing or deprecated system is a\n  registry gap (route it through `unikit-gd-spec` add-system — Phase 4).\n- **Recent `unikit-gd-verify` reports** for this flow, if any\n  (`.unikit\u002Fgamedesign\u002Freviews\u002F`).\n- **Explore research (internal design lens)** — if this flow was seeded from a\n  `unikit-gd-explore` brief, discover the research **deterministically** (survives a\n  `\u002Fclear`): read the flow's `GD-IDS` `flows[].research:` pointer (authoritative),\n  falling back to the `researches\u002FINDEX.md` entry whose `Target:` is this\n  `FLOW-\u003Cslug>`. Read that research's `RESEARCH_BRIEF.md` → **`## Flow Feature Plan`**\n  block and use its objective\u002Fpacing\u002Fdependency **seeds** as the *starting drafts* —\n  a **seeded** section is **drafted silently** in Generation (Phase 4) and confirmed\n  in the group review (Phase 5); a seed is a draft, not an approved write. For a\n  **revision** (Edit), the matching block is\n  **`## Flow Improvement Plan`** — its ready-to-apply delta lines, expected scale,\n  touched `GOAL`s\u002Fsystems, and any `RF-\u003Cdate>-n` it closes pre-fill the change set\n  (the user still approves every edit). These explore-seeded drafts are **untagged\n  normal authored content** (`gd-provenance` → Provenance) — the import-only\n  `extracted` \u002F `generated` markers do not apply to flows.\n\n## Phase 2 — Resolve Mode + Depth (no flags)\n\nCheck `.unikit\u002Fgamedesign\u002Fflows\u002FFLOW-\u003Cslug>.md` and read the intent in the prompt:\n\n1. **Does not exist** → **Create**: build the skeleton (Phase 3), then run the\n   Decision-First flow — the **wiring mode** is the first decision in Phase 4 (it\n   shapes sections B and C).\n2. **Exists** and the prompt describes a **change to approved content** (a goal,\n   pacing beat, dependency, event, or the wiring mode: \"retune the pacing\", \"add a\n   branch\", \"change a GOAL\", \"rework the onboarding\") → **Edit**: classify the scale\n   and apply the delta (Revision below). Approved text is changed **only** through\n   this path.\n3. **Exists with `[To be designed]` placeholders** and the intent is to continue \u002F\n   fill (or no change is described) → **Fill**: resume from the remaining placeholders.\n   Approved text is **never overwritten** — only placeholders are filled. Skip the\n   skeleton sub-step (Phase 3.1); still fork-scan and run Phases 4–5 over the\n   placeholders.\n4. **Exists, complete, no change described** → authoring is done; nothing to write.\n   Offer review \u002F verify (Handoff) and stop.\n\nIf the flow name is ambiguous (matches several entries, or none) → the question tool of your agent (`AskUserQuestion`)\nlisting candidates. Never guess the target. Print the candidates to the screen as plain\nmarkdown first.\n\n**Depth gate (Create \u002F Fill only).** Once the mode is Create or Fill, present **one**\ndepth picker — the named tiers `core\u002Fstandard\u002Ffull`, each with what it adds, not bare\nletters:\n\n```\nThe question tool of your agent (`AskUserQuestion`): How deep should this pass go?\nOptions:\n1. core (recommended) — the floor that gets the flow to a solid, usable base: Overview,\n   Objective Flow (the run of objectives the player works through).\n2. standard — core + Pacing, Dependencies, Events (the funnel).\n3. full — every section, fully tuned.\n```\n\nThe picked tier is the **ephemeral scope of this pass — NOT stored**\n(`gd-authoring` \u002F `gd-lifecycle`); the lasting fact is the inferred status at Phase 6.\n**Edit** mode skips the depth gate entirely (it lies flat on the Revision flow).\n\n---\n\n## Load the Mode Body\n\nWith the mode resolved (Phase 2) and the depth picked (Create \u002F Fill only), load the\nmatching body on demand and follow it — do **not** keep both bodies in context. Create\n\u002F Fill returns to **Phase 6** (Registry & State) below; Edit returns to **Handoff**.\n\n| Mode | Reference body |\n|------|----------------|\n| **Create \u002F Fill** | `{{skills_dir}}\u002F{{self_name}}\u002Freferences\u002Fmode-author.md` — the Decision-First section-cycle: the A–F section map + core-set, Phase 3 (Skeleton + Fork-Scan), Phase 4 (Decision Interview + Generation, incl. the wiring-mode decision + the re-entry seam), Phase 5 (Group Review). |\n| **Edit** | `{{skills_dir}}\u002F{{self_name}}\u002Freferences\u002Fmode-revise.md` — classify the scale (Tuning \u002F Tweak \u002F Rework \u002F Structural-redirect), apply the change, then the mandatory delta tail. |\n\n## Phase 6 — Registry & State (write `flows:` \u002F `events:`, then re-render the maps)\n\nAfter the sections are authored and accepted:\n\n1. **Write the `GD-IDS.yaml` `flows[]` entry** (the flow's machine truth — the flow\n   registers itself): `id: FLOW-\u003Cslug>`, `name`, `status: active`, `mode`,\n   `doc_status`, `version`, `depends_on` (the `SYS` ids from section D), `goals:` (one\n   `GOAL-\u003Cflow>-\u003Cn>` per row — `id`, `summary`, `targets:` the `SYS`\u002F`AC` it\n   exercises), `research:` (the explore-research folder if seeded — a non-id path;\n   owned here, not by `unikit-gd-spec`), `source: flows\u002FFLOW-\u003Cslug>.md`, `added`. Write\n   each funnel event under `events[]` (`id`, `name`, `status`, `source`, `flow:`).\n   Get approval before the write; existing values are never changed silently; every\n   fact carries its `source` (`gd-principles` → Facts Registry).\n2. **Status (inferred — `gd-lifecycle`).** Set the flow's status in the **two places\n   that must agree** — the `FLOW.md` header `> Status:` token and the `GD-IDS.yaml`\n   `doc_status`: `detailed` once the whole **core-set (A\u002FB)** is authored; **held at\n   `skeleton`** while a **core** section carries `\u003C!-- deferred -->` (the soft floor\n   guard; the WARN in Phase 4); `detailed · partial (n\u002Fm)` (rendered, inferred from the\n   markers) when the core is complete but ≥1 **non-core** section is deferred. Set\n   `version: 1` (header + `GD-IDS`). Write the initial changelog block to section F\n   (`#### v1 — \u003Cdate> — initial design` with the `GOAL: + GOAL-\u003Cslug>-1 … N (new)`\n   line and `Affected (gd-verify): —`) — the single current block (K1).\n3. **Regen-on-write — re-render the maps (B1).** As the last step, re-render\n   `GAME.md`'s `## Flow Map [gen]` and `## Funnel [gen]` blocks from `GD-IDS`\n   (the `RULES_INDEX` render model): replace **only** the content between\n   `\u003C!-- gen:flow-map -->` \u002F `\u003C!-- \u002Fgen:flow-map -->` and between\n   `\u003C!-- gen:funnel -->` \u002F `\u003C!-- \u002Fgen:funnel -->` — **never** touch the authored\n   one-pager above, and **never** the `## System Map [gen]` block (that is\n   `unikit-gd-spec`'s render).\n   - **Flow Map** — one row per `flows[]` entry, grouped by wiring-mode\n     (Linear\u002FConditional, Emergent): `ID | Flow | Mode | Status | Ver | Depends (SYS) |\n     Realized | Doc`. `Status` mirrors `doc_status` (plus `deprecated` from the\n     `status` field), with the **`· partial (n\u002Fm)` suffix** appended when the `FLOW.md`\n     carries ≥1 `\u003C!-- deferred -->` (the canonical render format from `gd-lifecycle` —\n     the same suffix verify and the System Map use); `Ver` is `—` until `skeleton`.\n   - **`Realized` is DERIVED, never written:** `yes` once **every** system in the\n     flow's `depends_on` carries a non-empty `implemented_version` in `GD-IDS`\n     (the code-set field), else `no`. It is computed from the systems' state on each\n     render — there is no `implemented` field on flows.\n   - **Funnel** — one row per `events[]` entry: `Order | Event | Flow | Measures`,\n     ordered by funnel position.\n\n---\n\n## Handoff & Next Steps\n\nRecommend the next steps (do not auto-invoke):\n\n- ✅ Verify consistency & impact — \u002Funikit-gd-verify FLOW-\u003Cslug>\n- 🔍 Qualitative review (fresh session) — \u002Funikit-gd-review flows\u002FFLOW-\u003Cslug>.md\n- 🧩 Detail an exercised system — \u002Funikit-gd-system \u003CSYS-slug>\n\nA review is most independent in a **fresh session** (the reviewer should not have\nauthored the doc). `unikit-gd-verify` is read-only — it checks the flow against the\nregistry and **prints** dependent flows on cross-axis staleness; the `## Flow Map [gen]`\n\u002F `## Funnel [gen]` were already re-rendered on this skill's write (B1).\n\n## Final: Compact Report\n\nThe terminal plaque (TIER A — `gd-principles` → Language: name leads, ids are\nparenthetical copy-paste tags, status is a plain phrase):\n\n```\nFlow: \u003Cname>  (FLOW-\u003Cslug>)\nMode: \u003Clinear | conditional | emergent>   ·   Depth: \u003Ccore | standard | full>  (create\u002Ffill)\nAction: \u003Ccreate | fill | edit (tuning|tweak|rework)>\nDoc: .unikit\u002Fgamedesign\u002Fflows\u002FFLOW-\u003Cslug>.md — \u003Cready | ready, a couple of optional blocks left | skeleton, main blocks not filled yet>, vN\nRegistry: +\u003CG> goals, +\u003CE> events, depends_on [\u003Cname> (SYS-\u003Cslug>), …]  (GD-IDS.yaml)\nGoals: GOAL-\u003Cslug>-1 … GOAL-\u003Cslug>-N   [GOAL delta on an edit: +\u003Cn> \u002F changed \u003Cn> \u002F removed \u003Cn>]\nMaps: ## Flow Map [gen] + ## Funnel [gen] re-rendered\n```\n\nNo summary document, no report file.\n\n## Ownership Boundaries\n\n- **Owns:** the **full lifecycle** of `flows\u002FFLOW-\u003Cslug>.md` — creating the skeleton,\n  filling placeholders, **and revising approved content** (Tuning \u002F Tweak \u002F Rework,\n  with the version bump + changelog; the status stays `detailed`); the flow's `GD-IDS.yaml`\n  facts (`flows[]` incl. `goals`, `mode`, `depends_on`, `research:`, and the flow's\n  `events`) and its `doc_status` \u002F `version`; the wiring-mode selection; and the\n  **re-render** of the `## Flow Map [gen]` and `## Funnel [gen]` blocks in `GAME.md`\n  (the `[gen]` regions only).\n- **Not this skill:** systems → `unikit-gd-system`; the system roster, the `GAME.md`\n  one-pager content (pillars, win\u002Flose intent, monetization stance) **and** its\n  `## System Map [gen]` render → `unikit-gd-spec`; quality verdicts →\n  `unikit-gd-review`; consistency & cross-axis impact → `unikit-gd-verify`.\n- **Never:** write, fill, or edit without approval; overwrite approved text outside\n  the delta discipline; skip the version bump or changelog on an edit (unrecorded\n  delta); change a `GD-IDS.yaml` value silently; delete or renumber an ID; write the\n  `systems:` roster or the `GAME.md` one-pager content; touch the `## System Map\n  [gen]` block; read the code workspace or project source.\n\n## Quick Reference\n\n```\n\u002Funikit-gd-flow FLOW-first-session                      → select mode + create skeleton + author A–F (if no doc yet)\n\u002Funikit-gd-flow first-session                           → resolve to the FLOW-slug; same flow\n\u002Funikit-gd-flow FLOW-first-session                      → resume filling placeholders (partial doc)\n\u002Funikit-gd-flow FLOW-first-session \"retune the pacing\"  → Tuning: edit C\u002FB, one approval\n\u002Funikit-gd-flow first-session \"add a stealth branch\"    → Rework: section-cycle old-vs-new\n\u002Funikit-gd-flow FLOW-onboarding \"switch to conditional\" → Rework: mode change (B + C restructured)\n```\n","# Game Design — Per-Flow GDD (Authoring & Revision)\n\nOwn **one flow's design document** at `.unikit\u002Fgamedesign\u002Fflows\u002FFLOW-\u003Cslug>.md` —\nthe **dynamics** axis of the GDD (what the player does over time), alongside the\nsystem GDDs (the rules) and `GAME.md` (the whole). This skill owns the **flow zone**\n(`gd-principles` → Zone Ownership): the **full lifecycle** of a `FLOW.md` lives here\n— **create** the skeleton, **fill** its placeholders, and **revise** approved\ncontent (Tuning \u002F Tweak \u002F Rework) under the delta discipline. There is no separate\neditor skill.\n\nA flow registers **itself**: this skill writes the flow's own `GD-IDS.yaml` `flows:`\nand `events:` entries and re-renders the `## Flow Map [gen]` \u002F `## Funnel [gen]`\nblocks in `GAME.md` — there is **no add-flow in `unikit-gd-spec`**. It never authors\na system, never edits the `GAME.md` one-pager content, and never adds a system to the\nroster — those are `unikit-gd-system` and `unikit-gd-spec`.\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 it to all output and artifacts (fall back to English if it is missing) —\nincluding the rule to **translate concepts, not transliterate jargon**.\n`gd-principles` → \"Language\" adds the game-design specifics: which IDs and stored\nfield values stay English. Do not announce 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## Phase 0 — Bootstrap\n\nSilently load — do not narrate:\n\n1. **`.unikit\u002Fsystem\u002Fgamedesign\u002Fgd-principles.md`** (the core) — the collaborative\n   protocol, the facts registry \u002F ID conventions, and the language rules. Plus, from\n   the same `gamedesign\u002F` folder, the shards this skill needs: **`gd-authoring.md`**\n   (the **section-cycle authoring contract** + the **delta discipline** — the\n   mandatory Version +1 → changelog → registry-check → recommend-verify tail),\n   **`gd-lifecycle.md`** (the lifecycle & status spine), **`gd-flow-axis.md`** (the\n   **Flow Axis** contract — the `AC · GOAL · event` grammar, flow lifecycle, wiring\n   mode, cross-axis staleness, Win\u002FLose ↔ terminal GOAL), and **`gd-provenance.md`**\n   (the explore-seed \u002F import provenance markers). This skill **applies** that\n   contract; it does not restate the mechanics. If missing, warn (`unikit-ai update`)\n   and fall back to the protocol as summarized in this file.\n2. **`.unikit\u002Fgamedesign\u002FGAME.md`** — pillars, loops, target aesthetics, win\u002Flose\n   intent, and non-goals the flow must serve; its `## System Map [gen]` is the system\n   roster the flow's `GOAL`s depend on. If it does not exist, **stop** — there is no\n   master spec yet. Read `.unikit\u002Fgamedesign\u002Fconcepts\u002FINDEX.md` (if it exists) to route\n   precisely: a `drafted`\u002F`approved` concept present → recommend `\u002Funikit-gd-spec`\n   (build the master spec from it); no concept — or no `concepts\u002FINDEX.md` (or no\n   `concepts\u002F` dir) at all → recommend `\u002Funikit-gd-brainstorm` first, then\n   `\u002Funikit-gd-spec`.\n3. **`.unikit\u002Fgamedesign\u002FGD-IDS.yaml`** — find the target flow's entry under `flows`.\n   If there is **no entry**, this is a new flow: a flow registers itself, so author it\n   here (Create — Phase 3 writes the `flows:` row). The `GOAL`s a new flow needs may\n   reference systems that are **not yet on the map**; that crossing into the *system*\n   roster routes back to `\u002Funikit-gd-spec` add-system (see the re-entry seam in\n   Phase 4) — never write a `systems:` row here.\n4. **`.unikit\u002Fmemory\u002Fgamedesign\u002FRULES_INDEX.md`** — load the **core** domain rules\n   for this flow's **purpose**, on demand by `Load When`, plus any studio `library`\n   rule on the same topic. Read the purpose from the flow's name and Overview (the\n   dynamics it shapes), **not** from a coarse label; when the purpose is ambiguous,\n   confirm the domain with one question, asked with the question tool of your agent (`AskUserQuestion`), rather than guessing. Domains are\n   opt-in and combinable — a flow may match more than one. Every flow shapes\n   **pacing + guidance**, so `core-loops` is always relevant; `ux-onboarding` rides\n   along whenever the flow teaches or guides:\n\n   | Flow purpose | Core rules to load |\n   |--------------|--------------------|\n   | onboarding \u002F first session | `ux-onboarding`, `core-loops` |\n   | core loop \u002F session arc | `core-loops`, `player-motivation` |\n   | progression \u002F mastery arc | `progression`, `core-loops` |\n   | combat \u002F encounter | `balance`, `frameworks` |\n   | economy \u002F shop funnel | `economy`, `monetization-ethics` |\n   | narrative \u002F quest | `narrative` |\n   | level \u002F mission | `level-design` |\n   | liveops \u002F event | `liveops`, `player-motivation` |\n   | meta \u002F retention | `player-motivation`, `liveops` |\n\n   Obey the index's **Rule-Loading Discipline**: load by `Load When`, load a reference\n   only from its parent rule's `> **References**:`, and **never glob the memory tree**\n   (`.unikit\u002Fmemory\u002Fgamedesign\u002F**`) to discover rules.\n\n5. **`.unikit\u002FRULES.md`** (if present) — project overrides, highest priority. **Rule topics:** load the topic files listed under its `## Topics` whose `Load when` matches the design work at hand — the concept, system, flow or content type; when unsure, load.\n6. **Schema guard (clean break — no automatic migration).** `GD-IDS.yaml` MUST be\n   `version: 2`. If it is still `version: 1`, **STOP** and report: the design\n   workspace is on the pre-v2 layout — v2 dropped the standalone markdown\n   system-index and now renders the system, flow, and funnel maps into `GAME.md`\n   (`## System Map [gen]` \u002F `## Flow Map [gen]` \u002F `## Funnel [gen]`); there is no\n   automatic migration. Tell the user to bump `GD-IDS.yaml` to `version: 2` and fold\n   the legacy index rows into GAME.md's `[gen]` maps before re-running.\n\n**One-way boundary:** never read `.unikit\u002Fcode\u002F`, project source, or build\nartifacts. Flow is a *read target* for the code side, never a writeback surface — a\nflow's \"realized\" state is **derived**, never written here.\n\n\u003C!-- unikit:extension-point:bootstrap -->\n\n## Phase 1 — Context\n\nGather the facts the flow must stay consistent with (read-only):\n\n- **Known facts** from `GD-IDS.yaml` — pillars (the flow serves them), the systems\n  in `systems` (a `GOAL` exercises a system through `GOAL → SYS`, refined to\n  `GOAL → AC`), and terms already locked. These are constraints, not suggestions.\n- **Exercised system GDDs** — for each system this flow's `GOAL`s touch, read its\n  header and sections **C (Detailed Design)**, **H (Acceptance Criteria)**, and\n  **B (Player Fantasy)** so each `GOAL` lands on a real rule\u002FAC and the promised\n  feeling is grounded. A `GOAL` aimed at a missing or deprecated system is a\n  registry gap (route it through `unikit-gd-spec` add-system — Phase 4).\n- **Recent `unikit-gd-verify` reports** for this flow, if any\n  (`.unikit\u002Fgamedesign\u002Freviews\u002F`).\n- **Explore research (internal design lens)** — if this flow was seeded from a\n  `unikit-gd-explore` brief, discover the research **deterministically** (survives a\n  `\u002Fclear`): read the flow's `GD-IDS` `flows[].research:` pointer (authoritative),\n  falling back to the `researches\u002FINDEX.md` entry whose `Target:` is this\n  `FLOW-\u003Cslug>`. Read that research's `RESEARCH_BRIEF.md` → **`## Flow Feature Plan`**\n  block and use its objective\u002Fpacing\u002Fdependency **seeds** as the *starting drafts* —\n  a **seeded** section is **drafted silently** in Generation (Phase 4) and confirmed\n  in the group review (Phase 5); a seed is a draft, not an approved write. For a\n  **revision** (Edit), the matching block is\n  **`## Flow Improvement Plan`** — its ready-to-apply delta lines, expected scale,\n  touched `GOAL`s\u002Fsystems, and any `RF-\u003Cdate>-n` it closes pre-fill the change set\n  (the user still approves every edit). These explore-seeded drafts are **untagged\n  normal authored content** (`gd-provenance` → Provenance) — the import-only\n  `extracted` \u002F `generated` markers do not apply to flows.\n\n## Phase 2 — Resolve Mode + Depth (no flags)\n\nCheck `.unikit\u002Fgamedesign\u002Fflows\u002FFLOW-\u003Cslug>.md` and read the intent in the prompt:\n\n1. **Does not exist** → **Create**: build the skeleton (Phase 3), then run the\n   Decision-First flow — the **wiring mode** is the first decision in Phase 4 (it\n   shapes sections B and C).\n2. **Exists** and the prompt describes a **change to approved content** (a goal,\n   pacing beat, dependency, event, or the wiring mode: \"retune the pacing\", \"add a\n   branch\", \"change a GOAL\", \"rework the onboarding\") → **Edit**: classify the scale\n   and apply the delta (Revision below). Approved text is changed **only** through\n   this path.\n3. **Exists with `[To be designed]` placeholders** and the intent is to continue \u002F\n   fill (or no change is described) → **Fill**: resume from the remaining placeholders.\n   Approved text is **never overwritten** — only placeholders are filled. Skip the\n   skeleton sub-step (Phase 3.1); still fork-scan and run Phases 4–5 over the\n   placeholders.\n4. **Exists, complete, no change described** → authoring is done; nothing to write.\n   Offer review \u002F verify (Handoff) and stop.\n\nIf the flow name is ambiguous (matches several entries, or none) → the question tool of your agent (`AskUserQuestion`)\nlisting candidates. Never guess the target. Print the candidates to the screen as plain\nmarkdown first.\n\n**Depth gate (Create \u002F Fill only).** Once the mode is Create or Fill, present **one**\ndepth picker — the named tiers `core\u002Fstandard\u002Ffull`, each with what it adds, not bare\nletters:\n\n```\nThe question tool of your agent (`AskUserQuestion`): How deep should this pass go?\nOptions:\n1. core (recommended) — the floor that gets the flow to a solid, usable base: Overview,\n   Objective Flow (the run of objectives the player works through).\n2. standard — core + Pacing, Dependencies, Events (the funnel).\n3. full — every section, fully tuned.\n```\n\nThe picked tier is the **ephemeral scope of this pass — NOT stored**\n(`gd-authoring` \u002F `gd-lifecycle`); the lasting fact is the inferred status at Phase 6.\n**Edit** mode skips the depth gate entirely (it lies flat on the Revision flow).\n\n---\n\n## Load the Mode Body\n\nWith the mode resolved (Phase 2) and the depth picked (Create \u002F Fill only), load the\nmatching body on demand and follow it — do **not** keep both bodies in context. Create\n\u002F Fill returns to **Phase 6** (Registry & State) below; Edit returns to **Handoff**.\n\n| Mode | Reference body |\n|------|----------------|\n| **Create \u002F Fill** | `{{skills_dir}}\u002F{{self_name}}\u002Freferences\u002Fmode-author.md` — the Decision-First section-cycle: the A–F section map + core-set, Phase 3 (Skeleton + Fork-Scan), Phase 4 (Decision Interview + Generation, incl. the wiring-mode decision + the re-entry seam), Phase 5 (Group Review). |\n| **Edit** | `{{skills_dir}}\u002F{{self_name}}\u002Freferences\u002Fmode-revise.md` — classify the scale (Tuning \u002F Tweak \u002F Rework \u002F Structural-redirect), apply the change, then the mandatory delta tail. |\n\n## Phase 6 — Registry & State (write `flows:` \u002F `events:`, then re-render the maps)\n\nAfter the sections are authored and accepted:\n\n1. **Write the `GD-IDS.yaml` `flows[]` entry** (the flow's machine truth — the flow\n   registers itself): `id: FLOW-\u003Cslug>`, `name`, `status: active`, `mode`,\n   `doc_status`, `version`, `depends_on` (the `SYS` ids from section D), `goals:` (one\n   `GOAL-\u003Cflow>-\u003Cn>` per row — `id`, `summary`, `targets:` the `SYS`\u002F`AC` it\n   exercises), `research:` (the explore-research folder if seeded — a non-id path;\n   owned here, not by `unikit-gd-spec`), `source: flows\u002FFLOW-\u003Cslug>.md`, `added`. Write\n   each funnel event under `events[]` (`id`, `name`, `status`, `source`, `flow:`).\n   Get approval before the write; existing values are never changed silently; every\n   fact carries its `source` (`gd-principles` → Facts Registry).\n2. **Status (inferred — `gd-lifecycle`).** Set the flow's status in the **two places\n   that must agree** — the `FLOW.md` header `> Status:` token and the `GD-IDS.yaml`\n   `doc_status`: `detailed` once the whole **core-set (A\u002FB)** is authored; **held at\n   `skeleton`** while a **core** section carries `\u003C!-- deferred -->` (the soft floor\n   guard; the WARN in Phase 4); `detailed · partial (n\u002Fm)` (rendered, inferred from the\n   markers) when the core is complete but ≥1 **non-core** section is deferred. Set\n   `version: 1` (header + `GD-IDS`). Write the initial changelog block to section F\n   (`#### v1 — \u003Cdate> — initial design` with the `GOAL: + GOAL-\u003Cslug>-1 … N (new)`\n   line and `Affected (gd-verify): —`) — the single current block (K1).\n3. **Regen-on-write — re-render the maps (B1).** As the last step, re-render\n   `GAME.md`'s `## Flow Map [gen]` and `## Funnel [gen]` blocks from `GD-IDS`\n   (the `RULES_INDEX` render model): replace **only** the content between\n   `\u003C!-- gen:flow-map -->` \u002F `\u003C!-- \u002Fgen:flow-map -->` and between\n   `\u003C!-- gen:funnel -->` \u002F `\u003C!-- \u002Fgen:funnel -->` — **never** touch the authored\n   one-pager above, and **never** the `## System Map [gen]` block (that is\n   `unikit-gd-spec`'s render).\n   - **Flow Map** — one row per `flows[]` entry, grouped by wiring-mode\n     (Linear\u002FConditional, Emergent): `ID | Flow | Mode | Status | Ver | Depends (SYS) |\n     Realized | Doc`. `Status` mirrors `doc_status` (plus `deprecated` from the\n     `status` field), with the **`· partial (n\u002Fm)` suffix** appended when the `FLOW.md`\n     carries ≥1 `\u003C!-- deferred -->` (the canonical render format from `gd-lifecycle` —\n     the same suffix verify and the System Map use); `Ver` is `—` until `skeleton`.\n   - **`Realized` is DERIVED, never written:** `yes` once **every** system in the\n     flow's `depends_on` carries a non-empty `implemented_version` in `GD-IDS`\n     (the code-set field), else `no`. It is computed from the systems' state on each\n     render — there is no `implemented` field on flows.\n   - **Funnel** — one row per `events[]` entry: `Order | Event | Flow | Measures`,\n     ordered by funnel position.\n\n---\n\n## Handoff & Next Steps\n\nRecommend the next steps (do not auto-invoke):\n\n- ✅ Verify consistency & impact — \u002Funikit-gd-verify FLOW-\u003Cslug>\n- 🔍 Qualitative review (fresh session) — \u002Funikit-gd-review flows\u002FFLOW-\u003Cslug>.md\n- 🧩 Detail an exercised system — \u002Funikit-gd-system \u003CSYS-slug>\n\nA review is most independent in a **fresh session** (the reviewer should not have\nauthored the doc). `unikit-gd-verify` is read-only — it checks the flow against the\nregistry and **prints** dependent flows on cross-axis staleness; the `## Flow Map [gen]`\n\u002F `## Funnel [gen]` were already re-rendered on this skill's write (B1).\n\n## Final: Compact Report\n\nThe terminal plaque (TIER A — `gd-principles` → Language: name leads, ids are\nparenthetical copy-paste tags, status is a plain phrase):\n\n```\nFlow: \u003Cname>  (FLOW-\u003Cslug>)\nMode: \u003Clinear | conditional | emergent>   ·   Depth: \u003Ccore | standard | full>  (create\u002Ffill)\nAction: \u003Ccreate | fill | edit (tuning|tweak|rework)>\nDoc: .unikit\u002Fgamedesign\u002Fflows\u002FFLOW-\u003Cslug>.md — \u003Cready | ready, a couple of optional blocks left | skeleton, main blocks not filled yet>, vN\nRegistry: +\u003CG> goals, +\u003CE> events, depends_on [\u003Cname> (SYS-\u003Cslug>), …]  (GD-IDS.yaml)\nGoals: GOAL-\u003Cslug>-1 … GOAL-\u003Cslug>-N   [GOAL delta on an edit: +\u003Cn> \u002F changed \u003Cn> \u002F removed \u003Cn>]\nMaps: ## Flow Map [gen] + ## Funnel [gen] re-rendered\n```\n\nNo summary document, no report file.\n\n## Ownership Boundaries\n\n- **Owns:** the **full lifecycle** of `flows\u002FFLOW-\u003Cslug>.md` — creating the skeleton,\n  filling placeholders, **and revising approved content** (Tuning \u002F Tweak \u002F Rework,\n  with the version bump + changelog; the status stays `detailed`); the flow's `GD-IDS.yaml`\n  facts (`flows[]` incl. `goals`, `mode`, `depends_on`, `research:`, and the flow's\n  `events`) and its `doc_status` \u002F `version`; the wiring-mode selection; and the\n  **re-render** of the `## Flow Map [gen]` and `## Funnel [gen]` blocks in `GAME.md`\n  (the `[gen]` regions only).\n- **Not this skill:** systems → `unikit-gd-system`; the system roster, the `GAME.md`\n  one-pager content (pillars, win\u002Flose intent, monetization stance) **and** its\n  `## System Map [gen]` render → `unikit-gd-spec`; quality verdicts →\n  `unikit-gd-review`; consistency & cross-axis impact → `unikit-gd-verify`.\n- **Never:** write, fill, or edit without approval; overwrite approved text outside\n  the delta discipline; skip the version bump or changelog on an edit (unrecorded\n  delta); change a `GD-IDS.yaml` value silently; delete or renumber an ID; write the\n  `systems:` roster or the `GAME.md` one-pager content; touch the `## System Map\n  [gen]` block; read the code workspace or project source.\n\n## Quick Reference\n\n```\n\u002Funikit-gd-flow FLOW-first-session                      → select mode + create skeleton + author A–F (if no doc yet)\n\u002Funikit-gd-flow first-session                           → resolve to the FLOW-slug; same flow\n\u002Funikit-gd-flow FLOW-first-session                      → resume filling placeholders (partial doc)\n\u002Funikit-gd-flow FLOW-first-session \"retune the pacing\"  → Tuning: edit C\u002FB, one approval\n\u002Funikit-gd-flow first-session \"add a stealth branch\"    → Rework: section-cycle old-vs-new\n\u002Funikit-gd-flow FLOW-onboarding \"switch to conditional\" → Rework: mode change (B + C restructured)\n```\n",{"name":5,"metadata":54,"description":7,"allowed-tools":58,"argument-hint":69,"user-invocable":70,"disable-model-invocation":50},{"author":55,"version":56,"category":57},"unikit","1.0","game-design",[59,60,61,62,63,64,65,66,67,68],"Read","Write","Edit","Glob","Grep","Bash(ls *)","Bash(find *)","Bash(wc *)","Bash(date *)","AskUserQuestion","\u003Cflow name | FLOW-slug> [\"\u003Cwhat to change>\"]  (mode inferred from doc state + intent; no flags)",true,"main","ae3c6dfffd26d9b45b9d96d71ba2c122c50b67ae","skills\u002Funikit-gd-flow",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":81,"prompt":91,"zipAvailable":70},[82,85,88],{"tool":83,"command":84},"npx","npx skills add NintendaDev\u002Funikit-ai --skill unikit-gd-flow",{"tool":86,"command":87},"bunx","bunx skills add NintendaDev\u002Funikit-ai --skill unikit-gd-flow",{"tool":89,"command":90},"pnpm","pnpm dlx skills add NintendaDev\u002Funikit-ai --skill unikit-gd-flow","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-gd-flow\u002FSKILL.md",[93,99],{"path":94,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fmode-author.md","REFERENCE","参考文档",10218,"https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-gd-flow\u002Freferences\u002Fmode-author.md",{"path":100,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fmode-revise.md",5754,"https:\u002F\u002Fgithub.com\u002FNintendaDev\u002Funikit-ai\u002Fblob\u002Fmain\u002Fskills\u002Funikit-gd-flow\u002Freferences\u002Fmode-revise.md",[104,128,153,175,194,220],{"skillNo":105,"name":55,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":112,"publishedAt":49},"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",[109],{"categoryNo":110,"categoryName":111,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[55,113,45,114,115,116,117,118,119,120,36,35,121,34,122,123,124,125,126,127],"project","actions","fix","documents","architecture","stack","run","update","config","git","context","initialize","tech","scan","use",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":138,"publishedAt":49},"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",[134,137],{"categoryNo":135,"categoryName":136,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":110,"categoryName":111,"taxonomyType":21,"taxonomyTypeDesc":22},[139,140,141,142,143,144,119,36,35,34,122,145,146,127,147,148,149,150,151,152],"unikit verify","verify","powershell","code review","phase","plan","for","system","implement","check","engine","research","name","quality",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":49},"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",[],[160,161,162,163,113,164,165,166,167,168,169,170,144,171,172,173,36,35,34,174],"unikit todo","todo","remind","show","todo list","only","now","you","done","tasks","work","me","reminders","later","act",{"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":182,"publishedAt":49},"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",[181],{"categoryNo":110,"categoryName":111,"taxonomyType":21,"taxonomyTypeDesc":22},[183,123,113,115,184,185,186,187,188,189,190,191,161,39,192,119,193,36,35,34],"unikit skills context","coding conventions","writing","when","workflow","commit","review","general coding","text","how","past",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":207,"publishedAt":49},"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",[200,203,206],{"categoryNo":201,"categoryName":202,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":204,"categoryName":205,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":110,"categoryName":111,"taxonomyType":21,"taxonomyTypeDesc":22},[208,209,210,211,113,212,213,214,215,216,117,217,191,218,118,173,36,35,34,219],"Rules","unikit rules","quick","PDF","clean","knowledge","files","URL","migrate","batch","knowledge base","prune",{"skillNo":221,"name":222,"nameZh":6,"description":223,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":224,"categories":225,"keywords":226,"publishedAt":49},"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",[],[227,208,228,229,113,230,213,231,216,40,120,36,35,122,232,233,234,235,236,237],"registry","unikit rules registry","shared","local","remote","ai rules","automatic","semver","knowledge-base","as","three"]