[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70M1E5XAWHRFCE7NACT3VC4":3,"skill-same:01M70M1E5XAWHRFCE7NACT3VC4":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":13,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":60},"01M70M1E5XAWHRFCE7NACT3VC4","blast-radius",null,"Find what a change could break somewhere else before it ships, beyond the diff, and prove the one fact it's safe because of by running real code instead of writing it up. Use for 'blast radius of X', 'what could this break', or reviewing a small diff you don't trust.","mingster\u002Fdotfiles","mingster","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F528506?v=4","01M6BVP9E23T80TBZM7S0F94RG","01M6BVP9JK6JMSX0SZ2G1VMEDW",1,"MIT","https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002Ftemplates\u002Fagent-team\u002F.agents\u002Fskills\u002Fblast-radius\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"radius","blast radius","it","code","you","use","prove","writing","true","up","safe","break","find","for","diff","trust","change","running","2026-11-10 10:12:30",false,"---\nname: blast-radius\ndescription: \"Find what a change could break somewhere else before it ships, beyond the diff, and prove the one fact it's safe because of by running real code instead of writing it up. Use for 'blast radius of X', 'what could this break', or reviewing a small diff you don't trust.\"\ndisable-model-invocation: true\n---\n\n# Blast radius\n\nFind what a change breaks somewhere else, before it ships. Use for \"blast radius of X\", \"what could this break\", or reviewing a small diff you don't trust yet.\n\nCompanion to `how` and `why`. `how` tells you what the code does. `why` tells you why it's shaped that way. Blast radius tells you what it breaks somewhere else.\n\nListing the callers is not the job. The agent can grep those in a second. The job is the breakage grep won't show you.\n\n## Don't trust your own writeup\n\nA blast-radius writeup that sounds right is worthless. It reads as convincing whether or not it's true. So don't hand back the writeup. Find the one or two facts the whole thing depends on and prove them by running code.\n\n### How sure are you\n\nFor each fact the change's safety depends on, get it as far down this list as is cheap, and say where it stopped.\n\n1. You said so. Worthless on its own.\n2. You pointed at the line. A real `file:line`, or the library's own source.\n3. You showed the bad case can't happen. You walked the failure step by step and it doesn't reach.\n4. You ran it. A script or test that calls the real code and fails loud if you're wrong.\n5. You reproduced it in the running app.\n\nStep 4 is usually one small script that imports the same library the app ships and calls the exact function you're worried about.\n\n## Steps\n\n1. Read the change. The diff, the symbols it adds, changes, and deletes, and what it now does differently, including the part the diff doesn't spell out. Use `why` step 2 to pull the PR and commits.\n2. Find the one fact it's safe because of. Most changes that look risky are safe because of a single fact, like \"this call only drops already-dead cache entries and does nothing else\". Find that fact. If it holds, most risky cases are cleared at once. Spend your time here, not on a long list of maybes.\n3. Look where grep stops. Read the source of the library you call, and check its pinned version and any local patch. Work out when things run: microtasks, unmount and teardown, Solid versus React. Follow what a symbol search misses: the JSON an API returns, a DB column, a wire format, another language reading the same bytes, a feature flag, code three hops downstream.\n4. Be honest about each risk. Give it a real chance of happening and a real cost if it does. Keep the risks you confirmed. List the ones you checked and cleared separately. Same rules as `why`. Cite a real `file:line`, a search that finds nothing is still an answer, and never make up a caller or an API.\n5. Prove the one fact. Write a script or test that runs the real code, run it, and paste what happened.\n6. For a big or wide change, run it as an `arena`. Ask more than one model the same question and merge the answers. Different models catch different real bugs.\n\n## What to hand back\n\n- **What it does.** What changed, including the part that isn't obvious.\n- **The one fact it's safe because of.** State it, say which step you got it to, and show the proof. If you couldn't prove it, write unproven.\n- **Risks.** Each names how it breaks, the `file:line`, how likely and how bad, and how to check. Paste the proof for the ones that matter.\n- **Cleared.** What you checked and why it's fine.\n- **Before you merge.** The cheapest test or repro that catches the real bug, including the script you wrote.\n\nWrite it through `unslop`, cite real code, and strip anything private before it goes anywhere public.\n\n**Reply:** the writeup above, with the one safety fact either proven or marked unproven.\n","# Blast radius\n\nFind what a change breaks somewhere else, before it ships. Use for \"blast radius of X\", \"what could this break\", or reviewing a small diff you don't trust yet.\n\nCompanion to `how` and `why`. `how` tells you what the code does. `why` tells you why it's shaped that way. Blast radius tells you what it breaks somewhere else.\n\nListing the callers is not the job. The agent can grep those in a second. The job is the breakage grep won't show you.\n\n## Don't trust your own writeup\n\nA blast-radius writeup that sounds right is worthless. It reads as convincing whether or not it's true. So don't hand back the writeup. Find the one or two facts the whole thing depends on and prove them by running code.\n\n### How sure are you\n\nFor each fact the change's safety depends on, get it as far down this list as is cheap, and say where it stopped.\n\n1. You said so. Worthless on its own.\n2. You pointed at the line. A real `file:line`, or the library's own source.\n3. You showed the bad case can't happen. You walked the failure step by step and it doesn't reach.\n4. You ran it. A script or test that calls the real code and fails loud if you're wrong.\n5. You reproduced it in the running app.\n\nStep 4 is usually one small script that imports the same library the app ships and calls the exact function you're worried about.\n\n## Steps\n\n1. Read the change. The diff, the symbols it adds, changes, and deletes, and what it now does differently, including the part the diff doesn't spell out. Use `why` step 2 to pull the PR and commits.\n2. Find the one fact it's safe because of. Most changes that look risky are safe because of a single fact, like \"this call only drops already-dead cache entries and does nothing else\". Find that fact. If it holds, most risky cases are cleared at once. Spend your time here, not on a long list of maybes.\n3. Look where grep stops. Read the source of the library you call, and check its pinned version and any local patch. Work out when things run: microtasks, unmount and teardown, Solid versus React. Follow what a symbol search misses: the JSON an API returns, a DB column, a wire format, another language reading the same bytes, a feature flag, code three hops downstream.\n4. Be honest about each risk. Give it a real chance of happening and a real cost if it does. Keep the risks you confirmed. List the ones you checked and cleared separately. Same rules as `why`. Cite a real `file:line`, a search that finds nothing is still an answer, and never make up a caller or an API.\n5. Prove the one fact. Write a script or test that runs the real code, run it, and paste what happened.\n6. For a big or wide change, run it as an `arena`. Ask more than one model the same question and merge the answers. Different models catch different real bugs.\n\n## What to hand back\n\n- **What it does.** What changed, including the part that isn't obvious.\n- **The one fact it's safe because of.** State it, say which step you got it to, and show the proof. If you couldn't prove it, write unproven.\n- **Risks.** Each names how it breaks, the `file:line`, how likely and how bad, and how to check. Paste the proof for the ones that matter.\n- **Cleared.** What you checked and why it's fine.\n- **Before you merge.** The cheapest test or repro that catches the real bug, including the script you wrote.\n\nWrite it through `unslop`, cite real code, and strip anything private before it goes anywhere public.\n\n**Reply:** the writeup above, with the one safety fact either proven or marked unproven.\n",{"name":5,"description":7,"disable-model-invocation":41},true,"main","d775d974eade471675ab972f749b4be9bcdad6c3","templates\u002Fagent-team\u002F.agents\u002Fskills\u002Fblast-radius","https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles","https:\u002F\u002Fgithub.com\u002Fmingster","2026-11-11 08:37:54",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":41},[50,53,56],{"tool":51,"command":52},"npx","npx skills add mingster\u002Fdotfiles --skill blast-radius",{"tool":54,"command":55},"bunx","bunx skills add mingster\u002Fdotfiles --skill blast-radius",{"tool":57,"command":58},"pnpm","pnpm dlx skills add mingster\u002Fdotfiles --skill blast-radius","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002Ftemplates\u002Fagent-team\u002F.agents\u002Fskills\u002Fblast-radius\u002FSKILL.md",[],[62,91,122,137,156,175],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":73,"publishedAt":36},"01M70M8J3PA9F7TJA4DK95GE8N","workflow-from-chats","Extract durable working preferences from recent Cursor chats and convert them into skills, rules, or workflow docs. Use when asked to learn preferences, mine feedback, personalize workflows, or generate team\u002Fperson-specific agent guidance.","https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002Ftemplates\u002Fagent-team\u002F.agents\u002Fskills\u002Fworkflow-from-chats\u002FSKILL.md",[68],{"categoryNo":69,"categoryName":70,"taxonomyType":71,"taxonomyTypeDesc":72},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[74,75,76,77,78,79,23,80,81,82,83,84,85,86,87,88,89,90],"workflow from chats","workflow","team","feedback","workflows","Rules","preferences","guidance","person","cursor","generate","mine","docs","when","extract","learn","convert",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":102,"publishedAt":36},"01M70M8DK87GX45FFZCC840SW2","why","Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Discovers available MCPs and queries each evidence category (source control, issue tracker, long-form docs, real-time chat, infrastructure observability, error tracking, product analytics warehouse) in parallel, then returns a cited read on decisions and tradeoffs. Use how for runtime behavior.","https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002Ftemplates\u002Fagent-team\u002F.agents\u002Fskills\u002Fwhy\u002FSKILL.md",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[93,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121],"product analytics","design","work","product","time","error tracking","how","tracker","read","issue","data","analytics","source","infrastructure","returns","warehouse","parallel","observability","error",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":36},"01M70M89EYB7RB4WT9EBQ19VEW","what-did-i-get-done","Summarize authored commits over a user-specified time period into a concise update","https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002Ftemplates\u002Fagent-team\u002F.agents\u002Fskills\u002Fwhat-did-i-get-done\u002FSKILL.md",[],[129,130,131,132,133,134,107,135,136],"done","what did i get done","get","summarize","user","update","commits","concise",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":36},"01M70M887Z6CVVHAM294BC9SG3","weekly-review","Produce a weekly synthesis of authored commits with highlights by bugfix, tech debt, and net-new work","https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002Ftemplates\u002Fagent-team\u002F.agents\u002Fskills\u002Fweekly-review\u002FSKILL.md",[],[144,145,146,147,148,149,150,151,152,153,135,154,105,155],"weekly","review","weekly review","produce","Synthesis","weekly synthesis","debt","new","tech debt","bugfix","tech","with",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":36},"01M70M86M3WNW7S7TZ1NVKSGT7","verify-this","Verify a claim with fresh local evidence: restate it falsifiably, capture baseline and treatment, compare artifacts, and return VERIFIED, NOT VERIFIED, or INCONCLUSIVE.","https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002Ftemplates\u002Fagent-team\u002F.agents\u002Fskills\u002Fverify-this\u002FSKILL.md",[],[163,164,165,20,166,167,168,169,170,171,172,173,174,155],"verify","verify this","fresh","artifacts","capture","restate","verified","claim","local","baseline","evidence","compare",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":36},"01M70M84C3MN7ASJ0HBFAKT5Z6","typescript-best-practices","TypeScript best practices. Use when reading or editing any .ts or .tsx file.","https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002Ftemplates\u002Fagent-team\u002F.agents\u002Fskills\u002Ftypescript-best-practices\u002FSKILL.md",[],[182,183,184,185,186,87,23,187,26,188],"best practices","typescript best practices","typescript","file","editing","tsx","reading"]