
Refactor Safety
当用户要求重构代码(提取组件、合并重复逻辑、重命名变量、优化结构)时触发。提供重构安全检查清单,防止丢失原始上下文。
Install
npx skills add doccker/cc-use-exp --skill refactor-safety -g -a claude-code -y- Repository
- doccker/cc-use-exp1.1k
- Category
- Engineering
- Updated
- 2mo ago
- License
- See repository
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
当用户要求重构代码(提取组件、合并重复逻辑、重命名变量、优化结构)时触发。提供重构安全检查清单,防止丢失原始上下文。
重构安全规范
触发场景
- 用户说"重构"、"提取"、"合并"、"优化结构"、"简化代码"
- 涉及表格列、数据结构、配置项的修改
- 合并条件分支(if/else/switch)
重构流程
1. 读取原始代码(必须)
不要凭记忆或推测重构,必须完整读取原始代码:
# 读取完整文件
Read: file_path="src/views/Order.vue"
# 如果是条件分支,读取所有分支的代码
Grep: pattern="if.*健康云" -A 50 -B 5
Grep: pattern="else" -A 50 -B 5
常见错误:
- ❌ 只读一个分支,推测其他分支
- ❌ 凭记忆重构表格列
- ❌ 假设两个条件分支结构相似
2. 制作对比清单
表格重构示例
原始代码(健康云租户):
列1: 订单编号
列2: 订单日期
列3: 材料名称
列4: 材料数量
列5: 单价
列6: 金额
原始代码(非健康云租户):
列1: 订单编号
列2: 创建时间
列3: 材料名称
列4: 单价
列5: 金额
对比清单:
| 健康云 | 非健康云 | 状态 |
|---|---|---|
| 订单编号 | 订单编号 | ✅ 一致 |
| 订单日期 | 创建时间 | ⚠️ 名称不同 |
| 材料名称 | 材料名称 | ✅ 一致 |
| 材料数量 | - | ❌ 非健康云无此列 |
| 单价 | 单价 | ✅ 一致 |
| 金额 | 金额 | ✅ 一致 |
数据结构重构示例
原始接口:
interface Order {
id: string
date: string
items: Item[]
total: number
}
重构后接口:
interface Order {
id: string
createdAt: string // 重命名:date → createdAt
items: Item[]
total: number
}
对比清单:
- ✅ 字段数量一致(4 个)
- ⚠️ 字段重命名:date → createdAt
- ✅ 字段顺序一致
- ✅ 字段类型一致
3. 验证检查点
重构完成后,必须逐项检查:
表格重构检查
- 列数一致(原始 6 列 → 重构后 6 列)
- 列顺序一致(第 1 列是订单编号,第 2 列是日期...)
- 列名一致(或有明确映射关系)
- 没有遗漏列
- 没有多余列
条件分支检查
- 所有 if/else/switch 分支都已处理
- 每个分支的逻辑与原始代码一致
- 没有假设某个分支与另一个分支相似
数据结构检查
- 字段数量一致
- 字段类型一致
- 字段顺序一致(如果顺序重要)
- 没有遗漏字段
4. 输出格式
重构完成后,输出对比清单:
## 重构对比
### 原始结构(健康云租户)
- 列1: 订单编号
- 列2: 订单日期
- 列3: 材料名称
- 列4: 材料数量
- 列5: 单价
- 列6: 金额
### 原始结构(非健康云租户)
- 列1: 订单编号
- 列2: 创建时间
- 列3: 材料名称
- 列4: 单价
- 列5: 金额
### 重构后结构
- 列1: 订单编号
- 列2: 日期(健康云显示"订单日期",非健康云显示"创建时间")
- 列3: 材料名称
- 列4: 材料数量(仅健康云显示)
- 列5: 单价
- 列6: 金额
### 变更说明
- 合并:订单日期 + 创建时间 → 日期(条件显示)
- 条件显示:材料数量仅在健康云租户显示
- 删除:无
- 新增:无
常见陷阱
1. 假设驱动重构
错误示例:
// 只读了健康云租户的代码
if (isHealthCloud) {
columns = ['订单编号', '订单日期', '材料名称', '材料数量', '单价', '金额']
}
