关于 review-clean-code
review-clean-code 是一项代码审查技能,按七个 Clean Code 维度检查实现质量,同时保持程序行为不变。它会按严重程度排序问题,并生成可读和结构化报告。
主要功能
- 01检查七个代码质量维度
- 02按严重程度评估问题
- 03按严重程度排列报告
- 04保持现有行为不变
- 05支持按范围并行审查
适用场景
- 01审查命名与函数设计
- 02查找重复代码和过度设计
- 03检查是否符合项目约定
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ heyvhuang/ ship-faster --skill review-clean-code安装后在 Claude Code 中输入/review-clean-code确认已加载。
附带文件detailed-examples.mdlanguage-patterns.md
详细介绍
整洁代码审查
基于“整洁代码”原则,重点审查 7 个高影响维度。
审查工作流
Review Progress:
- [ ] 1. Scan codebase: identify files to review
- [ ] 2. Check each dimension (naming, functions, DRY, YAGNI, magic numbers, clarity, conventions)
- [ ] 3. Rate severity (High/Medium/Low) for each issue
- [ ] 4. Generate report sorted by severity
核心原则:保持功能不变
所有建议仅针对实现方式,绝不建议改变代码的功能、输出或行为。
检查维度
1. 命名问题(有意义的名称)
检查以下问题:
data1、temp、result、info、obj等无意义的名称- 同一概念的命名不一致(混用
get、fetch、retrieve)
// ❌
const d = new Date();
const data1 = fetchUser();
// ✅
const currentDate = new Date();
const userProfile = fetchUser();
2. 函数问题(小函数 + 单一职责原则)
检查以下问题:
- 函数超过 100 行
- 参数超过 3 个
- 函数承担多项职责
// ❌ 7 parameters
function processOrder(user, items, address, payment, discount, coupon, notes)
// ✅ Use parameter object
interface OrderParams { user: User; items: Item[]; shipping: Address; payment: Payment }
function processOrder(params: OrderParams)
3. 重复问题(DRY)
检查以下问题:
- 相似的 if-else 结构
- 相似的数据转换/错误处理逻辑
- 复制粘贴的痕迹
4. 过度设计(YAGNI)
检查以下问题:
- 永远不会为真的
if (config.legacyMode)分支 - 只有一种实现的接口
- 无用的 try-catch 或 if-else
// ❌ YAGNI violation: unused compatibility code
if (config.legacyMode) {
// 100 lines of compatibility code
}
5. 魔法数字(避免硬编码)
检查以下问题:
- 没有说明的裸数字
- 硬编码字符串
// ❌
if (retryCount > 3) // What is 3?
setTimeout(fn, 86400000) // How long is this?
// ✅
const MAX_RETRY_COUNT = 3;
const ONE_DAY_MS = 24 * 60 * 60 * 1000;
6. 结构清晰度(可读性优先)
检查以下问题:
- 嵌套的三元运算符
- 过于紧凑的单行代码
- 条件嵌套过深(> 3 层)
// ❌ Nested ternary
const status = a ? (b ? 'x' : 'y') : (c ? 'z' : 'w');
// ✅ Use switch or if/else
function getStatus(a, b, c) {
if (a) return b ? 'x' : 'y';
return c ? 'z' : 'w';
}
7. 项目规范(保持一致)
检查以下问题:
- 导入顺序混乱(外部库与内部模块)
- 函数声明风格不一致
- 命名规范混用(camelCase 与 snake_case)
// ❌ Inconsistent style
import { api } from './api'
import axios from 'axios' // External lib should come first
const handle_click = () => { ... } // Mixed naming style
// ✅ Unified style
import axios from 'axios'
import { api } from './api'
function handleClick(): void { ... }
提示
项目规范应参考
CLAUDE.md、AGENTS.md或项目定义的编码标准。
严重程度
| 等级 | 标准 |
|---|---|
| 高 | 影响可维护性/可读性,应立即修复 |
| 中 | 有改进空间,建议修复 |
| 低 | 代码异味,可选优化 |
输出格式
### [Issue Type]: [Brief Description]
- **Principle**: [Clean Code principle]
- **Location**: `file:line`
- **Severity**: High/Medium/Low
- **Issue**: [Specific description]
- **Suggestion**: [Fix direction]
产物(流水线模式)
- 输出:
clean-code-review.md(人类可读的报告) - 输出:
clean-code-review.json(用于汇总/去重/统计的结构化问题列表)
参考资料
详细示例:参见 detailed-examples.md
- 每个维度的完整案例(命名、函数、DRY、YAGNI、魔法数字)
语言模式:参见 language-patterns.md
- TypeScript/JavaScript 常见问题
- Python 常见问题
- Go 常见问题
多 Agent 并行执行
按以下维度拆分任务,以便多个 Agent 并行执行:
- 按检查维度拆分——每个维度分配一个 Agent(共 7 个)
- 按模块/目录拆分——每个模块分配一个 Agent
- 按语言拆分——TypeScript、Python、Go 各分配一个 Agent
- 按文件类型拆分——组件、钩子、工具、类型定义
示例:/review-clean-code --scope=components 或 --dimension=naming
汇总时需要去重并统一严重程度评级。
评论
支持 Markdown