用于在不改变可观察行为的前提下重组既有前端代码,包括职责提炼、模块搬移、条件逻辑简化、API 整理和数据组织。不要用于新增功能、改变行为的缺陷修复、依赖或框架迁移,以及已经证实的死代码清理。
Scanned 9/3/2026
Install to Claude Code
npx -y skills add bovinphang/frontend-craft --skill fec-refactoring --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fec Refactoring?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/bovinphang-fec-refactoring)More formats (shields.io, HTML) on the badges page.
---
name: fec-refactoring
description: 用于在不改变可观察行为的前提下重组既有前端代码,包括职责提炼、模块搬移、条件逻辑简化、API 整理和数据组织。不要用于新增功能、改变行为的缺陷修复、依赖或框架迁移,以及已经证实的死代码清理。
---
# 技能:保持行为的重构
## 用途
以小步、可验证、可回滚的方式重组仍在使用的前端代码,同时保持用户、调用方、测试、路由和集成能够观察到的行为不变。
## 核心契约
每次执行都遵守以下规则:
1. **行为保持**:纯重构只改变内部结构,不主动改变可观察行为。
2. **修改前基线**:编辑前先记录当前可用验证结果。
3. **一次只做一个主要重构**:每一步只有一个主要结构意图。
4. **每一步都验证**:完成一步后立即运行最小但有效的验证。
5. **先回滚当前步骤,再讨论修复**:若当前步骤引入回归,先恢复到上一步,再缩小或重排方案。
6. **重构与功能修改分离**:新增行为或改变行为的缺陷修复不属于纯重构。
7. **优先最小安全重构**:有局部、可逆方案时,不直接扩大为架构重写。
8. **遵守差异预算**:实际修改范围明显超出计划时必须停止并重新评估。
纯重构采用 **GREEN → REFACTOR → GREEN**,不为了形式上的 TDD 人为制造失败行为测试。
## 流程
1. 分类请求,确认目标是结构调整且要求行为保持。
2. 读取项目配置、受影响模块、公开导出、路由、状态边界、测试和当前 diff。
3. 记录相关可观察契约:输入、输出、异常、副作用、UI 状态、事件、网络请求、状态迁移、路由和公开 API。
4. 建立修改前基线;既有失败要单独记录,不能算到后续重构头上。
5. 基于证据诊断结构问题,并检查可能的误判。
6. 建立安全网:优先复用已有测试,风险较高且覆盖不足时再补当前行为的特征测试。
7. 把方案拆成有顺序的小步,每步记录手法、原因、前置条件、风险、差异预算、验证和回滚边界。
8. 每次只执行一个主要结构变换,不夹带无关清理、格式化和重新设计。
9. 立即验证,并比较实际修改范围与差异预算。
10. 若出现新回归,先回滚当前步骤,确认基线恢复,再缩小或调整顺序。
11. 最后按需要运行类型检查、测试、构建、E2E、无障碍或其他专项门禁。
12. 根据证据给出 PASS、PARTIAL 或 NOT PROVEN,不夸大验证强度。
## 风险分级
| 风险 | 常见范围 | 默认动作 |
| --- | --- | --- |
| `SAFE` | 局部私有代码、契约稳定、容易回滚 | 可执行,并逐步验证 |
| `CAUTION` | 跨模块、共享状态、导入、Hook/Composable、生命周期 | 安全证据充分时执行,否则先规划 |
| `DANGER` | 公开 API、路由、持久化、网络契约、认证、SSR/水合、大范围状态或继承改造 | 默认先规划并停止等待明确授权 |
风险由上下文决定,不能只凭手法名称判定安全级别。
## 差异预算
每个可执行步骤先写清:
```text
预期文件数:N
预期函数/组件数:N
预期公开 API 变化:0
预期行为变化:0
```
如果实际 diff 明显超出预算,停止并重新评估,不能静默扩大成重新设计。
## 参考资料
- 安全规则、证据模型和风险语言见 [principles.md](references/principles.md)。
- 状态机、基线、回滚和报告契约见 [workflow.md](references/workflow.md)。
- 判断何时重构或何时延后见 [when-to-refactor.md](references/when-to-refactor.md)。
- 区分重构、功能、缺陷、清理、迁移和评审见 [refactoring-vs-feature-change.md](references/refactoring-vs-feature-change.md)。
## 约束
- 不修改测试来接受被重构意外改变的业务行为。
- 未有充分证据时,不把认证、权限、路由、持久化、协议或公开包契约变化标为 `SAFE`。
- 当前步骤出现新失败后,不继续叠加结构修改。
- 项目没有测试框架时,不自动安装新框架。
- 行数、复杂度、注释、一个 switch 或链式调用都不能单独证明存在坏味道。
- 默认不执行远程 Git 写入。
## 预期输出
输出带证据、风险、差异预算、逐步验证和必要回滚记录的重构方案或实现,并给出 PASS、PARTIAL 或 NOT PROVEN 的行为保持结论。
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!