SuperAPI AI 工具集

code-simplify

编程与开发

查看项目

更新于 10-16 07:26

技能介绍

用途:在用户要求“简化代码”“清理代码”“为清晰重构”“降低复杂度”“提升可读性”时使用。目标是在保持运行时行为、公共契约与副作用不变的前提下简化代码,偏好显式代码与局部清晰,而非取巧或过度压缩的写法。

范围确定:先执行 git rev-parse --git-dir 验证仓库上下文,失败则停止并提示用户在 git 仓库中运行。若用户提供文件路径、模式或提交范围,范围即这些目标;否则仅限本次会话修改过的文件,不纳入其它未提交改动。若无会话修改文件,则回退到全部未提交的已跟踪与未跟踪文件:已跟踪用 git diff --name-only --diff-filter=ACMR,未跟踪用 git ls-files --others --exclude-standard,合并去重。除非被要求,排除生成或低信号文件,如锁文件、压缩包、构建产物、第三方代码。若范围仍为零个文件,报告并停止。

操作规则:精确保留运行时行为,保持输入、输出、副作用与错误行为稳定;优先项目约定而非个人偏好,从既有代码、linter、formatter 与测试推断约定;除非明确要求扩大,范围限用户指定文件或近期修改代码;做小且可回退的编辑,避免大范围重写;一旦可能改变行为,立即指出不确定性。

工作流:1) 按上述范围规则确定目标文件;2) 建立行为基线,阅读周边上下文,识别不可变的不变量,如函数签名与导出 API、状态转换与副作用、持久化与网络行为、外部依赖的用户可见消息与错误语义,并记录可用的 lint、测试、类型检查命令;3) 按顺序执行简化:控制流上使用守卫子句与提前返回扁平化深层嵌套,替换嵌套三元表达式;命名与意图上安全重命名模糊标识符,将混合关注点拆为意图明确的小助手;去重上移除明显重复,仅在至少两个真实调用点受益且降低认知负担时抽象;数据塑形上把密集转换链拆为命名中间步骤,除非明确且经过测量,保持热路径性能特征稳定;类型与契约上在不引发大范围改动的前提下补充或收紧类型标注,除非被要求,保留外部接口。4) 强制安全约束:非明确要求不把同步 API 改为异步或反向;不改变错误传播策略,除非行为保持等价并已验证;不移除编码运维意图的日志、遥测、守卫或重试;不把领域特定步骤折叠进隐藏意图的通用助手。5) 验证:先运行最窄的有用检查,如对触及文件运行 formatter/lint、运行相关模块的定向测试,必要时类型检查;快速定向检查通过后,仅在风险需要时运行更广检查;无法运行时说明跳过内容与原因。6) 报告:给出触及的文件与函数、关键简化及简要理由、运行的验证命令与结果、残余风险或假设。

启发式:在降低认知负担时,偏好显式局部变量而非嵌套内联表达式;每个条件偏好一个清晰分支而非紧凑但含糊的条件树;函数长度保持可管理,但不为行数而拆分;保留解释意图、不变量或非显然约束的注释,移除仅复述明显行为的注释;以下一位维护者的理解时间为优化目标,而非最少字符数。

反模式:不做投机性架构重写;简化小局部改动时不引入框架级模式;不以不透明工具层替换可理解的重复;不把无关清理捆绑进同一补丁。

停止条件:当简化需要改变公共 API/契约、无法自信验证行为一致、代码因领域约束而显得有意复杂、或请求范围意味着更大重构而非简化时,停止并询问方向。

输出契约:展示确切变更的文件与区域;用一句话解释每处有意义改动带来的可读性或可维护性收益;明确确认行为保持假设;总结已执行的验证,或清楚说明省略项。