skills/clean-code/SKILL.md
代码整洁度审查与改写顾问。贴代码即触发——审查现成代码挑违规/写代码时实时整洁化/命名与函数纠结时查规则。覆盖命名、函数、注释、格式、错误处理、测试、类、并发,引《代码整洁之道》(Robert C. Martin) 规则编号。重构、代码审查、写新代码时用。
npx skillsauth add lazygophers/ccplugin clean-codeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
基于 Robert C. Martin《代码整洁之道》(Clean Code) 全书 17 章 + 附录 A + 66 条坏味道/启发式清单 (ch17)。 一手语料:github.com/glen9527/Clean-Code-zh(中英双语译本,调研时间 2026-07-01)。
用:
不用(走别的 skill):
architecture-designperf-optimization引用编号 (C1/E2/F3/G5/N4/T7...) = ch17 坏味道与启发式清单 66 条;章节号 (chX.Y) = 原书章节。审查时优先按编号引用,便于定位。
| 规则 | 一句话 | 编号 |
|------|--------|------|
| 名副其实 | 名到即意,无需注释补全 | 2.2 |
| 避免误导 | 别用 accountList 若非 List 类型;别用相近拼写的名 | 2.3 / N4 |
| 有意义区分 | a1/a2、ProductInfo/ProductData 是无意义区分 | 2.4 |
| 读得出来 | genymdhms 不行,generationTimestamp 行 | 2.5 |
| 可搜索 | 单字母名只在短作用域;长名配长作用域 (N5) | 2.6 / N5 |
| 避免编码 | 拒匈牙利记号 / 成员前缀 m_ (N6);接口别加 I 前缀 | 2.7 / N6 |
| 一概念一词 | fetch/get/retrieve 选一个不混用 | 2.12 |
| 不双关 | add 表「加值」就别用于「加项」(用 append) | 2.13 |
| 解决方案领域名优先 | CS 术语可用(AccountVisitor);问题领域名次之 | 2.14 / 2.15 |
| 名描述副作用 | getName 不该藏连接副作用 (N7) | N7 |
| 别扮可爱 | HolyHandGrenade 不如 DeleteItems | 2.11 |
writeField(name);二元用动词 assertExpectedEqualsActualcheckPassword 不该顺带 initializeSession。输出参数 (F2) 是副作用气味。set 改状态 / get 读状态,不混。函数要么做事要么回答事,不同时。注释不能美化烂代码 (4.1)。能用代码表达就别注释。
好注释 (4.3):法律信息 / 提供信息 / 解释意图 / 阐释 / 警示后果 / TODO / 放大意义 / 公共 API Javadoc。
坏注释 (4.4):
i++; // increment i)、误导、循规式、日志式、废话 (4.4.6)、位置标记 (4.4.9)、归属署名、注释掉的代码 (C5: 别留,源码控制会记)a.getDept().getManager().getName() 火车失事;模块不该知它操作对象的内部错误处理:
边界 (ch8):
F.I.R.S.T 原则:
其他:
审查时按此表编号定位。完整列表存
references/research/07-smells-heuristics.md。
收到代码或需求后,先判模式:
| 用户输入特征 | 模式 | 入口 | |------|------|------| | 贴现成代码 + 「有什么问题 / 审查 / review / 重构」 | Mode B 审查 | 见下 | | 描述需求 / 给草稿 / 「帮我写 / 整洁化」 | Mode A 顾问 | 见下 | | 单点疑问(命名、参数数、要不要注释) | 直接查「规则体系」 | — |
「参数包成
SearchCriteria对象 (ch3.6.5),因为 4 参数 > 上限;flagisQuick拆成quickSearch()/fullSearch()两个函数 (F3)。」
## 审查结果
### 🔴 必修 (N)
- [G5 重复] fn:42 / fn:87 同样的 try-catch 包裹 → 抽 `withErrorHandling(fn)`
- [7.7 返回 null] UserService.findUser 返 null → 改返 Optional<User>
...
### 🟡 应改 (M)
- [F3 flag 参数] render(mode: bool) → 拆 renderMobile()/renderDesktop()
...
### 重构后代码
```(贴改写版,关键处行内注释引规则编号)```
Result/Option/所有权/async)。Optional、记录类、不可变数据、纯函数等当代语言原生支持,本书未覆盖;可作补充而非替代。architecture-design。perf-optimization。| 类型 | 内容 | 可信度 | |------|------|--------| | 一手 | 《代码整洁之道》中文译本 github.com/glen9527/Clean-Code-zh(ch1-8 中英双语,ch9-17 英文原版+部分翻译) | 最高 | | 一手 | ch17 坏味道与启发式 66 条(C/E/F/G/J/N/T 七类) | 最高 | | 一手 | ch12 Kent Beck 简单设计四原则(原文) | 最高 | | 一手 | ch1.3.5 名家定义(Bjarne Stroustrup 等) | 最高 |
调研综述存 references/research/ 下。调研时间:2026-07-01。
本 Skill 由 女娲 · Skill造人术 生成 创建者:花叔
tools
UI/UX 与布局设计——做界面布局/结构/导航/组件/交互的设计决策。触发:做UI/UX/布局/排版/导航/组件/交互/栅格/响应式/图表选型/字体配对。按媒介路由 HTML/Web、原生 App(iOS/Android/桌面)、CLI、TUI。需后端动态系统不适用;配色/主题/色板走姊妹 skill design-color。
tools
主题与配色设计——做颜色搭配/调色板/主题/品牌色阶/暗模式的设计决策。触发:选配色/调色/主题/色板/品牌色/暗模式/对比度/色盲/UI风格。按媒介路由 HTML/Web(CSS变量)、原生App(平台token)、CLI(ANSI)、TUI(真彩/256/16降级)。保证可访问性(对比度/色盲安全)。需后端动态系统不适用;UI/UX 布局/组件/交互走姊妹 skill design-uiux。
tools
跨任意组件(plugin/skill/agent/command)的验证驱动优化循环纪律 skill。当用户要优化某个已有组件却无明确方向、或要防止改了反而更差(自评乐观偏差 / 多维同改归因失效 / 为凑分加废话膨胀)、或要把一套通用「评分→单变量改→改后验证严格更好才留否则回滚→触顶停」的纪律套到任意组件上时使用。管优化过程本身的纪律(validation gate / ratchet / 独立验证 / 触顶停),不评单组件深度(交 skill-dev),不查插件接线(交 plugin-dev)。仅手动 /optimize-any 触发。
data-ai
两层规则记忆 (基于 .skein/spec)。planning 时 recall 召回相关规则、task finish 后 sediment 沉淀学习 + prune 自动精简过期/重复/断链规则。core 常驻硬规 + recall 按需召回, 经判定门自动写盘 (不逐次问用户)。产出 .skein/spec 下 core/recall 规则文件 + index。另支持空仓 bootstrap 播种规则基线、记忆大面积失效 (大重构/换栈) 时 reconstruct 可逆归档后按项目类型分型重建、maintain 手动体检 (超预算/stale/断链/重复/废弃, --apply 自动修复)、auto-fix (Stop hook 写 .pending-fix 标记 → main 派 skein-specer bg 跑 maintain --apply 全自动修, 断链只报告)。