mcpField
R
review-clean-code

review-clean-code

github.com/heyvhuang测试与质量33853 次安装30 周前更新
代码仓库

关于 review-clean-code

review-clean-code 是一项代码审查技能,按七个 Clean Code 维度检查实现质量,同时保持程序行为不变。它会按严重程度排序问题,并生成可读和结构化报告。

主要功能

  1. 01检查七个代码质量维度
  2. 02按严重程度评估问题
  3. 03按严重程度排列报告
  4. 04保持现有行为不变
  5. 05支持按范围并行审查

适用场景

  1. 01审查命名与函数设计
  2. 02查找重复代码和过度设计
  3. 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 并行执行:

  1. 按检查维度拆分——每个维度分配一个 Agent(共 7 个)
  2. 按模块/目录拆分——每个模块分配一个 Agent
  3. 按语言拆分——TypeScript、Python、Go 各分配一个 Agent
  4. 按文件类型拆分——组件、钩子、工具、类型定义

示例:/review-clean-code --scope=components 或 --dimension=naming

汇总时需要去重并统一严重程度评级。

评论

支持 Markdown