[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71FAMS250NKNF1PET9KNBBV":3,"skill-same:01M71FAMS250NKNF1PET9KNBBV":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M71FAMS250NKNF1PET9KNBBV","ponytail-review",null,"Use when the user wants a code review focused exclusively on over-engineering — says \"review for over-engineering\", \"what can we delete\", \"is this over-engineered\", \"simplify review\", or invokes \u002Fponytail-review. Complements correctness\u002Fsecurity review; this one only hunts complexity in the current diff. Gated by the ponytail review_ponytail component.","Wizarck\u002Fai-playbook","Wizarck","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F23051550?v=4","01M71B3AAVR67GRWFV5ZXXZP31","arturo6ramirez","01M71F5FHXDSX3G2F52R1YS77J",6,"MIT","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-review\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ponytail","review","ponytail review","playbook","gated","security review","component","delete","can","one","code","correctness","simplify","when","use","only","code review","for","diff","complexity","2026-11-10 10:12:30",false,"---\nname: ponytail-review\ndescription: Use when the user wants a code review focused exclusively on over-engineering — says \"review for over-engineering\", \"what can we delete\", \"is this over-engineered\", \"simplify review\", or invokes \u002Fponytail-review. Complements correctness\u002Fsecurity review; this one only hunts complexity in the current diff. Gated by the ponytail review_ponytail component.\nlicense: MIT\nmetadata:\n  author: ai-playbook (ported from DietrichGebert\u002Fponytail, MIT)\n  version: \"1.0\"\n---\n\n# ponytail-review — over-engineering review of the current diff\n\nReview the current changes for unnecessary complexity only. One line per\nfinding: location, what to cut, what replaces it. The diff's best outcome is\ngetting shorter.\n\n## When to fire\n\n- \"review for over-engineering\", \"what can we delete\", \"is this over-engineered\",\n  \"simplify review\", or `\u002Fponytail-review`.\n- After a ponytail (or any) coding session, as a complexity pass before commit.\n\n## Output contract\n\n`L\u003Cline>: \u003Ctag> \u003Cwhat>. \u003Creplacement>.`, or `\u003Cfile>:L\u003Cline>: ...` for\nmulti-file diffs.\n\nTags:\n\n- `delete:` dead code, unused flexibility, speculative feature. Replacement: nothing.\n- `stdlib:` hand-rolled thing the standard library ships. Name the function.\n- `native:` dependency or code doing what the platform already does. Name the feature.\n- `yagni:` abstraction with one implementation, config nobody sets, layer with one caller.\n- `shrink:` same logic, fewer lines. Show the shorter form.\n\n## Examples\n\n❌ \"This EmailValidator class might be more complex than necessary, have you\nconsidered whether all these validation rules are needed at this stage?\"\n\n✅ `L12-38: stdlib: 27-line validator class. \"@\" in email, 1 line — real validation is the confirmation mail.`\n\n✅ `L4: native: moment.js imported for one format call. Intl.DateTimeFormat, 0 deps.`\n\n✅ `repo.py:L88: yagni: AbstractRepository with one implementation. Inline it until a second one exists.`\n\n✅ `L52-71: delete: retry wrapper around an idempotent local call. Nothing replaces it.`\n\n✅ `L30-44: shrink: manual loop builds dict. dict(zip(keys, values)), 1 line.`\n\n## Scoring\n\nEnd with the only metric that matters: `net: -\u003CN> lines possible.`\n\nIf there is nothing to cut, say `Lean already. Ship.` and stop.\n\n## Boundaries\n\nComplexity only. Correctness bugs, security holes, and performance go to a normal\nreview pass (`\u002Fcode-review`), not this one. A single smoke test or `assert`-based\nself-check is the ponytail minimum, not bloat — never flag it for deletion.\nLists findings; applies nothing. \"stop ponytail-review\" \u002F \"normal mode\" reverts\nto verbose review style.\n\n## See also\n\n- [skills\u002Fponytail\u002FSKILL.md](..\u002Fponytail\u002FSKILL.md) — the lazy-mode ruleset this enforces in review form.\n- [skills\u002Fponytail-audit\u002FSKILL.md](..\u002Fponytail-audit\u002FSKILL.md) — the same lens, repo-wide instead of diff-scoped.\n- [skills\u002Fcaveman-review\u002FSKILL.md](..\u002Fcaveman-review\u002FSKILL.md) — the terse-prose PR-review twin.\n","# ponytail-review — over-engineering review of the current diff\n\nReview the current changes for unnecessary complexity only. One line per\nfinding: location, what to cut, what replaces it. The diff's best outcome is\ngetting shorter.\n\n## When to fire\n\n- \"review for over-engineering\", \"what can we delete\", \"is this over-engineered\",\n  \"simplify review\", or `\u002Fponytail-review`.\n- After a ponytail (or any) coding session, as a complexity pass before commit.\n\n## Output contract\n\n`L\u003Cline>: \u003Ctag> \u003Cwhat>. \u003Creplacement>.`, or `\u003Cfile>:L\u003Cline>: ...` for\nmulti-file diffs.\n\nTags:\n\n- `delete:` dead code, unused flexibility, speculative feature. Replacement: nothing.\n- `stdlib:` hand-rolled thing the standard library ships. Name the function.\n- `native:` dependency or code doing what the platform already does. Name the feature.\n- `yagni:` abstraction with one implementation, config nobody sets, layer with one caller.\n- `shrink:` same logic, fewer lines. Show the shorter form.\n\n## Examples\n\n❌ \"This EmailValidator class might be more complex than necessary, have you\nconsidered whether all these validation rules are needed at this stage?\"\n\n✅ `L12-38: stdlib: 27-line validator class. \"@\" in email, 1 line — real validation is the confirmation mail.`\n\n✅ `L4: native: moment.js imported for one format call. Intl.DateTimeFormat, 0 deps.`\n\n✅ `repo.py:L88: yagni: AbstractRepository with one implementation. Inline it until a second one exists.`\n\n✅ `L52-71: delete: retry wrapper around an idempotent local call. Nothing replaces it.`\n\n✅ `L30-44: shrink: manual loop builds dict. dict(zip(keys, values)), 1 line.`\n\n## Scoring\n\nEnd with the only metric that matters: `net: -\u003CN> lines possible.`\n\nIf there is nothing to cut, say `Lean already. Ship.` and stop.\n\n## Boundaries\n\nComplexity only. Correctness bugs, security holes, and performance go to a normal\nreview pass (`\u002Fcode-review`), not this one. A single smoke test or `assert`-based\nself-check is the ponytail minimum, not bloat — never flag it for deletion.\nLists findings; applies nothing. \"stop ponytail-review\" \u002F \"normal mode\" reverts\nto verbose review style.\n\n## See also\n\n- [skills\u002Fponytail\u002FSKILL.md](..\u002Fponytail\u002FSKILL.md) — the lazy-mode ruleset this enforces in review form.\n- [skills\u002Fponytail-audit\u002FSKILL.md](..\u002Fponytail-audit\u002FSKILL.md) — the same lens, repo-wide instead of diff-scoped.\n- [skills\u002Fcaveman-review\u002FSKILL.md](..\u002Fcaveman-review\u002FSKILL.md) — the terse-prose PR-review twin.\n",{"name":5,"license":15,"metadata":49,"description":7},{"author":50,"version":51},"ai-playbook (ported from DietrichGebert\u002Fponytail, MIT)","1.0","main","08fe7aa0f06bc1a3f592ec82360e46b854846968","skills\u002Fponytail-review",1,"https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook","https:\u002F\u002Fgithub.com\u002FWizarck","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Framirezarturo\u002F","Geek by birth, with not much to say but plenty to talk about.","2026-11-09 19:34:21",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add Wizarck\u002Fai-playbook --skill ponytail-review",{"tool":67,"command":68},"bunx","bunx skills add Wizarck\u002Fai-playbook --skill ponytail-review",{"tool":70,"command":71},"pnpm","pnpm dlx skills add Wizarck\u002Fai-playbook --skill ponytail-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-review\u002FSKILL.md",true,[],[76,95,114,133,146,169],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":44},"01M71FATTWS9W3BME3S94SA1QR","sweep","Use when the user wants to find code that has quietly stopped being used — types \u002Fsweep, asks for a \"dead code sweep\", \"repo entropy\", \"what can we delete\", \"orphan files\", \"unused code\", or asks to review a sweep ledger. Adjudicates candidates a deterministic scanner already produced; it never deletes anything and never re-derives findings from raw source. Pairs with ponytail, which gates what gets written rather than what rots.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fsweep\u002FSKILL.md",[],[78,83,84,85,86,87,41,88,89,24,90,91,92,38,37,34,32,93,25,94],"deterministic","which","never","entropy","types","repo","re","orphan","files","unused","gates","candidates",{"skillNo":96,"name":24,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":44},"01M71FAQKVDA209G7G5NMY9H1E","Use when the user wants the laziest solution that actually works — types \u002Fponytail, says \"be lazy\", \"lazy mode\", \"simplest solution\", \"minimal solution\", \"yagni\", \"do less\", or \"shortest path\", or complains about over-engineering, bloat, boilerplate, or unnecessary dependencies. Supports intensity levels lite, full, ultra (default). Pairs with caveman, which compresses prose, not code.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail\u002FSKILL.md",[],[24,101,102,84,103,87,104,105,106,107,38,37,34,108,109,110,111,112,27,113],"notice","do","lazy","mode","default","minimal","intensity","with","yagni","about","dependencies","2026","boilerplate",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":44},"01M71FAG53ZPCSWE272P6S9JFN","ponytail-debt","Use when the user wants to harvest every `ponytail:` comment in the codebase into a tracked debt ledger — says \"ponytail debt\", \"\u002Fponytail-debt\", \"what did ponytail defer\", \"list the shortcuts\", \"ponytail ledger\", or \"what did we mark to do later\". One-shot report, changes nothing. Gated by the ponytail debt_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-debt\u002FSKILL.md",[],[121,24,122,123,102,124,125,30,126,127,28,128,129,27,130,131,38,37,132,33],"ponytail debt","debt","shortcuts","mark","to do","changes","later","report","codebase","harvest","list","ledger",{"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":139,"publishedAt":44},"01M71FACJW88WCS2JGX3MQ3KV9","ponytail-audit","Use when the user wants a whole-repo audit for over-engineering — says \"audit this codebase\", \"audit for over-engineering\", \"what can I delete from this repo\", \"find bloat\", or invokes \u002Fponytail-audit. Like ponytail-review but scans the entire tree, not a diff. One-shot report, applies no fixes. Gated by the ponytail audit_ponytail component.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fponytail-audit\u002FSKILL.md",[],[140,24,141,142,42,143,41,88,38,37,144,33,32,25,31,30,28,145,128,129],"ponytail audit","audit","tree","fixes","entire","find",{"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":44},"01M71FA9THHXDX79PQTJ9CZX9E","openspec-propose","Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[153,154,108,155,156,157,158,159,160,41,161,162,163,164,165,166,38,37,167,168],"openspec","openspec propose","ready","proposal","change","cli","get","build","complete","design","new","implementation","generated","describe","artifacts","tasks",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":44},"01M71FA80MEBSWG2G43YT4C825","openspec-explore","Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.","https:\u002F\u002Fgithub.com\u002FWizarck\u002Fai-playbook\u002Fblob\u002Fmain\u002Fskills\u002Fopenspec-explore\u002FSKILL.md",[],[153,176,177,178,179,180,41,104,38,37,181,157,158,182,183,184],"explore","openspec explore","thinking","ideas","thinking partner","requirements","partner","think","user"]