[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GZXPDDRSE6G1HV1MY702PE":3,"skill-same:01M6GZXPDDRSE6G1HV1MY702PE":74},{"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":16,"sourceHtmlUrl":17,"categories":18,"keywords":24,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":43,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M6GZXPDDRSE6G1HV1MY702PE","retire-an-obsolete-skill",null,"Use when a skill no longer matches reality and misleads tasks that load it. Deprecates it, redirects callers, and removes it without leaving a gap.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-retire-an-obsolete-skill\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-retire-an-obsolete-skill\u002FSKILL.md",[19],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[25,26,27,28,29,30,31],"retire an obsolete skill","tasks","use","gap","it","load","when","2026-11-10 10:12:30",false,"---\nname: retire-an-obsolete-skill\ndescription: Use when a skill no longer matches reality and misleads tasks that load it. Deprecates it, redirects callers, and removes it without leaving a gap.\n---\n\n# Retire an Obsolete Skill\n\nA skill that no longer works is worse than a missing one: it loads confidently and gives wrong steps. Retirement is a controlled removal — redirect first, then delete.\n\n## Procedure\n\n1. Prove obsolescence with a concrete failure: run its main command and show it errors or does the wrong thing.\n2. Find who loads it: `grep -rl \"\u003Cslug>\" . --include='*.md'`.\n3. Write the replacement first — retire only once the successor exists and is verified.\n4. Mark the old skill deprecated rather than deleting immediately: `status: deprecated` plus a pointer to the successor.\n5. Redirect callers by editing their references to the new slug.\n6. Keep the deprecated file for one release cycle so an external caller does not break silently.\n7. After the cycle, delete the directory and remove any index or listing entry for it.\n8. Check the slash-command or skill registry for a leftover entry that still routes to it.\n9. If it has no successor and the procedure is simply gone, say so plainly rather than leaving a broken skill.\n10. Record the retirement: slug, reason, successor, date.\n\n## Pitfalls\n\n- Deleting the skill before the replacement is verified, leaving a gap.\n- Leaving a deprecated skill unmarked, so it still loads and still misleads.\n- Marking deprecated but not fixing the references, so callers keep invoking the old slug.\n- Retiring because the skill is old rather than because it is wrong — age is not obsolescence.\n- Forgetting the registry or index entry, so the name still resolves to nothing.\n\n- Deprecating a skill that an automated task references and never updating the task.\n- Burying the successor pointer in a comment instead of where a reader loads it.\n- Deleting the directory while a task is mid-run and depending on it.\n\n## Verification\n\n    grep -rn \"\u003Cslug>\" . --include='*.md' | grep -v deprecated; ls skills\u002F\u003Csuccessor>\u002FSKILL.md\n    # passes when no live reference points at the old slug and the successor exists\n\nReport to the user: the slug retired, the failure that proved it obsolete, the successor, and the references redirected.\n","# Retire an Obsolete Skill\n\nA skill that no longer works is worse than a missing one: it loads confidently and gives wrong steps. Retirement is a controlled removal — redirect first, then delete.\n\n## Procedure\n\n1. Prove obsolescence with a concrete failure: run its main command and show it errors or does the wrong thing.\n2. Find who loads it: `grep -rl \"\u003Cslug>\" . --include='*.md'`.\n3. Write the replacement first — retire only once the successor exists and is verified.\n4. Mark the old skill deprecated rather than deleting immediately: `status: deprecated` plus a pointer to the successor.\n5. Redirect callers by editing their references to the new slug.\n6. Keep the deprecated file for one release cycle so an external caller does not break silently.\n7. After the cycle, delete the directory and remove any index or listing entry for it.\n8. Check the slash-command or skill registry for a leftover entry that still routes to it.\n9. If it has no successor and the procedure is simply gone, say so plainly rather than leaving a broken skill.\n10. Record the retirement: slug, reason, successor, date.\n\n## Pitfalls\n\n- Deleting the skill before the replacement is verified, leaving a gap.\n- Leaving a deprecated skill unmarked, so it still loads and still misleads.\n- Marking deprecated but not fixing the references, so callers keep invoking the old slug.\n- Retiring because the skill is old rather than because it is wrong — age is not obsolescence.\n- Forgetting the registry or index entry, so the name still resolves to nothing.\n\n- Deprecating a skill that an automated task references and never updating the task.\n- Burying the successor pointer in a comment instead of where a reader loads it.\n- Deleting the directory while a task is mid-run and depending on it.\n\n## Verification\n\n    grep -rn \"\u003Cslug>\" . --include='*.md' | grep -v deprecated; ls skills\u002F\u003Csuccessor>\u002FSKILL.md\n    # passes when no live reference points at the old slug and the successor exists\n\nReport to the user: the slug retired, the failure that proved it obsolete, the successor, and the references redirected.\n",{"name":5,"description":7},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fpayments\u002F0xklen-retire-an-obsolete-skill",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-14 02:27:51",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill retire-an-obsolete-skill",{"tool":52,"command":53},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill retire-an-obsolete-skill",{"tool":55,"command":56},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill retire-an-obsolete-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-retire-an-obsolete-skill\u002FSKILL.md",true,[60,64,70],{"path":61,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":16},"LICENSE","许可证",1063,{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"SOURCE.md","REFERENCE","参考文档",350,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-retire-an-obsolete-skill\u002FSOURCE.md",{"path":71,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":72,"sourceHtmlUrl":73},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-retire-an-obsolete-skill\u002FTRUST.auto.yaml",[75,102,125,143,156,166],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":79,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":32},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[83,84,85,86,87,88,89,90,91,92,93,94,95,26,96,97,98,99,100,101],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","react","browser","layout","screen","network","metamask",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":106,"licenseFileUrl":107,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":32},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[111,112,113,114,115,116,117,118,119,120,121,122,123,124],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","for","api keys","maintenance","protobuf",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":106,"licenseFileUrl":129,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":32},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[133,112,134,135,136,137,138,122,121,120,139,140,141,116,142,115,114],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data","orders",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":106,"licenseFileUrl":147,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":32},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[151,152,113,153,154,123,121,155,119,118,116,115],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":157,"name":158,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":159,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":32},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[163,164,165],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":170,"sourceHtmlUrl":171,"categories":172,"keywords":173,"publishedAt":32},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[174,175,176,177,178,179,180,27,181,182,183],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","patch","code","share"]