name: 代码简化器 description: 代码简化技能用于提高代码清晰度、一致性和可维护性,同时保留确切行为。适用于简化代码、减少复杂性、清理最近更改、应用重构模式或提高可读性。触发任务涉及代码清理、简化、重构或可读性改进。
社区代码简化最佳实践
针对AI代理和LLMs的全面代码简化指南。包含47条规则,分为8个类别,按影响优先级从关键(上下文发现、行为保留)到渐进(语言习惯用法)排序。每条规则包括详细解释、真实世界示例对比错误与正确实现,以及具体影响指标。
核心原则
- 上下文优先:在做出任何更改前理解项目约定
- 行为保留:改变代码的编写方式,而非其功能
- 范围纪律:专注于最近修改的代码,保持差异小
- 清晰度胜过简洁:明确、可读的代码优于聪明的单行代码
何时应用
在以下情况参考这些指南:
- 简化或清理最近修改的代码
- 减少嵌套、复杂性或重复
- 改进命名和可读性
- 应用语言特定的习惯用法模式
- 审查代码以解决可维护性问题
规则类别按优先级
| 优先级 | 类别 | 影响 | 前缀 | 规则数 |
|---|---|---|---|---|
| 1 | 上下文发现 | 关键 | ctx- |
4 |
| 2 | 行为保留 | 关键 | behave- |
6 |
| 3 | 范围管理 | 高 | scope- |
5 |
| 4 | 控制流简化 | 高 | flow- |
9 |
| 5 | 命名和清晰度 | 中高 | name- |
6 |
| 6 | 重复减少 | 中 | dup- |
5 |
| 7 | 死代码消除 | 中 | dead- |
5 |
| 8 | 语言习惯用法 | 低中 | idiom- |
7 |
快速参考
1. 上下文发现(关键)
ctx-read-claude-md- 在简化前始终阅读CLAUDE.mdctx-detect-lint-config- 检查代码检查和格式化配置ctx-follow-existing-patterns- 匹配文件和项目中现有代码风格ctx-project-over-generic- 项目约定优先于通用最佳实践
2. 行为保留(关键)
behave-preserve-outputs- 保留所有返回值输出behave-preserve-errors- 保留错误消息、类型和处理behave-preserve-api- 保留公共函数签名和类型behave-preserve-side-effects- 保留副作用(日志记录、I/O、状态更改)behave-no-semantics-change- 禁止细微语义更改behave-verify-before-commit- 在最终确定前验证行为保留
3. 范围管理(高)
scope-recent-code-only- 仅专注于最近修改的代码scope-minimal-diff- 保持更改小而可审查scope-no-unrelated-refactors- 无无关重构scope-no-global-rewrites- 避免全局重写和架构更改scope-respect-boundaries- 尊重模块和组件边界
4. 控制流简化(高)
flow-early-return- 使用早期返回以减少嵌套flow-guard-clauses- 使用保护子句进行前置条件检查flow-no-nested-ternaries- 切勿使用嵌套三元运算符flow-explicit-over-dense- 优先显式控制流而非密集表达式flow-flatten-nesting- 展平深层嵌套至最多2-3层flow-single-responsibility- 每个代码块应做一件事flow-positive-conditions- 优先积极条件而非双重否定flow-optional-chaining- 使用可选链和空值合并flow-boolean-simplification- 简化布尔表达式
5. 命名和清晰度(中高)
name-intention-revealing- 使用意图揭示名称name-nouns-for-data- 数据用名词,动作用动词name-avoid-abbreviations- 避免隐晦缩写name-consistent-vocabulary- 使用一致词汇name-avoid-generic- 避免通用名称name-string-interpolation- 优先字符串插值而非拼接
6. 重复减少(中)
dup-rule-of-three- 应用三次规则dup-no-single-use-helpers- 避免单次使用辅助函数dup-extract-for-clarity- 仅在提高清晰度时提取dup-avoid-over-abstraction- 优先重复而非过早抽象dup-data-driven- 使用数据驱动模式而非重复条件
7. 死代码消除(中)
dead-remove-unused- 删除未使用代码dead-delete-not-comment- 删除代码,从不注释掉dead-remove-obvious-comments- 删除显而易见的注释dead-keep-why-comments- 保留解释原因的注释,而非内容dead-remove-todo-fixme- 删除陈旧TODO/FIXME注释
8. 语言习惯用法(低中)
idiom-ts-strict-types- 使用严格类型而非any(TypeScript)idiom-ts-const-assertions- 使用常量断言和只读(TypeScript)idiom-rust-question-mark- 使用?进行错误传播(Rust)idiom-rust-iterator-chains- 在更清晰时使用迭代器链(Rust)idiom-python-comprehensions- 使用推导式进行简单转换(Python)idiom-go-error-handling- 立即处理错误(Go)idiom-prefer-language-builtins- 优先语言和标准库内置功能
工作流
- 发现上下文:阅读CLAUDE.md、代码检查配置、检查现有模式
- 识别范围:专注于最近修改的代码,除非要求扩展
- 应用转换:按优先级顺序使用规则(关键优先)
- 验证行为:确保输出、错误和副作用保持一致
- 保持差异小:小而集中的更改,易于审查
如何使用
阅读个别参考文件以获取详细解释和代码示例:
参考文件
| 文件 | 描述 |
|---|---|
| references/_sections.md | 类别定义和排序 |
| assets/templates/_template.md | 新规则模板 |
| metadata.json | 版本和参考信息 |