Simplify 是 ship 流程中内联运行的 Simplify 关卡的独立版本。它可以直接用于对当前正在处理的内容做一次轻量清理,而无需运行 ship 其余合并前流水线(干净工作树要求、代码审查、创建 PR 等)。
用途
其契约是:当前 diff 不引入可避免的复杂度。它审查 diff 并仅做高置信度的编辑,移除以下内容:
- 重复
- 死代码
- 不必要的间接层
- 多余的抽象
- 过早的泛化
- 与周边代码不一致的模式
- 测试噪音
除非 diff 本身制造了问题,否则不要改动设计或公共 API。如果某项变更需要判断而非明显正确,应报告它,而不是去“修复”它。
主要能力
直接修复问题并简要报告改动内容。它只做质量清理,不查找 bug。如需正确性/安全审查,请改用代码审查技能或命令。
使用方式
确定审查范围:默认使用当前分支与其在基础分支上的分叉点之间的 diff:
BASE="$(gh pr view --json baseRefName -q .baseRefName 2>/dev/null || gh repo view --json defaultBranchRef -q .defaultBranchRef.name 2>/dev/null || echo main)" BASE_REF="$(git rev-parse --verify --quiet "$BASE" >/dev/null 2>&1 && echo "$BASE" || echo "origin/$BASE")" FORK="$(git merge-base "$BASE_REF" HEAD 2>/dev/null)" git diff "$FORK"...HEAD
如果尚无分支/PR 上下文(未提交的进行中工作),则改为审查 git diff HEAD——即针对最后一次提交的已暂存和未暂存变更。
如果用户指定了具体文件、范围或提交区间,则使用该指定内容替代默认范围。
适用场景
适用于对当前工作内容做轻量清理,例如在合并前快速去除重复、死代码和多余抽象,而不触发完整的 ship 合并前流水线。
限制
它只做质量清理,不查找 bug;不负责正确性或安全审查。除非 diff 本身制造了问题,否则不改动设计或公共 API。对于需要判断而非明显正确的变更,只报告而不修复。