[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RRDRD85802E6ASWCCNJFT":3,"skill-same:01M71RRDRD85802E6ASWCCNJFT":65},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M71RRDRD85802E6ASWCCNJFT","garrison-walkthrough",null,"Records self-verified video evidence that the current change works by invoking the walkthrough skill with the change's diff and acceptance context, then surfaces the scrubbable link. It is the walkthrough-evidence phase of a Garrison run; in a build a walkthrough STUCK\u002Fask-user return becomes failed-but-unblocking and the run continues, and standalone it records the walkthrough and reports (including a STUCK). Delegates to the walkthrough skill and never rebuilds it. Invoked by the Garrison run engine as its walkthrough-evidence step, or standalone only when the user explicitly asks for it. Do NOT auto-invoke this skill from task inference - Garrison decides when its phase skills run.","gongiskhan\u002Fagent-garrison","gongiskhan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1997392?v=4","01M71RKMFR53TKXE308C22QTNZ","01M71RKMJA57KZHNDCBNKTWZRR",1,"MIT","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ffittings\u002Fseed\u002Fgarrison-skills\u002F.apm\u002Fskills\u002Fgarrison-walkthrough\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"garrison walkthrough","walkthrough","task","phase","ask","when","invoke","acceptance","auto","only","records","for","diff","skills run","never","evidence","standalone","do","as","Video","2026-11-10 13:02:02",false,"---\nname: garrison-walkthrough\ndescription: Records self-verified video evidence that the current change works by invoking the walkthrough skill with the change's diff and acceptance context, then surfaces the scrubbable link. It is the walkthrough-evidence phase of a Garrison run; in a build a walkthrough STUCK\u002Fask-user return becomes failed-but-unblocking and the run continues, and standalone it records the walkthrough and reports (including a STUCK). Delegates to the walkthrough skill and never rebuilds it. Invoked by the Garrison run engine as its walkthrough-evidence step, or standalone only when the user explicitly asks for it. Do NOT auto-invoke this skill from task inference - Garrison decides when its phase skills run.\n---\n\n# garrison-walkthrough\n\n## Policy-read preamble (soft - D5\u002FD12)\n\nAt the start of every invocation, look for the compiled Orchestrator policy at\n`~\u002F.garrison\u002Forchestrator\u002Fpolicy.json` (or `$GARRISON_POLICY_PATH`).\n\n- **Policy present** (a Garrison run): it is the single authority. This skill\n  carries NO model\u002Feffort pins - its execution parameters come from the policy\n  matrix cell for its phase (`matrix[\u003Cphase>][\u003Ctier>]`), and its gate duties\n  from the bindable phase-skill contract (the Orchestrator fitting's\n  PHASE_SKILL_CONTRACT.md): do the phase's work in the run context handed to you\n  (runDir, card, phase), write the phase's gate-status entry under the runDir,\n  and print the phase's `GATE \u003Cphase>: \u003Cverdict>` line before choosing the next\n  list.\n- **Policy absent** (standalone, any repo): proceed with the caller-supplied\n  context and sensible defaults - NEVER stop. Report to the caller rather than\n  writing gate-status\u002Frun artifacts, and skip any board\u002Frun-engine steps.\n\n\nRecords self-verified evidence that the current change works, by invoking the **`walkthrough`** skill (never rebuilding it) with the change's context, and surfacing the scrubbable link. The evidence step of a garrison build, and a standalone \"show it working\" recorder.\n\n## What it does\nInvoke **`walkthrough`** on the change, passing the **diff + task context + acceptance** so its flow selection is accurate. **Always pass `mode: evidence` and the slice's acceptance-criteria list** — evidence mode records one lean per-criterion proof beat each (terse captions, short holds, no story arc, per-beat vision + inline asserts as the gate) rather than a marketing story; see the walkthrough skill's **Evidence mode**. walkthrough owns recording, captions, frame extraction, vision self-verification, its own retry ceiling, honest failure rendering, its notes file, and publishing the Tailscale link + gallery.\n- For a **CLI \u002F backend** deliverable with no browser UI, evidence is an `evidence` panel (walkthrough renders the real command's captured output, the resulting file, or the live server log as a clean still with the proving line highlighted) — never a recording of a terminal being typed into.\n- For an **event-streamed \u002F dynamic** flow (escalation, an agent run, a live status\u002Fprogress stream), the capture MUST be a LIVED end-to-end run of that exact flow, not a mechanism proxy or a partial stand-in.\nAfter it returns, **confirm the gallery URL actually resolves** (the serve must be running); (re)start it if down, so the recorded link is live.\n\n## Loop role + output\n- **In a garrison build:** a walkthrough **STUCK\u002Fask-user return becomes `video.status: failed-but-unblocking`** — record the STUCK.md path + link (if any), append a blocker to `docs\u002Fdecisions.md`, and **CONTINUE**; never wait for input. A genuine feature failure that walkthrough renders honestly (`flagged: true`) is recorded, not faked green. **Consume the emitted `evidence.json` into gate-status**: the per-slice `gates.video` records `mode: \"evidence\"` and an `evidence` pointer to that `evidence.json`, so Validate checks each acceptance criterion against the JSON **without watching the video**. An **`evidence-degraded`** return — a caption\u002Flegibility beat that still failed after its one re-record **while its functional `assert` PASSED** — is recorded as `video.status: evidence-degraded` with the reason; the criterion stays proven by its passing assert.\n- **Standalone:** record the walkthrough and report the link (rendering a STUCK honestly, not as success).\n\nPrint the evidence status in the lead context; a build's terminal verdict counts it in `videos:\u003Cverified>\u002F\u003Ctotal>`.\n","# garrison-walkthrough\n\n## Policy-read preamble (soft - D5\u002FD12)\n\nAt the start of every invocation, look for the compiled Orchestrator policy at\n`~\u002F.garrison\u002Forchestrator\u002Fpolicy.json` (or `$GARRISON_POLICY_PATH`).\n\n- **Policy present** (a Garrison run): it is the single authority. This skill\n  carries NO model\u002Feffort pins - its execution parameters come from the policy\n  matrix cell for its phase (`matrix[\u003Cphase>][\u003Ctier>]`), and its gate duties\n  from the bindable phase-skill contract (the Orchestrator fitting's\n  PHASE_SKILL_CONTRACT.md): do the phase's work in the run context handed to you\n  (runDir, card, phase), write the phase's gate-status entry under the runDir,\n  and print the phase's `GATE \u003Cphase>: \u003Cverdict>` line before choosing the next\n  list.\n- **Policy absent** (standalone, any repo): proceed with the caller-supplied\n  context and sensible defaults - NEVER stop. Report to the caller rather than\n  writing gate-status\u002Frun artifacts, and skip any board\u002Frun-engine steps.\n\n\nRecords self-verified evidence that the current change works, by invoking the **`walkthrough`** skill (never rebuilding it) with the change's context, and surfacing the scrubbable link. The evidence step of a garrison build, and a standalone \"show it working\" recorder.\n\n## What it does\nInvoke **`walkthrough`** on the change, passing the **diff + task context + acceptance** so its flow selection is accurate. **Always pass `mode: evidence` and the slice's acceptance-criteria list** — evidence mode records one lean per-criterion proof beat each (terse captions, short holds, no story arc, per-beat vision + inline asserts as the gate) rather than a marketing story; see the walkthrough skill's **Evidence mode**. walkthrough owns recording, captions, frame extraction, vision self-verification, its own retry ceiling, honest failure rendering, its notes file, and publishing the Tailscale link + gallery.\n- For a **CLI \u002F backend** deliverable with no browser UI, evidence is an `evidence` panel (walkthrough renders the real command's captured output, the resulting file, or the live server log as a clean still with the proving line highlighted) — never a recording of a terminal being typed into.\n- For an **event-streamed \u002F dynamic** flow (escalation, an agent run, a live status\u002Fprogress stream), the capture MUST be a LIVED end-to-end run of that exact flow, not a mechanism proxy or a partial stand-in.\nAfter it returns, **confirm the gallery URL actually resolves** (the serve must be running); (re)start it if down, so the recorded link is live.\n\n## Loop role + output\n- **In a garrison build:** a walkthrough **STUCK\u002Fask-user return becomes `video.status: failed-but-unblocking`** — record the STUCK.md path + link (if any), append a blocker to `docs\u002Fdecisions.md`, and **CONTINUE**; never wait for input. A genuine feature failure that walkthrough renders honestly (`flagged: true`) is recorded, not faked green. **Consume the emitted `evidence.json` into gate-status**: the per-slice `gates.video` records `mode: \"evidence\"` and an `evidence` pointer to that `evidence.json`, so Validate checks each acceptance criterion against the JSON **without watching the video**. An **`evidence-degraded`** return — a caption\u002Flegibility beat that still failed after its one re-record **while its functional `assert` PASSED** — is recorded as `video.status: evidence-degraded` with the reason; the criterion stays proven by its passing assert.\n- **Standalone:** record the walkthrough and report the link (rendering a STUCK honestly, not as success).\n\nPrint the evidence status in the lead context; a build's terminal verdict counts it in `videos:\u003Cverified>\u002F\u003Ctotal>`.\n",{"name":5,"description":7},"main","31458d7e0e08a7b3494c27bf2b912ed41c87a138","fittings\u002Fseed\u002Fgarrison-skills\u002F.apm\u002Fskills\u002Fgarrison-walkthrough",0,"https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison","https:\u002F\u002Fgongiskhan.github.io\u002Fagent-garrison\u002F","https:\u002F\u002Fgithub.com\u002Fgongiskhan","2026-11-07 05:27:23",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add gongiskhan\u002Fagent-garrison --skill garrison-walkthrough",{"tool":57,"command":58},"bunx","bunx skills add gongiskhan\u002Fagent-garrison --skill garrison-walkthrough",{"tool":60,"command":61},"pnpm","pnpm dlx skills add gongiskhan\u002Fagent-garrison --skill garrison-walkthrough","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ffittings\u002Fseed\u002Fgarrison-skills\u002F.apm\u002Fskills\u002Fgarrison-walkthrough\u002FSKILL.md",true,[],[66,78,88,99,111,139],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":38},"01M71RTFA0HD83YBE1TE7DCE6B","pinned-helper","An owned skill the human has pinned so the Improver must not touch it.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimprover\u002Fskills\u002Fpinned-helper\u002FSKILL.md",[],[73,74,75,76,77],"pinned helper","helper","human","touch","it",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":38},"01M71RTDKBG0WQHPHKFZKFWDHF","legacy-helper","A rarely used helper kept around from an earlier workflow.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimprover\u002Fskills\u002Flegacy-helper\u002FSKILL.md",[],[85,74,86,87],"Legacy","legacy helper","workflow",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":38},"01M71RTCC6ZVVJ9MHHESXPHWA6","human-notes","A human-authored skill not deployed by APM (loose, not in the lock).","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimprover\u002Fskills\u002Fhuman-notes\u002FSKILL.md",[],[95,75,96,97,98],"notes","human notes","lock","apm",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":38},"01M71RTB83ZP6VK6XH19Z93FAC","garrison-helper","Helps compose and station Garrison Fittings into Faculty role slots.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fimprover\u002Fskills\u002Fgarrison-helper\u002FSKILL.md",[],[74,106,107,108,109,110],"garrison","garrison helper","slots","role","compose",{"skillNo":112,"name":19,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":121,"publishedAt":38},"01M71RT6MBGJC4QQZBGHF4H1M8","Record a short, narrated, captioned video walkthrough that proves a finished coding task and shows how it behaves, then self-verify the video via vision on extracted frames and publish it as one scrubbable Tailscale link. Use after completing a change\u002Ffix\u002Ffeature on a web project (Next.js\u002FReact etc.) when the user wants visual proof of work, a demo of a user flow, or to avoid manually retesting and watching a long raw screen recording. Triggers on requests like \"record a walkthrough\", \"show me it working\", \"make a demo video of this\", \"prove the feature\", or finishing a UI\u002Froute\u002Fform\u002FAPI change worth demonstrating. Not for walking through a full from-scratch project build.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ffittings\u002Fseed\u002Fwalkthrough\u002F.apm\u002Fskills\u002Fwalkthrough\u002FSKILL.md",[116],{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[19,23,122,123,124,125,126,127,128,129,37,130,131,132,133,134,135,136,137,138],"project","project build","api","react","change","demo video","publish","recording","show me","work","short","fix","show","route","me","next","self",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":38},"01M71RT54T0SQS42XEP5FVQ28K","Trello","Manage tasks via Trello REST API.","https:\u002F\u002Fgithub.com\u002Fgongiskhan\u002Fagent-garrison\u002Fblob\u002Fmain\u002Ffittings\u002Fseed\u002Ftrello\u002F.apm\u002Fskills\u002Ftrello\u002FSKILL.md",[],[146,147,148,124,149,150,151],"trello","tasks","REST","manage","rest api","via"]