用途:清理 TDD 流程中按切片产生的 feat/<feature>/<NN>-<slice> 本地分支,在切片发布后安全退役这些分支。与 safe-pr 配对:safe-pr 为切片开 PR,safe-cleanup 在 PR 完成后清理分支。
主要能力:通过 scripts/classify-branches.mjs 交叉比对 git 合并状态与 gh PR 状态,将分支分类为 merged(可删)、ahead-of-merged-pr(仅报告)、abandoned(需用户明确同意才删)、open-pr(不删)、local-only(不自动删)、protected(不删)。默认 dry-run,不删除任何内容。
使用方式:先更新 main(git fetch origin 并快进),在仓库根目录、最好检出 main 后运行分类脚本:node "${CLAUDE_SKILL_DIR}/scripts/classify-branches.mjs"。向用户展示表格与汇总并确认后,再执行:node "${CLAUDE_SKILL_DIR}/scripts/classify-branches.mjs" --apply --yes --delete-merged。删除前写入恢复日志(默认 .tdd-branch-cleanup.log,可用 --log <path>),无法写入则中止。仅当用户批准时才加 --delete-abandoned;可用 --protected name1,name2 保护额外分支,--base <branch> 指定基线。恢复用 git branch <name> <sha> 或 git reflog。
限制:仅限本地分支,绝不运行 git push origin --delete 或触碰远程;不删 main/默认分支、当前分支、受保护分支或有开放 PR 的分支;不强制删除未合并的本地工作;git 合并分支用 git branch -d,仅对经 PR 确认合并或用户明确批准的分支回退到 -D,且先记录 SHA;detached HEAD 下拒绝运行。若 gh 或远程不可用,仅 git 合并分支可删,报告会说明。