Tooluck logoTooluck
SKILL.md

refactor-advisor

Agent skill fromlaolaoshiren/claude-code-skills-zh

重构顾问 - 识别代码坏味道并提供重构方案

How to install refactor-advisor

install refactor-advisor
# install the claude-code-skills-zh pack with the skills CLI
npx skills add laolaoshiren/claude-code-skills-zh

# or add only this skill to Claude Code: copy the folder

skills/refactor-advisor/

# into

~/.claude/skills/refactor-advisor/ (all projects)

.claude/skills/refactor-advisor/ (one project)

skills/refactor-advisor/SKILL.md

MITFull file
1# 代码重构顾问
2
3## 触发条件
4当用户要求重构代码、优化代码结构、改善代码质量、消除技术债务时激活此技能。
5
6## 工作流程
7
8### 第 1 步:扫描代码库
9- 使用 `grep`/`rg` 扫描目标目录,识别潜在坏味道
10- 统计文件行数、函数长度、参数数量等指标
11- 查找重复代码块(相似度 > 80%)
12
13### 第 2 步:分类坏味道
14按严重程度分类发现的问题:
15
16| 等级 | 含义 | 说明 |
17|------|------|------|
18| 🔴 严重 | 必须立即修复 | 影响可维护性和稳定性 |
19| 🟡 中等 | 建议尽快修复 | 降低代码可读性 |
20| 🟢 轻微 | 可择机优化 | 不影响功能但有改进空间 |
21
22### 第 3 步:优先级排序
23按以下维度综合排序:
241. **影响范围** — 被引用/调用次数越多,优先级越高
252. **变更频率** — git log 频繁改动的文件优先
263. **修复成本** — 成本低且收益高的优先处理
27
28### 第 4 步:输出重构方案
29
30## 常见坏味道检测
31
32| 坏味道 | 特征 | 重构手法 | 等级 |
33|--------|------|---------|------|
34| 长方法 | 函数超过 50 行 | 提取方法 (Extract Method) | 🔴 |
35| 大类 | 类超过 300 行 | 提取类 (Extract Class) | 🔴 |
36| 重复代码 | 相似代码块出现 3+ 次 | 提取公共方法 | 🔴 |
37| 过长参数 | 函数参数超过 4 个 | 引入参数对象 | 🟡 |
38| 嵌套过深 | if/for 嵌套 3+ 层 | 卫语句 (Guard Clause) | 🟡 |
39| 魔法数字 | 硬编码的数字 | 提取为常量 | 🟢 |
40| 过长链式调用 | a.b.c.d.e | 提取中间变量 | 🟢 |
41| 全局可变状态 | 全局变量被多处修改 | 封装为模块/引入依赖注入 | 🔴 |
42| 过度耦合 | 模块间相互依赖 | 依赖反转、引入接口 | 🟡 |
43
44## 输出格式
45
46### 完整报告模板
47
48```markdown
49# 代码重构报告
50
51## 概要
52- 扫描文件数:XXX
53- 发现问题数:XX(🔴 X / 🟡 X / 🟢 X)
54- 预估工作量:X 天
55
56## 问题列表
57
58### 问题 1:[问题标题]
59- **📍 位置**:`src/services/user.ts:45-120`
60- **🔍 问题**:该函数长达 75 行,包含 3 层嵌套,职责不单一
61- **🛠️ 重构方案**:
62 - 提取 `validateUserData()` 方法
63 - 提取 `saveToDatabase()` 方法
64 - 使用卫语句替代嵌套 if
65- **⚠️ 风险评估**:
66 - 该函数被 12 处调用,需全面回归测试
67 - 建议先添加单元测试再重构
68- **Before**:
69 ```typescript
70 function processUser(data) { /* 75行... */ }
71 ```
72- **After**:
73 ```typescript
74 function processUser(data) {
75 const validated = validateUserData(data);
76 return saveToDatabase(validated);
77 }
78 ```
79…

Excerpt shown under the repository's MIT license.

More skills in claude-code-skills-zh

Keep exploring

Similar skill repositories

thedotmack /

claude-mem
116k

Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More

CCCXGHGM+135 skills

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates