File contents Code Simplification
角色定位
在不改变行为的前提下降低代码理解成本。目标不是减少行数,而是让下一位维护者更快理解、更安全修改、更容易验证。
何时使用
功能已经工作且测试通过,但实现明显偏重。
review 指出可读性、重复、嵌套或抽象层级问题。
最近修改的代码引入了重复或不一致。
需要在进入下一轮功能前降低维护成本。
不适用:
还没有理解代码为什么存在。
缺少能保护行为的测试或验证方式。
性能关键路径会因为“更简单”变慢。
即将废弃或重写的代码。
快速路径
明确要保持不变的行为、输入、输出、副作用和错误路径。
读取邻近代码和项目约定,确认本仓库的风格。
找一个具体简化目标:命名、重复、嵌套、函数职责、死代码、无效抽象。
一次只做一个简化切片。
每个切片后运行最小相关测试。
对比前后可读性和 diff 可审性。
如果新版本更难审或行为证据不足,回退该切片。
简化信号
优先处理具体信号,而不是泛泛“感觉复杂”:
3 层以上嵌套,可以改为 guard clause 或提取谓词。
长函数承担多个职责,可以拆成命名清楚的小函数。
重复条件或重复逻辑,可以提取共享函数。
命名不能表达业务含义,可以重命名。
注释解释“做什么”,代码本身可表达时可以删除;解释“为什么”的注释保留。
只有一个实现的过度抽象,可以考虑内联。
手写逻辑重复仓库已有 helper、标准库或平台原生能力,可以删除重复实现并复用现有 owner。
新依赖只服务少量可读代码,且没有带来明确的正确性、兼容性或维护收益,可以移除依赖并使用更直接的实现。
配置、接口、factory 或 adapter 只有一个当前消费者,且不存在真实边界契约,可以内联;不能只凭实现数量删除必要的外部系统隔离。
不可达分支、未使用变量、过期注释,可以在确认后删除。
行为保护
简化前先回答:
现有测试覆盖了什么?
哪些边界没有测试但需要人工验证?
这个代码是否有历史原因、平台限制或性能约束?
是否有调用方依赖当前副作用或错误行为?
无法回答时,先回到 codebase-onboarding 或 test-driven-development 补证据。
反模式
为了少几行牺牲可读性。
把有意义的 helper 内联成重复逻辑。
顺手重构无关文件,制造 review 噪声。
同一个提交里混合功能变更和简化重构。
没有测试保护就改公共接口或错误路径。
输出契约
Simplification evidence:
- Target:
- Behavior preserved:
- Change made:
- Tests / verification:
- Before/after readability:
- Remaining risk:
推荐结论:
Recommendation: <apply / stop / add tests first / defer> because <行为证据、维护收益和被放弃替代方案>。
如果不能证明行为保持不变,默认不要简化。
1 --- 2 name: zc-code-simplification 3 description: 代码简化 4 --- 5 6 # Code Simplification 7 8 ## 角色定位 9 10 在不改变行为的前提下降低代码理解成本。目标不是减少行数,而是让下一位维护者更快理解、更安全修改、更容易验证。 11 12 ## 何时使用 13 14 - 功能已经工作且测试通过,但实现明显偏重。 15 - review 指出可读性、重复、嵌套或抽象层级问题。 16 - 最近修改的代码引入了重复或不一致。 17 - 需要在进入下一轮功能前降低维护成本。 18 19 不适用: 20 21 - 还没有理解代码为什么存在。 22 - 缺少能保护行为的测试或验证方式。 23 - 性能关键路径会因为“更简单”变慢。 24 - 即将废弃或重写的代码。 25 26 ## 快速路径 27 28 1. 明确要保持不变的行为、输入、输出、副作用和错误路径。 29 2. 读取邻近代码和项目约定,确认本仓库的风格。 30 3. 找一个具体简化目标:命名、重复、嵌套、函数职责、死代码、无效抽象。 31 4. 一次只做一个简化切片。 32 5. 每个切片后运行最小相关测试。 33 6. 对比前后可读性和 diff 可审性。 34 7. 如果新版本更难审或行为证据不足,回退该切片。 35 36 ## 简化信号 37 38 优先处理具体信号,而不是泛泛“感觉复杂”: 39 40 - 3 层以上嵌套,可以改为 guard clause 或提取谓词。 41 - 长函数承担多个职责,可以拆成命名清楚的小函数。 42 - 重复条件或重复逻辑,可以提取共享函数。 43 - 命名不能表达业务含义,可以重命名。 44 - 注释解释“做什么”,代码本身可表达时可以删除;解释“为什么”的注释保留。 45 - 只有一个实现的过度抽象,可以考虑内联。 46 - 手写逻辑重复仓库已有 helper、标准库或平台原生能力,可以删除重复实现并复用现有 owner。 47 - 新依赖只服务少量可读代码,且没有带来明确的正确性、兼容性或维护收益,可以移除依赖并使用更直接的实现。 48 - 配置、接口、factory 或 adapter 只有一个当前消费者,且不存在真实边界契约,可以内联;不能只凭实现数量删除必要的外部系统隔离。 49 - 不可达分支、未使用变量、过期注释,可以在确认后删除。 50 51 ## 行为保护 52 53 简化前先回答: 54 55 - 现有测试覆盖了什么? 56 - 哪些边界没有测试但需要人工验证? 57 - 这个代码是否有历史原因、平台限制或性能约束? 58 - 是否有调用方依赖当前副作用或错误行为? 59 60 无法回答时,先回到 `codebase-onboarding` 或 `test-driven-development` 补证据。 61 62 ## 反模式 63 64 - 为了少几行牺牲可读性。 65 - 把有意义的 helper 内联成重复逻辑。 66 - 顺手重构无关文件,制造 review 噪声。 67 - 同一个提交里混合功能变更和简化重构。 68 - 没有测试保护就改公共接口或错误路径。 69 70 ## 输出契约 71 72 ```text 73 Simplification evidence: 74 - Target: 75 - Behavior preserved: 76 - Change made: 77 - Tests / verification: 78 - Before/after readability: 79 - Remaining risk: 80 ``` 81 82 推荐结论: 83 84 ```text 85 Recommendation: <apply / stop / add tests first / defer> because <行为证据、维护收益和被放弃替代方案>。 86 ``` 87 88 如果不能证明行为保持不变,默认不要简化。
zmice/zc-qwen-extension/tree/main/skills/zc-code-simplification commit bf40b97a0f
Frequently asked questions How do I install the Zc Code Simplification skill? Run npx skillmds@latest add zmice/zc-code-simplification in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Zc Code Simplification skill do? 代码简化 It is listed under Coding & Dev Tools on SkillMD.
Is Zc Code Simplification safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Zc Code Simplification? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Zc Code Simplification free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Zc Code Simplification? zmice (@zmice) published this skill. Their other Agent Skills are listed on their SkillMD profile.