[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CJ6J8T1546DAF0GAM3DAHC":3,"skill-same:01M6CJ6J8T1546DAF0GAM3DAHC":67},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M6CJ6J8T1546DAF0GAM3DAHC","dead-code-finder",null,"Find dead code and unused files\u002Fcomponents in CC Director. Use when you need to identify unused projects, classes, or services that can be safely removed to simplify the codebase.","thefrederiksen\u002Fdevthrottle","thefrederiksen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F220024918?v=4","01M6CJ5XSV9624762E0FDS49BZ","01M6CJ5XY3WWF9943901Y87DEX",110,"MIT","https:\u002F\u002Fgithub.com\u002Fthefrederiksen\u002Fdevthrottle\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fdead-code-finder\u002Fskill.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"dead code finder","dead code","code","codebase","can","you","when","unused","director","find","services","use","cc","components","simplify","files","projects","2026-11-10 10:12:30",false,"---\nname: dead-code-finder\ndescription: Find dead code and unused files\u002Fcomponents in CC Director. Use when you need to identify unused projects, classes, or services that can be safely removed to simplify the codebase.\n---\n\n# Dead Code Finder Skill\n\nFind and identify dead code in the CC Director application to simplify maintenance and reduce codebase complexity.\n\n## Scope\n\n**INCLUDED directories:**\n- `src\u002FCcDirector.Core\u002F` - Core business logic\n- `src\u002FCcDirector.Wpf\u002F` - WPF application\n- `tools\u002Fcc-click\u002F` - command-line tool for UI automation\n\n**EXCLUDED directories:**\n- `src\u002FCcDirector.Core.Tests\u002F` - Test projects (don't flag as dead code)\n- `src\u002FCcDirector.TestHarness\u002F` - Test utilities\n\n## Analysis Types\n\n### 1. Unused Project Detection\n\nFind projects (.csproj) that are:\n- Not referenced by any other project in the solution\n- Not an entry point (WPF app, console app)\n- Only referenced by other unused projects (chain detection)\n\n### 2. Unused File Detection\n\nFind C# files (.cs) where:\n- All public classes\u002Finterfaces have zero external references\n- File is not an entry point (Program.cs, App.xaml.cs)\n- File is not a test file\n\n### 3. Unused XAML Detection\n\nFind XAML files (.xaml) where:\n- UserControl or Window is never instantiated\n- Not referenced in any other XAML file\n- Not the main window (MainWindow.xaml)\n\n### 4. Unused Service Detection\n\nFind services where:\n- Registered in DI (if applicable)\n- But never injected or used\n\n## Manual Analysis Steps\n\n### Step 1: Find Unused Projects\n\n```bash\n# List all project references in solution\ngrep -r \"ProjectReference\" --include=\"*.csproj\" src\u002F\n```\n\nCompare against project list to find unreferenced projects.\n\n### Step 2: Find Unused Classes\n\n```bash\n# Find public classes\ngrep -r \"public class \" --include=\"*.cs\" src\u002F | grep -v Tests\n\n# For each class, search for references\ngrep -r \"ClassName\" --include=\"*.cs\" --include=\"*.xaml\" src\u002F\n```\n\n### Step 3: Find Unused XAML Components\n\n```bash\n# Find all XAML files\nfind src -name \"*.xaml\" -not -name \"App.xaml\" -not -name \"*.Designer.xaml\"\n\n# For each UserControl, search for usage\ngrep -r \"\u003Clocal:ControlName\" --include=\"*.xaml\" src\u002F\n```\n\n### Step 4: Find Unused Methods\n\nUse IDE tools or:\n\n```bash\n# Find public methods\ngrep -r \"public.*\\w\\+\\s*(\" --include=\"*.cs\" src\u002F | grep -v Tests\n\n# Search for method name usage\ngrep -r \"MethodName\" --include=\"*.cs\" src\u002F\n```\n\n## Output Format\n\nThe analysis produces a structured report:\n\n```\n================================================================================\nDEAD CODE ANALYSIS REPORT\nGenerated: {timestamp}\n================================================================================\n\nSUMMARY\n-------\nPotentially unused projects: X\nPotentially unused files: Y\nPotentially unused controls: Z\n\n================================================================================\nSECTION 1: UNUSED PROJECTS (High Confidence)\n================================================================================\n\nProject: src\u002FCcDirector.OldFeature\u002FCcDirector.OldFeature.csproj\nStatus: NOT REFERENCED\nReason: No ProjectReference found in any other .csproj\nAction: Review and delete if confirmed unused\n\n---\n\n================================================================================\nSECTION 2: UNUSED FILES (High Confidence)\n================================================================================\n\nFile: src\u002FCcDirector.Core\u002FLegacy\u002FOldHelper.cs\nClasses: OldHelper\nReferences found: 0\nAction: Review and delete if confirmed unused\n\n---\n\n================================================================================\nSECTION 3: UNUSED XAML CONTROLS (High Confidence)\n================================================================================\n\nControl: OldDialog.xaml\nLocation: src\u002FCcDirector.Wpf\u002FDialogs\u002F\nUsage search: \u003Clocal:OldDialog found 0 times\nAction: Review and delete if confirmed unused\n\n---\n```\n\n## Safety Guidelines\n\n1. **Never auto-delete** - Always review before removing code\n2. **Check git history** - Some code may be recently added and not yet integrated\n3. **Search for string references** - Some code is loaded dynamically by name\n4. **Check configuration files** - Services may be registered in config\n5. **Build after removal** - Always run `dotnet build cc-director.sln` after removing code\n\n## Removal Workflow\n\nWhen you've confirmed code is dead:\n\n1. **Document the removal** in the commit message\n2. **Remove in order**: Files first, then projects\n3. **Update solution file** if removing projects\n4. **Build the solution** to verify nothing breaks\n5. **Run tests** if applicable\n\n```bash\n# Remove project from solution\ndotnet sln cc-director.sln remove \"src\u002Fpath\u002Fto\u002Fproject.csproj\"\n\n# Delete the project directory\nrm -rf \"src\u002Fpath\u002Fto\u002Fproject\"\n\n# Build to verify\ndotnet build cc-director.sln\n\n# Run tests\ndotnet test src\u002FCcDirector.Core.Tests\n```\n\n## Common False Positives\n\n**Entry Points** - These are NEVER dead code:\n- `CcDirector.Wpf` - Main WPF app\n- `CcClick` - CLI tool\n- `CcDirector.TestHarness` - Test utility\n\n**Infrastructure Code:**\n- `App.xaml` \u002F `App.xaml.cs`\n- `AssemblyInfo.cs`\n- Extension methods classes\n- Attribute classes\n\n**XAML Resources:**\n- Styles defined in ResourceDictionaries\n- Converters used via StaticResource\n\n---\n\n**Skill Version:** 1.0\n**Last Updated:** 2026-02-14\n**Adapted from:** sampleWeb dead-code-finder skill\n","# Dead Code Finder Skill\n\nFind and identify dead code in the CC Director application to simplify maintenance and reduce codebase complexity.\n\n## Scope\n\n**INCLUDED directories:**\n- `src\u002FCcDirector.Core\u002F` - Core business logic\n- `src\u002FCcDirector.Wpf\u002F` - WPF application\n- `tools\u002Fcc-click\u002F` - command-line tool for UI automation\n\n**EXCLUDED directories:**\n- `src\u002FCcDirector.Core.Tests\u002F` - Test projects (don't flag as dead code)\n- `src\u002FCcDirector.TestHarness\u002F` - Test utilities\n\n## Analysis Types\n\n### 1. Unused Project Detection\n\nFind projects (.csproj) that are:\n- Not referenced by any other project in the solution\n- Not an entry point (WPF app, console app)\n- Only referenced by other unused projects (chain detection)\n\n### 2. Unused File Detection\n\nFind C# files (.cs) where:\n- All public classes\u002Finterfaces have zero external references\n- File is not an entry point (Program.cs, App.xaml.cs)\n- File is not a test file\n\n### 3. Unused XAML Detection\n\nFind XAML files (.xaml) where:\n- UserControl or Window is never instantiated\n- Not referenced in any other XAML file\n- Not the main window (MainWindow.xaml)\n\n### 4. Unused Service Detection\n\nFind services where:\n- Registered in DI (if applicable)\n- But never injected or used\n\n## Manual Analysis Steps\n\n### Step 1: Find Unused Projects\n\n```bash\n# List all project references in solution\ngrep -r \"ProjectReference\" --include=\"*.csproj\" src\u002F\n```\n\nCompare against project list to find unreferenced projects.\n\n### Step 2: Find Unused Classes\n\n```bash\n# Find public classes\ngrep -r \"public class \" --include=\"*.cs\" src\u002F | grep -v Tests\n\n# For each class, search for references\ngrep -r \"ClassName\" --include=\"*.cs\" --include=\"*.xaml\" src\u002F\n```\n\n### Step 3: Find Unused XAML Components\n\n```bash\n# Find all XAML files\nfind src -name \"*.xaml\" -not -name \"App.xaml\" -not -name \"*.Designer.xaml\"\n\n# For each UserControl, search for usage\ngrep -r \"\u003Clocal:ControlName\" --include=\"*.xaml\" src\u002F\n```\n\n### Step 4: Find Unused Methods\n\nUse IDE tools or:\n\n```bash\n# Find public methods\ngrep -r \"public.*\\w\\+\\s*(\" --include=\"*.cs\" src\u002F | grep -v Tests\n\n# Search for method name usage\ngrep -r \"MethodName\" --include=\"*.cs\" src\u002F\n```\n\n## Output Format\n\nThe analysis produces a structured report:\n\n```\n================================================================================\nDEAD CODE ANALYSIS REPORT\nGenerated: {timestamp}\n================================================================================\n\nSUMMARY\n-------\nPotentially unused projects: X\nPotentially unused files: Y\nPotentially unused controls: Z\n\n================================================================================\nSECTION 1: UNUSED PROJECTS (High Confidence)\n================================================================================\n\nProject: src\u002FCcDirector.OldFeature\u002FCcDirector.OldFeature.csproj\nStatus: NOT REFERENCED\nReason: No ProjectReference found in any other .csproj\nAction: Review and delete if confirmed unused\n\n---\n\n================================================================================\nSECTION 2: UNUSED FILES (High Confidence)\n================================================================================\n\nFile: src\u002FCcDirector.Core\u002FLegacy\u002FOldHelper.cs\nClasses: OldHelper\nReferences found: 0\nAction: Review and delete if confirmed unused\n\n---\n\n================================================================================\nSECTION 3: UNUSED XAML CONTROLS (High Confidence)\n================================================================================\n\nControl: OldDialog.xaml\nLocation: src\u002FCcDirector.Wpf\u002FDialogs\u002F\nUsage search: \u003Clocal:OldDialog found 0 times\nAction: Review and delete if confirmed unused\n\n---\n```\n\n## Safety Guidelines\n\n1. **Never auto-delete** - Always review before removing code\n2. **Check git history** - Some code may be recently added and not yet integrated\n3. **Search for string references** - Some code is loaded dynamically by name\n4. **Check configuration files** - Services may be registered in config\n5. **Build after removal** - Always run `dotnet build cc-director.sln` after removing code\n\n## Removal Workflow\n\nWhen you've confirmed code is dead:\n\n1. **Document the removal** in the commit message\n2. **Remove in order**: Files first, then projects\n3. **Update solution file** if removing projects\n4. **Build the solution** to verify nothing breaks\n5. **Run tests** if applicable\n\n```bash\n# Remove project from solution\ndotnet sln cc-director.sln remove \"src\u002Fpath\u002Fto\u002Fproject.csproj\"\n\n# Delete the project directory\nrm -rf \"src\u002Fpath\u002Fto\u002Fproject\"\n\n# Build to verify\ndotnet build cc-director.sln\n\n# Run tests\ndotnet test src\u002FCcDirector.Core.Tests\n```\n\n## Common False Positives\n\n**Entry Points** - These are NEVER dead code:\n- `CcDirector.Wpf` - Main WPF app\n- `CcClick` - CLI tool\n- `CcDirector.TestHarness` - Test utility\n\n**Infrastructure Code:**\n- `App.xaml` \u002F `App.xaml.cs`\n- `AssemblyInfo.cs`\n- Extension methods classes\n- Attribute classes\n\n**XAML Resources:**\n- Styles defined in ResourceDictionaries\n- Converters used via StaticResource\n\n---\n\n**Skill Version:** 1.0\n**Last Updated:** 2026-02-14\n**Adapted from:** sampleWeb dead-code-finder skill\n",{"name":5,"description":7},"main","6543d7b50b991f581a211d8e19650f102ba8d402",".claude\u002Fskills\u002Fdead-code-finder",12,"https:\u002F\u002Fgithub.com\u002Fthefrederiksen\u002Fdevthrottle","https:\u002F\u002Fdevthrottle.com\u002F?ref=gh-about","https:\u002F\u002Fgithub.com\u002Fthefrederiksen","2026-11-11 12:28:38",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add thefrederiksen\u002Fdevthrottle --skill dead-code-finder",{"tool":59,"command":60},"bunx","bunx skills add thefrederiksen\u002Fdevthrottle --skill dead-code-finder",{"tool":62,"command":63},"pnpm","pnpm dlx skills add thefrederiksen\u002Fdevthrottle --skill dead-code-finder","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fthefrederiksen\u002Fdevthrottle\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fdead-code-finder\u002Fskill.md",true,[],[68,96,114,140,166,188],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":40},"01M6CJ9FZRKCB1Y8AY6WAK3JJM","devthrottle-sessions","Talk to the other DevThrottle sessions running across your machines - list them, rename this one, send one of the rare queued messages, read the inbox, reply, open a new session, and close one down. Use when the task involves: message another session, ask another session, list sessions, what sessions are running, spawn a session, rename this session, close this session.","https:\u002F\u002Fgithub.com\u002Fthefrederiksen\u002Fdevthrottle\u002Fblob\u002Fmain\u002Fplugins\u002Fdevthrottle\u002Fskills\u002Fdevthrottle-sessions\u002FSKILL.md",[],[75,76,77,78,79,80,81,82,83,84,85,34,86,87,88,89,90,91,92,93,29,94,95],"sessions","devthrottle sessions","inbox","messages","new session","open","ask","read","list","spawn","session","reply","task","rename","message","across","close","down","send","running","new",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":40},"01M6CJ9CYRKE8TSBX67XPTT65R","devthrottle-install","Hand the user the documented steps to install or update DevThrottle, and to connect a gateway afterwards. Use when the task involves: install DevThrottle, set up DevThrottle, update DevThrottle, connect a gateway, cc-devthrottle not found, where do the cc tools come from.","https:\u002F\u002Fgithub.com\u002Fthefrederiksen\u002Fdevthrottle\u002Fblob\u002Fmain\u002Fplugins\u002Fdevthrottle\u002Fskills\u002Fdevthrottle-install\u002FSKILL.md",[],[103,104,105,106,107,108,109,110,34,111,35,112,87,113,29],"install","devthrottle install","connect","update","gateway","SET","Tools","user","up","do","hand",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":40},"01M6CJ99Q2QJSXDYAKRBWPGKN2","proof-covers-the-wrong-thing","A proof can be valid and still say nothing about what you changed - wrong surface, wrong reader, wrong caller, or an untested premise. Name what your evidence does NOT cover. Use when the task involves: prove it, by construction, root cause, reproduced it, repro, guard-local, skipped test, suite is green, premise, assumption, self review, it is settled.","https:\u002F\u002Fgithub.com\u002Fthefrederiksen\u002Fdevthrottle\u002Fblob\u002Fmain\u002Fplugins\u002Fagent-discipline\u002Fskills\u002Fproof-covers-the-wrong-thing\u002FSKILL.md",[],[121,122,123,124,125,126,127,128,129,34,130,131,132,87,133,134,135,28,27,136,137,138,139,29],"proof covers the wrong thing","proof","Wrong","review","valid","test","self review","guard","reader","evidence","repro","say","green","self","local","cover","suite","prove","root cause",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":40},"01M6CJ96VERHA4PKRHMF9ZXTBF","destructive-sweeps-lean-to-keep","A destructive operation acts only on what it can positively prove is disposable. Enumerate what to DELETE, never what to skip - and refresh the safety signal on every real use. Use when the task involves: sweep, purge, cleanup, delete old, prune, reclaim space, stale files, retention, aged out, rm -rf, git clean, drop the table.","https:\u002F\u002Fgithub.com\u002Fthefrederiksen\u002Fdevthrottle\u002Fblob\u002Fmain\u002Fplugins\u002Fagent-discipline\u002Fskills\u002Fdestructive-sweeps-lean-to-keep\u002FSKILL.md",[],[147,148,149,150,151,152,153,154,155,156,157,34,158,159,160,38,161,87,162,163,164,165,138,29],"lean","destructive sweeps lean to keep","keep","cleanup","delete","git","Safety","prune","table","sweep","refresh","never","only","stale","clean","drop","retention","reclaim space","signal",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":40},"01M6CJ93GRYMHCZZS657RBHPW6","checks-that-fail-open","A check whose pass condition is an ABSENCE certifies a run that never happened. Restate it as a specific PRESENCE - and an empty result is a broken instrument, never a clean run. Use when the task involves: verify, prove it, sweep, grep returned nothing, zero hits, clean run, it passed, no defects, reviewed, delivered, double check, how do we know.","https:\u002F\u002Fgithub.com\u002Fthefrederiksen\u002Fdevthrottle\u002Fblob\u002Fmain\u002Fplugins\u002Fagent-discipline\u002Fskills\u002Fchecks-that-fail-open\u002FSKILL.md",[],[80,173,174,175,176,177,156,178,179,180,34,158,181,161,112,87,182,183,184,185,186,187,138,29],"checks that fail open","run","ZeRO","verify","how","grep","check","broken","double check","as","condition","restate","presence","defects","result",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":194,"publishedAt":40},"01M6CJ906AQPKFA2CCKKHAZC13","wingman-brief-reviewer","RETIRED 2026-09-16 - do not run it. It reviewed saved wingman turn BRIEFS, whose writer was retired in issue","https:\u002F\u002Fgithub.com\u002Fthefrederiksen\u002Fdevthrottle\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwingman-brief-reviewer\u002Fskill.md",[],[195,196,197,174,198,112,199,200,201,202,203],"brief","reviewer","wingman brief reviewer","issue","writer","it","briefs","saved","2026"]