Skills

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 = ['订单编号', '订单日期', '材料名称', '材料数量', '单价', '金额']
}
Read the whole SKILL.md on GitHub

More in Engineering