用途:push-check 把推送视为一串有序步骤而非单条命令,在 git push 之前逐项检查,避免密钥泄露、失效链接、只在本机可用的安装步骤等问题被他人下载时才发现。
主要能力:
- 说明本次推送包含哪些文件与变化,无远程时先询问目标位置,未经同意不创建公开仓库。
- 运行仓库自带检查(tools/、scripts/ 中的 check/test/verify/validate/lint,或 package.json 的 scripts),并读取输出末尾的汇总行。
- 运行 push-sweep.sh 扫描密钥、被跟踪的 .env、个人主目录路径、超过 50MB 的文件和失效链接;若安装了 gitleaks,则对即将推送的提交再跑一次,未安装时明确标注 NOT RUN。已推送过的密钥视为已泄露,应先到服务商处轮换。
- 启动无本会话记忆的子代理冷读 diff,列出对新用户而言损坏、不实、混乱或缺失之处,逐条核对后再处理,并报告发现、修复与被驳回的数量。
- 在临时目录全新克隆仓库,按 README 以陌生人视角复现安装与首次运行步骤。
- 循环执行第 2 至 5 步,直到连续两次完整通过且期间无改动;最多循环五次,仍未通过则说明问题并停止推送。
- 执行 git push 并确认分支与远程同步,公开仓库需检查 README 渲染。
- 仅在他人确有需要时起草不超过三行的通知,展示给用户但不代为发送。
使用方式:作为技能安装后按上述步骤执行,脚本路径为 ${CLAUDE_SKILL_DIR}/scripts/push-sweep.sh,退出码 0 表示干净、1 表示有问题、3 表示无法扫描(不算通过)。
限制:不会在用户未同意时推送到公开仓库或把私有仓库转为公开;不执行强制推送、改写历史或删除分支;不打印发现的密钥;不发送通知。该技能无法验证其他电脑、操作系统或版本上的表现。