[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PVFB1SM738R2SRSRSF7CY6":3,"skill-same:01M6PVFB1SM738R2SRSRSF7CY6":73},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":46,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M6PVFB1SM738R2SRSRSF7CY6","tool-evaluation-protocol",null,"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.","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\u002Fexperimental\u002Fusage\u002Fskills\u002Ftool-evaluation-protocol\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"tool evaluation protocol","protocol","Evaluation","tool","dependency","candidate","bounded","for","recommendation","project","time","frameworks","up","testing","use","Tools","methodology","adoption","libraries","ml","2026-11-10 10:12:30",false,"---\nname: tool-evaluation-protocol\ndescription: >-\n  Time-bounded protocol for evaluating new tools, libraries, or\n  methodologies before adoption. Use when evaluating a candidate\n  dependency for the project, researching a methodology (e.g. ML\u002FLLM\n  frameworks, testing approaches), or following up on a hype-driven\n  recommendation.\nlicense: MIT\nai_hats:\n  schema_version: 1\n  type: skill\n---\n# Tool Evaluation Protocol\n\nDecide whether to adopt an external tool, library, or methodology with bounded effort.\n\n## When to Use\nOnly for a *candidate* — a tool\u002Flibrary\u002Fmethodology not yet adopted, especially\na hype-driven one. Not for tools already standard in the stack (just use them),\nand not a written feature-comparison essay — the protocol is a time-boxed PoC\nthat ends in an adopt\u002Freject call, not analysis for its own sake.\n\n## Procedure\n\n1. **Frame** — Candidate (name, version, source). Purpose: what it enables or replaces. Known alternatives.\n\n2. **Kill-criteria check** — Hard blockers warranting immediate `reject` without PoC: license incompatibility, dormant upstream (no commits\u002Fissues for >12 months without maintainer note), runtime incompatibility, non-OSS dependency where OSS-only is required. Document any fired criterion and stop.\n\n3. **Maturity assessment** — Signals: years in production, contributor count, breaking-change history, ecosystem adoption. Apply **Lindy bias** for core paths (older + boring beats newer + exciting); apply **Hype Cycle skepticism** for ML\u002FLLM-fresh tools (heavy stars in last 12mo → halve confidence). Output: signals + bias-adjusted readout, not yes\u002Fno.\n\n4. **PoC** — Set budget **before execution**: time (one working session unless justified) and scope (one real project artifact, end-to-end, not a toy). List explicit **assumptions** the PoC will validate, in categories: functional, integration, performance, cost. Run within budget. Record per-assumption pass\u002Ffail. **Stop on time-budget exhaustion regardless of completion %.**\n\n5. **Decision** — `adopt` \u002F `evaluate-further` \u002F `reject` + ADR (see references\u002Fadr-template.md). Document assumption verdicts, PoC results, residual risk. Pick `evaluate-further` **only if** a specific blocker can be resolved with bounded effort; indefinite \"monitoring\" counts as `reject`.\n\n## Completion\n- ADR written using `references\u002Fadr-template.md` structure\n- Decision recorded with per-assumption verdicts\n- For `adopt` — follow-up tickets for integration; for `reject` — re-open criteria documented\n\n## Anti-Patterns\n- Skipping the kill-criteria check (\"we'll see during PoC\") — wastes time on doomed candidates\n- Letting PoC overflow the budget because \"we're close\" — anti-Hofstadter rule violated\n- Choosing `evaluate-further` as a way to defer the decision indefinitely\n- Tuning the candidate to pass the metric rather than testing real fit — once the metric becomes the target, it stops measuring fit (Goodhart's law)\n","# Tool Evaluation Protocol\n\nDecide whether to adopt an external tool, library, or methodology with bounded effort.\n\n## When to Use\nOnly for a *candidate* — a tool\u002Flibrary\u002Fmethodology not yet adopted, especially\na hype-driven one. Not for tools already standard in the stack (just use them),\nand not a written feature-comparison essay — the protocol is a time-boxed PoC\nthat ends in an adopt\u002Freject call, not analysis for its own sake.\n\n## Procedure\n\n1. **Frame** — Candidate (name, version, source). Purpose: what it enables or replaces. Known alternatives.\n\n2. **Kill-criteria check** — Hard blockers warranting immediate `reject` without PoC: license incompatibility, dormant upstream (no commits\u002Fissues for >12 months without maintainer note), runtime incompatibility, non-OSS dependency where OSS-only is required. Document any fired criterion and stop.\n\n3. **Maturity assessment** — Signals: years in production, contributor count, breaking-change history, ecosystem adoption. Apply **Lindy bias** for core paths (older + boring beats newer + exciting); apply **Hype Cycle skepticism** for ML\u002FLLM-fresh tools (heavy stars in last 12mo → halve confidence). Output: signals + bias-adjusted readout, not yes\u002Fno.\n\n4. **PoC** — Set budget **before execution**: time (one working session unless justified) and scope (one real project artifact, end-to-end, not a toy). List explicit **assumptions** the PoC will validate, in categories: functional, integration, performance, cost. Run within budget. Record per-assumption pass\u002Ffail. **Stop on time-budget exhaustion regardless of completion %.**\n\n5. **Decision** — `adopt` \u002F `evaluate-further` \u002F `reject` + ADR (see references\u002Fadr-template.md). Document assumption verdicts, PoC results, residual risk. Pick `evaluate-further` **only if** a specific blocker can be resolved with bounded effort; indefinite \"monitoring\" counts as `reject`.\n\n## Completion\n- ADR written using `references\u002Fadr-template.md` structure\n- Decision recorded with per-assumption verdicts\n- For `adopt` — follow-up tickets for integration; for `reject` — re-open criteria documented\n\n## Anti-Patterns\n- Skipping the kill-criteria check (\"we'll see during PoC\") — wastes time on doomed candidates\n- Letting PoC overflow the budget because \"we're close\" — anti-Hofstadter rule violated\n- Choosing `evaluate-further` as a way to defer the decision indefinitely\n- Tuning the candidate to pass the metric rather than testing real fit — once the metric becomes the target, it stops measuring fit (Goodhart's law)\n",{"name":5,"ai_hats":44,"license":15,"description":7},{"type":45,"schema_version":46},"skill",1,"master","f922a7f627276366873d546942d9ad899a86f71a","packages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fexperimental\u002Fusage\u002Fskills\u002Ftool-evaluation-protocol","https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats","https:\u002F\u002Fgithub.com\u002Fmuratovv","2026-11-05 20:59:10",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add muratovv\u002Fai-hats --skill tool-evaluation-protocol",{"tool":59,"command":60},"bunx","bunx skills add muratovv\u002Fai-hats --skill tool-evaluation-protocol",{"tool":62,"command":63},"pnpm","pnpm dlx skills add muratovv\u002Fai-hats --skill tool-evaluation-protocol","安装技能，技能地址：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",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fadr-template.md","REFERENCE","参考文档",1278,"https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fexperimental\u002Fusage\u002Fskills\u002Ftool-evaluation-protocol\u002Freferences\u002Fadr-template.md",[74,99,122,146,160,183],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":39},"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",[],[81,82,83,33,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,20],"systematic","debugging","systematic debugging","phase","bug-fix","with","error","users","pattern","reports","bug","evidence","test","fix","behavior","verify","hypothesis","monitoring",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":110,"publishedAt":39},"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",[105],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[111,112,113,114,26,115,116,117,89,118,33,95,119,120,121],"skill template","template","guide","Existing","which","canonical","structural","new skill","hats","compliance","validation",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":129,"publishedAt":39},"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",[128],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},[130,131,132,133,134,135,136,137,33,138,139,140,141,142,143,144,145],"skill optimization","Optimization","high","role","token","library","maintenance","periodic","Rules","Budget","refactor","audit","token budget","issues","component","components",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":39},"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",[],[153,154,155,156,157,158,33,26,159],"silent fallback gate","fallback","gate","edit","write","python","hook",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":167,"publishedAt":39},"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",[166],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},[168,169,170,28,171,172,173,174,175,176,177,178,33,95,138,179,180,181,144,182],"retro to framework","retro","framework","generic","single","skill update","more","about","problem","across","incident","convert","projects","change","retrospective",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":192,"publishedAt":39},"01M6PVEQ05ETVVB2NX7FSYXRV2","py-security-lint","PostToolUse hook — reports the project's own ruff security (`S`) findings on every `.py` you Edit\u002FWrite, non-blockingly; fail-open, no manual invocation.","https:\u002F\u002Fgithub.com\u002Fmuratovv\u002Fai-hats\u002Fblob\u002Fmaster\u002Fpackages\u002Fai-hats-library\u002Fsrc\u002Fai_hats_library\u002Fexperimental\u002Fusage\u002Fskills\u002Fpy-security-lint\u002FSKILL.md",[189],{"categoryNo":190,"categoryName":191,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000007","代码审查",[193,194,195,156,157,90,196,197,28,159,198,199],"lint","security","py security lint","ruff","open","you","manual"]