[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BV2XGS44NK2AT7G281F846":3,"skill-same:01M6BV2XGS44NK2AT7G281F846":66},{"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":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":45,"updatedAt":46,"install":47,"resources":59},"01M6BV2XGS44NK2AT7G281F846","prune",null,"Clean up merged and stale git branches, prune old local and remote branches safely. Use for cleaning up old branches or pruning stale remotes.","drn\u002Fdots","drn","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F885841?v=4","01M6BTZJR7B1RVQRJKP0S70DQS","Darren Cheng","01M6BTZJWXCK41P3Z50BV8KWD9",23,"MIT","https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots\u002Fblob\u002Fmaster\u002Fagents\u002Fskills\u002Fprune\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30],"git","Bash","use","up","stale","clean","branches","local","scripts","remote","true","for","2026-11-10 10:12:30",false,"---\nname: prune\nallowed-tools: Bash(bash ~\u002F.claude\u002Fskills\u002Fprune\u002Fscripts\u002Fprune.sh:*), Bash(bash agents\u002Fskills\u002Fprune\u002Fscripts\u002Fprune.sh:*)\ndescription: Clean up merged and stale git branches, prune old local and remote branches safely. Use for cleaning up old branches or pruning stale remotes.\ndisable-model-invocation: true\n---\n\n# Branch Cleanup\n\nDelete merged and stale local branches safely, with preview and confirmation.\n\n## Arguments\n\n- `$ARGUMENTS` - Optional: `--stale-days \u003CN>` to override the 30-day stale threshold, `--remote` to also delete remote branches\n\n## Context\n\n- Current branch: !`git branch --show-current`\n- Remote: !`git remote 2>\u002Fdev\u002Fnull | head -5`\n\n## Instructions\n\nResolve the script path — use the first that exists:\n1. `~\u002F.claude\u002Fskills\u002Fprune\u002Fscripts\u002Fprune.sh` (deployed via symlink)\n2. `agents\u002Fskills\u002Fprune\u002Fscripts\u002Fprune.sh` (repo-relative, for development\u002Fworkspaces)\n\n### Step 1: Preview branches\n\nRun the preview command, forwarding any `--stale-days` argument:\n\n```\nbash \u003Cscript-path> preview [--stale-days N]\n```\n\nHandle the exit code:\n\n- **Exit 0** — Present the output as a formatted table (see format below). Proceed to Step 2.\n- **Exit 3** — Tell the user: \"All branches are current — nothing to prune.\" and stop.\n- **Exit 1** — Report the error from stderr.\n\nFormat the preview output as:\n\n```markdown\n## Branch Cleanup Preview\n\n### Merged (safe to delete)\n| Branch | Last Commit | Merged Into |\n|--------|------------|-------------|\n| \u003Cbranch> | \u003Cdate> | \u003Cdefault> |\n\n### Stale (no commits in N days)\n| Branch | Last Commit |\n|--------|------------|\n| \u003Cbranch> | \u003Cdate> |\n\n### Skipped\n| Branch | Reason |\n|--------|--------|\n| \u003Cbranch> | \u003Creason> |\n```\n\n### Step 2: Confirm and delete\n\nAsk the user which branches to delete. Accept \"all\", specific branch names, or \"none\".\n\nFor confirmed branches, run the delete command:\n\n```\nbash \u003Cscript-path> delete [--remote] \u003Cbranch1> [branch2 ...]\n```\n\nInclude `--remote` only if the user passed it in `$ARGUMENTS`.\n\nHandle the exit code:\n\n- **Exit 0** — Show the output block verbatim as your final response.\n- **Exit 1** — Report the error from stderr.\n","# Branch Cleanup\n\nDelete merged and stale local branches safely, with preview and confirmation.\n\n## Arguments\n\n- `$ARGUMENTS` - Optional: `--stale-days \u003CN>` to override the 30-day stale threshold, `--remote` to also delete remote branches\n\n## Context\n\n- Current branch: !`git branch --show-current`\n- Remote: !`git remote 2>\u002Fdev\u002Fnull | head -5`\n\n## Instructions\n\nResolve the script path — use the first that exists:\n1. `~\u002F.claude\u002Fskills\u002Fprune\u002Fscripts\u002Fprune.sh` (deployed via symlink)\n2. `agents\u002Fskills\u002Fprune\u002Fscripts\u002Fprune.sh` (repo-relative, for development\u002Fworkspaces)\n\n### Step 1: Preview branches\n\nRun the preview command, forwarding any `--stale-days` argument:\n\n```\nbash \u003Cscript-path> preview [--stale-days N]\n```\n\nHandle the exit code:\n\n- **Exit 0** — Present the output as a formatted table (see format below). Proceed to Step 2.\n- **Exit 3** — Tell the user: \"All branches are current — nothing to prune.\" and stop.\n- **Exit 1** — Report the error from stderr.\n\nFormat the preview output as:\n\n```markdown\n## Branch Cleanup Preview\n\n### Merged (safe to delete)\n| Branch | Last Commit | Merged Into |\n|--------|------------|-------------|\n| \u003Cbranch> | \u003Cdate> | \u003Cdefault> |\n\n### Stale (no commits in N days)\n| Branch | Last Commit |\n|--------|------------|\n| \u003Cbranch> | \u003Cdate> |\n\n### Skipped\n| Branch | Reason |\n|--------|--------|\n| \u003Cbranch> | \u003Creason> |\n```\n\n### Step 2: Confirm and delete\n\nAsk the user which branches to delete. Accept \"all\", specific branch names, or \"none\".\n\nFor confirmed branches, run the delete command:\n\n```\nbash \u003Cscript-path> delete [--remote] \u003Cbranch1> [branch2 ...]\n```\n\nInclude `--remote` only if the user passed it in `$ARGUMENTS`.\n\nHandle the exit code:\n\n- **Exit 0** — Show the output block verbatim as your final response.\n- **Exit 1** — Report the error from stderr.\n",{"name":5,"description":7,"allowed-tools":36,"disable-model-invocation":37},"Bash(bash ~\u002F.claude\u002Fskills\u002Fprune\u002Fscripts\u002Fprune.sh:*), Bash(bash agents\u002Fskills\u002Fprune\u002Fscripts\u002Fprune.sh:*)",true,"master","427f62a9fc82624977516767979411f885161ac5","agents\u002Fskills\u002Fprune",4,"https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots","https:\u002F\u002Fgithub.com\u002Fdrn","https:\u002F\u002Fdrn.dev","CTO & Co-Founder @thanx","2026-11-11 10:19:18",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":37},[49,52,55],{"tool":50,"command":51},"npx","npx skills add drn\u002Fdots --skill prune",{"tool":53,"command":54},"bunx","bunx skills add drn\u002Fdots --skill prune",{"tool":56,"command":57},"pnpm","pnpm dlx skills add drn\u002Fdots --skill prune","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots\u002Fblob\u002Fmaster\u002Fagents\u002Fskills\u002Fprune\u002FSKILL.md",[60],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"scripts\u002Fprune.sh","SCRIPT","脚本",6556,"https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots\u002Fblob\u002Fmaster\u002Fagents\u002Fskills\u002Fprune\u002Fscripts\u002Fprune.sh",[67,97,117,129,153,169],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":78,"publishedAt":31},"01M70KJSG2P5Y3N95MGSGKJ8VA","batch-pr-review","Review a batch of pull requests together, describe every change in plain language, and build a private Claude artifact that eases human review, with a severity-tagged and verified findings list. Use when asked to review several PRs, a stack of PRs, PRs listed in a Slack thread or message, or to summarize a batch of PRs for a reviewer.","https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots\u002Fblob\u002Fmaster\u002Fagents\u002Fskills\u002Fbatch-pr-review\u002FSKILL.md",[73],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",[79,80,81,82,83,84,85,86,27,87,88,89,90,91,92,93,20,94,95,96],"batch pr review","batch","pr","pr review","review","reviewer","when","parse","human","artifact","message","write","read","stack","gh pr","change","pull requests","slack",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":106,"publishedAt":31},"01M6BV2G3ZAS76C40S3YBY6R61","plannotator-setup-goal","Create reviewed Codex goal setup packages for long-running \u002Fgoal work. Use when the user wants to turn an idea, backlog, project mission, or vague objective into durable goal files under a project goals slug folder, with Plannotator review gates for brief, narrative plan with acceptance criteria, verification, blockers, and the final \u002Fgoal prompt.","https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots\u002Fblob\u002Fmaster\u002Fagents\u002Fskills\u002Fplannotator-setup-goal\u002FSKILL.md",[103],{"categoryNo":104,"categoryName":105,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000023","Skill与智能体开发",[107,108,109,110,111,112,113,114,115,116,83],"plannotator setup goal","setup","verification","plan","plannotator review","brief","acceptance","create","packages","codex",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":31},"01M6BV26Y6GTDMQZYXFRWKEC08","plannotator-annotate","Open Plannotator's annotation UI for a markdown file, converted HTML file, URL, or folder and then respond to the returned annotations.","https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots\u002Fblob\u002Fmaster\u002Fagents\u002Fskills\u002Fplannotator-annotate\u002FSKILL.md",[],[124,125,126,127,128],"plannotator annotate","markdown","open","ui","file",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":136,"publishedAt":31},"01M6BV44RGGTRRFGWMYCR3BQ1P","write-skill","Create or improve a Claude Code skill\u002Fslash command with best practices for structure, dynamic context, and safety. Use for creating new skills, improving existing ones, or learning skill authoring.","https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots\u002Fblob\u002Fmaster\u002Fagents\u002Fskills\u002Fwrite-skill\u002FSKILL.md",[135],{"categoryNo":104,"categoryName":105,"taxonomyType":76,"taxonomyTypeDesc":77},[90,137,138,139,140,141,30,142,143,21,144,145,146,147,148,149,150,151,152,114],"write skill","with","authoring","code skill","code","structure","claude code skill","context","command","improve","learning","Safety","best practices","Existing","new","skill authoring",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":31},"01M6BV4390BFK30F1T51SAJPAV","wrapup","End-of-session checklist that detects loose ends — uncommitted changes, unmerged branches, learnings to capture, handoffs needed — and routes to the right skills. Use for session closeout, wrapping up, end of day, or \"anything else to capture\".","https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots\u002Fblob\u002Fmaster\u002Fagents\u002Fskills\u002Fwrapup\u002FSKILL.md",[],[155,160,22,161,30,162,163,25,164,165,21,166,167,168],"session closeout","changes","end of day","end","learnings","checklist","session","closeout","capture",{"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":31},"01M6BV41ZZ051JX2B3CB5WARZM","tts","Read text aloud using text-to-speech. Use when the user says \"speak to me\", \"read to me\", \"read this aloud\", \"say this\", \"speak the summary\", or asks to hear something spoken.","https:\u002F\u002Fgithub.com\u002Fdrn\u002Fdots\u002Fblob\u002Fmaster\u002Fagents\u002Fskills\u002Ftts\u002FSKILL.md",[],[171,21,176,91,177,178,179,180,85,181,182,183],"user","speak","text","speech","say","text-to-speech","me","summary"]