[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JGG8QDP9RC4W2TCVCZFWRX":3,"skill-same:01M6JGG8QDP9RC4W2TCVCZFWRX":59},{"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":18,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":44,"install":45,"resources":58},"01M6JGG8QDP9RC4W2TCVCZFWRX","plan-gate",null,"The single entry point for the brainstorm→plan quality gate — a table of contents mapping each required plan section to the skill that fills it. Use when a task enters brainstorm→plan or when drafting\u002Frevising plan.md, to route each section to its owning skill before requesting plan→execute.","muratovv\u002Fai-hats","muratovv","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F7502801?v=4","01M6JGCBN4KEJX012GPJVSH04T","Fedor Muratov","01M6JGCBSNMN7CW3RGTPPE0MN2",3,"MIT","https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fcore\u002Fskills\u002Fplan-gate\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"plan","gate","plan gate","quality gate","table","quality","brainstorm","execute","use","task","route","mapping","it","for","2026-11-10 10:12:30",false,"---\nname: plan-gate\ndescription: >-\n  The single entry point for the brainstorm→plan quality gate — a table of\n  contents mapping each required plan section to the skill that fills it.\n  Use when a task enters brainstorm→plan or when drafting\u002Frevising\n  plan.md, to route each section to its owning skill before requesting\n  plan→execute.\nlicense: MIT\n---\n\n# Plan Gate\n\nThe one named gate for `brainstorm → plan`. The engine writes a plan scaffold\nwhose required sections are enforced at plan→execute by the per-section gate\n — it blocks the transition and names any section left empty. This\nskill is the table of contents for filling them: it says which skill owns which\nsection. It does **not** re-implement those skills.\n\n## When to Use\n\n- Read this FIRST at `brainstorm → plan`, then invoke the per-section skills below — it is the single entry point that replaces the rival triggers the stage skills used to carry.\n- Prerequisite: the plan already lives in the tracker `plan.md`. Getting it there (home + draft→tracker transport, never `.claude\u002Fplans`) is skill **plan-discipline**; this skill only fills the sections.\n- Not a quality oracle: it routes, the owning skill judges. Don't put requirements\u002Fscope logic here.\n- Trivial task: a section may be filled directly or marked `N\u002FA — \u003Creason>`; the engine gate enforces non-emptiness, not depth.\n\n## Workflow\n\nFill each required section of `plan.md` via its owning skill, top to bottom. The\nleft column is the engine's `PLAN_SECTIONS` (a sync-test asserts this table\nstays identical to it — see `tests\u002Ftest_plan_gate.py`):\n\n| Plan section          | Owning skill \u002F how to fill                                                                                                                                                                                             |\n| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Requirements          | `requirements-interview` — per question: collect context → propose a cited best-guess → supervisor reviews.                                                                                                            |\n| Approach & counter    | `devils-advocate` — *conditional* value-counter (explicit `N\u002FA — \u003Creason>` for trivial tasks): steelman the value → name its unstated assumption → counter it (needed? missed anything? another way?) → assess impact. |\n| Scope & Out-of-scope  | `design-minimalism` — every primitive justified by a current-epic use case; speculative ideas → Out of scope.                                                                                                          |\n| Steps                 | `task-slicing` — tracer-bullet slices, `depends_on` edges, expand–contract for wide refactors; then `rack plan-extract` to split into child tasks once headings stabilise.                                             |\n| Verification Protocol | Self-authored — the concrete checks that prove the work (tests, in-process composition, lint). A check that proves ABSENCE (\"X no longer occurs\") names three things: the pattern, the scope it runs over, and a known-present sample the pattern must still find — no sample, no verdict. See **positive-control**.                                                                                                                         |\n\nThe three challenge stages run as a chain, not in parallel:\n`requirements-interview` states the value → `devils-advocate` challenges it\n(loop until it settles: *is this needed? did we miss anything? is there another\nway?*) → `design-minimalism` then minimises the means of what survives. That is\nwhy `Approach & counter` sits **before** `Scope & Out-of-scope`. The\n`Approach & counter` row is conditional (`required=False`): the engine never\nblocks `execute` on it, but a non-trivial plan should carry a real counter or an\nexplicit `N\u002FA`.\n\nThe gate fires on plan→execute and reopens nothing already passed. This skill's\njob is upstream: ensure each section has an owner so none is filled by guesswork\nor left blank for the gate to reject.\n\n## Completion\n\n- Every required section in `plan.md` is filled by (or explicitly `N\u002FA`'d through) its owning skill.\n- The plan→execute transition passes the per-section gate (no `EmptyPlanError`).\n\n## Anti-Patterns\n\n- Treating plan-gate as the judge — it is a router; the owning skill does the work.\n- Copying requirements-interview \u002F design-minimalism logic into this file — keep it a table of contents.\n- Editing the section table without matching the engine's `PLAN_SECTIONS` — the sync-test fails loudly on drift.\n","# Plan Gate\n\nThe one named gate for `brainstorm → plan`. The engine writes a plan scaffold\nwhose required sections are enforced at plan→execute by the per-section gate\n — it blocks the transition and names any section left empty. This\nskill is the table of contents for filling them: it says which skill owns which\nsection. It does **not** re-implement those skills.\n\n## When to Use\n\n- Read this FIRST at `brainstorm → plan`, then invoke the per-section skills below — it is the single entry point that replaces the rival triggers the stage skills used to carry.\n- Prerequisite: the plan already lives in the tracker `plan.md`. Getting it there (home + draft→tracker transport, never `.claude\u002Fplans`) is skill **plan-discipline**; this skill only fills the sections.\n- Not a quality oracle: it routes, the owning skill judges. Don't put requirements\u002Fscope logic here.\n- Trivial task: a section may be filled directly or marked `N\u002FA — \u003Creason>`; the engine gate enforces non-emptiness, not depth.\n\n## Workflow\n\nFill each required section of `plan.md` via its owning skill, top to bottom. The\nleft column is the engine's `PLAN_SECTIONS` (a sync-test asserts this table\nstays identical to it — see `tests\u002Ftest_plan_gate.py`):\n\n| Plan section          | Owning skill \u002F how to fill                                                                                                                                                                                             |\n| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Requirements          | `requirements-interview` — per question: collect context → propose a cited best-guess → supervisor reviews.                                                                                                            |\n| Approach & counter    | `devils-advocate` — *conditional* value-counter (explicit `N\u002FA — \u003Creason>` for trivial tasks): steelman the value → name its unstated assumption → counter it (needed? missed anything? another way?) → assess impact. |\n| Scope & Out-of-scope  | `design-minimalism` — every primitive justified by a current-epic use case; speculative ideas → Out of scope.                                                                                                          |\n| Steps                 | `task-slicing` — tracer-bullet slices, `depends_on` edges, expand–contract for wide refactors; then `rack plan-extract` to split into child tasks once headings stabilise.                                             |\n| Verification Protocol | Self-authored — the concrete checks that prove the work (tests, in-process composition, lint). A check that proves ABSENCE (\"X no longer occurs\") names three things: the pattern, the scope it runs over, and a known-present sample the pattern must still find — no sample, no verdict. See **positive-control**.                                                                                                                         |\n\nThe three challenge stages run as a chain, not in parallel:\n`requirements-interview` states the value → `devils-advocate` challenges it\n(loop until it settles: *is this needed? did we miss anything? is there another\nway?*) → `design-minimalism` then minimises the means of what survives. That is\nwhy `Approach & counter` sits **before** `Scope & Out-of-scope`. The\n`Approach & counter` row is conditional (`required=False`): the engine never\nblocks `execute` on it, but a non-trivial plan should carry a real counter or an\nexplicit `N\u002FA`.\n\nThe gate fires on plan→execute and reopens nothing already passed. This skill's\njob is upstream: ensure each section has an owner so none is filled by guesswork\nor left blank for the gate to reject.\n\n## Completion\n\n- Every required section in `plan.md` is filled by (or explicitly `N\u002FA`'d through) its owning skill.\n- The plan→execute transition passes the per-section gate (no `EmptyPlanError`).\n\n## Anti-Patterns\n\n- Treating plan-gate as the judge — it is a router; the owning skill does the work.\n- Copying requirements-interview \u002F design-minimalism logic into this file — keep it a table of contents.\n- Editing the section table without matching the engine's `PLAN_SECTIONS` — the sync-test fails loudly on drift.\n",{"name":5,"license":15,"description":7},"master","b4819add93efbaf4d80627118ec34680406b309b","packages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fcore\u002Fskills\u002Fplan-gate",1,"https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats","https:\u002F\u002Fgithub.com\u002Fmuratovv","2026-11-05 20:59:10",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add muratovv\u002Fai-hats --skill plan-gate",{"tool":51,"command":52},"bunx","bunx skills add muratovv\u002Fai-hats --skill plan-gate",{"tool":54,"command":55},"pnpm","pnpm dlx skills add muratovv\u002Fai-hats --skill plan-gate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fcore\u002Fskills\u002Fplan-gate\u002FSKILL.md",true,[],[60,85,110,133,157,170],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":33},"01M6PVFB1SM738R2SRSRSF7CY6","tool-evaluation-protocol","Time-bounded protocol for evaluating new tools, libraries, or methodologies before adoption. Use when evaluating a candidate dependency for the project, researching a methodology (e.g. ML\u002FLLM frameworks, testing approaches), or following up on a hype-driven recommendation.","https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fexperimental\u002Fusage\u002Fskills\u002Ftool-evaluation-protocol\u002FSKILL.md",[],[67,68,69,70,71,72,73,74,75,76,27,77,78,79,80,81,82,32,83,84],"protocol","Evaluation","tool","tool evaluation protocol","testing","ml","libraries","adoption","methodology","Tools","dependency","up","frameworks","time","project","recommendation","bounded","candidate",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":33},"01M6PVF7HATBEX1G7N50E2QT57","systematic-debugging","4-phase bug-fix protocol (evidence, pattern, hypothesis, verify). Use when investigating any error, failure, or unexpected behavior, handling bug reports from users or monitoring, or diagnosing test failures with non-obvious causes.","https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fexperimental\u002Fusage\u002Fskills\u002Fsystematic-debugging\u002FSKILL.md",[],[92,93,94,95,67,96,97,98,99,100,27,101,102,103,104,105,106,107,108,109],"systematic debugging","debugging","systematic","test","monitoring","hypothesis","verify","behavior","fix","evidence","bug","reports","pattern","users","error","with","bug-fix","phase",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":121,"publishedAt":33},"01M6PVF3MTQN3RPF73AN34856J","skill-template","Canonical template and validation guide for ai-hats skills. Use when creating a new skill, reviewing an existing one for structural compliance, or deciding which pattern fits a new behavior.","https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fexperimental\u002Fusage\u002Fskills\u002Fskill-template\u002FSKILL.md",[116],{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[122,123,124,125,126,99,127,27,128,104,129,130,131,32,132],"template","skill template","validation","compliance","hats","guide","new skill","structural","canonical","which","Existing",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":140,"publishedAt":33},"01M6PVF06SCV28QARM5MQPANC9","skill-optimization","Audit and refactor library components to eliminate redundancy and staleness. Use during periodic library maintenance, after adding multiple new skills or rules, when a role's token budget is too high, or after retrospectives identify component issues.","https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fexperimental\u002Fusage\u002Fskills\u002Fskill-optimization\u002FSKILL.md",[139],{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},[141,142,143,144,145,146,147,148,149,150,27,151,152,153,154,155,156],"Optimization","skill optimization","components","component","issues","library","audit","refactor","Budget","Rules","periodic","maintenance","token","token budget","role","high",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":33},"01M6PVEXM9717016T9MW82HDCT","silent-fallback-gate","PreToolUse hook — refuses an Edit or Write that adds an inert broad except. Use when a Python edit was blocked for a silent fallback.","https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fexperimental\u002Fusage\u002Fskills\u002Fsilent-fallback-gate\u002FSKILL.md",[],[20,164,165,166,167,168,27,169,32],"fallback","silent fallback gate","python","write","edit","hook",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":33},"01M6PVESM49C5NT7SB7N3F76VS","retro-to-framework","Convert an observation about agent behavior — from a retrospective or from a single incident — into a framework-level change (hook, rule, skill, skill update). Use after a retrospective identifies problems that are not project-specific, after an incident where an agent misapplied a component it had read, when CLAUDE.md band-aids accumulate (more than 3 per-project rules that could be generic), or when the same problem recurs across multiple projects.","https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fexperimental\u002Fusage\u002Fskills\u002Fretro-to-framework\u002FSKILL.md",[176],{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},[178,179,180,181,144,182,183,184,150,99,27,185,186,81,187,188,189,190,191,192],"framework","retro","retro to framework","change","retrospective","projects","convert","incident","across","problem","about","more","skill update","single","generic"]