用途:simplify 是一个提交前的可读性清理技能,针对真实的代码差异(diff)运行一次范围很窄的整理,让改动后的代码更易消费、易扫读、直接、局部自明,避免炫技。它不是重新设计技能,而是提交前的清理环节。若当前仓库存在本地 simplify 技能,应在基础技能之后应用其补充内容。
主要能力:倾向于删除而非新增、用派生值替代存储标志、用带标签状态替代布尔堆叠与可选包、用提前返回替代嵌套分支、用显式函数契约替代混合副作用、用直接命名替代取巧的辅助函数、用局部代码替代一次性抽象、当分支仅数据不同时改用表或映射、优先沿用既有规范模式而非新增微模式。
使用方式:在每次提交前对待提交差异运行;当被要求简化、清理或减少冗余时使用;当代码能工作但显得嘈杂、间接、过度抽象或难以扫读时使用。先读取仓库 AGENTS.md(若存在)及最近的包或子目录 AGENTS.md(若存在);仅在需要时读取架构或所有权文档、本地 simplify 技能、gotchas 与 checklist。核心循环:从显式路径、否则工作区差异、否则最新提交构建范围;无差异则停止;列出所有改动文件,超过 6 个文件时采用并行策略(每批最多 6 个文件,最多 5 个子代理,分批推进),否则内联处理;扫描每个改动文件的所有可读性问题;应用所有通过安全修复测试的修复;运行最小相关验证;报告简化内容、跳过项及安全原因。
适用场景:提交前清理、减少代码冗余、提升可扫读性。
限制:不得为让代码好看而改变行为;不得在仅简化的工作中移除兼容路径或迁移域;不得用原始访问替换强制不变量的既有模型、服务或上下文辅助函数;不得移除校验、遥测、日志、鉴权或防护代码;不得为省一行计算而存储派生状态;不得把类型放宽为可选包;不得让纯辅助函数悄悄修改数据;不得引入新抽象,除非明显更易读。安全不明时应降级为仅提案或跳过。验证使用最小检查,类型检查在涉及异步行为、交互流程或可见 UI 变化时不够。输出包含范围、已应用修复、跳过或仅提案项、验证证据、残余风险或假设。