skills/rabbit-ivan/ivan-skills/clean-code-reviewer

clean-code-reviewer

SKILL.md

Clean Code Review

基于《代码整洁之道》原则,聚焦 5 个高收益检查维度。

Review Workflow

Review Progress:
- [ ] 1. Scan codebase: identify files to review
- [ ] 2. Check each dimension (naming, functions, DRY, YAGNI, magic numbers)
- [ ] 3. Rate severity (高/中/低) for each issue
- [ ] 4. Generate report sorted by severity

Check Dimensions

1. 命名问题【有意义的命名】

检查标志:

  • data1, temp, result, info, obj 等无意义命名
  • 同一概念多种命名(get/fetch/retrieve 混用)
// ❌ 
const d = new Date();
const data1 = fetchUser();

// ✅ 
const currentDate = new Date();
const userProfile = fetchUser();

2. 函数问题【函数短小 + SRP】

检查标志:

  • 函数超过 100 行
  • 参数超过 3 个
  • 函数做多件事
// ❌ 7 个参数
function processOrder(user, items, address, payment, discount, coupon, notes)

// ✅ 使用参数对象
interface OrderParams { user: User; items: Item[]; shipping: Address; payment: Payment }
function processOrder(params: OrderParams)

3. 重复问题【DRY】

检查标志:

  • 相似的 if-else 结构
  • 相似的数据转换/错误处理逻辑
  • Copy-paste 痕迹

4. 过度设计【YAGNI】

检查标志:

  • 从未为 true 的 if (config.legacyMode) 分支
  • 只有一个实现的接口
  • 无用的 try-catch 或 if-else
// ❌ YAGNI 违反:从未使用的兼容代码
if (config.legacyMode) {
  // 100 行兼容代码
}

5. 魔法数字【避免硬编码】

检查标志:

  • 裸露数字无解释
  • 硬编码字符串
// ❌ 
if (retryCount > 3) // 3 是什么?
setTimeout(fn, 86400000) // 这是多久?

// ✅ 
const MAX_RETRY_COUNT = 3;
const ONE_DAY_MS = 24 * 60 * 60 * 1000;

Severity Levels

级别 标准
影响可维护性/可读性,应立即修复
有改进空间,建议修复
代码气味,可选优化

Output Format

### [问题类型]: [简述]

- **原则**: [Clean Code 原则]
- **位置**: `文件:行号`
- **级别**: 高/中/低
- **问题**: [具体描述]
- **建议**: [修复方向]

References

Detailed examples: See references/detailed-examples.md

  • 各维度的完整案例(命名、函数、DRY、YAGNI、魔法数字)

Language patterns: See references/language-patterns.md

  • TypeScript/JavaScript 常见问题
  • Python 常见问题
  • Go 常见问题

Multi-Agent Parallel

按以下维度拆分给多 agent 并行:

  1. 按检查维度 - 5 维度各一个 agent
  2. 按模块/目录 - 不同模块各一个 agent
  3. 按语言 - TypeScript、Python、Go 各一个 agent

汇总时需去重和统一严重程度评定。

Weekly Installs
1
First Seen
8 days ago
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1