refactor

Before refactoring, this process must be used. Through collaborative dialogue, we will explore user intent, requirements, and design solutions in depth.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "refactor" with this command: npx skills add evan-acg/evan-skills/evan-acg-evan-skills-refactor

对项目或者文件进行重构

概述

在进行详细的思考后,将一个指定的功能或者组件文件,进行重构。

从开始了解当前项目的上下文开始,然后一次询问一个问题来确认重构的方向和思路。

当你了解了你想要重构的步骤和范围后,将整个设计以一个小章节呈现,然后确认所有章节中的内容是否正确。

过程

了解重构的范围和步骤

  • 前置检查:首先检查当前项目的状态(files, docs, recent, commits)。
  • 单次提问:每次仅提问一个问题以细化思路。
  • 选项优先:尽可能提供多选题,但也接受开放式回答。
  • 循序渐进:如果一个话题需要深入探讨,请将其拆分为多个单次提问。
  • 核心目标:明确目的、约束条件和成功指标。
  • 副作用:询问用户是否有依赖于该组件的隐蔽逻辑,或者是否有现成的自动化测试覆盖。

探索方案

  • 提供选项:提出2~3种具有不同优缺点的实现方案。
  • 对话式建议:以对话方式呈现方案,给出你的推荐方案并解释原因。
  • 逻辑支撑:优先展示推荐选项,并说明其合理性。
  • 重构动机:明确重构的类型,动机不同,重构的方案也会完全不同:
    • A,代码坏味道修复。
    • B, 性能优化。
    • C,解耦/抽象化。
    • 等等。

展示设计

  • 分段呈现: 确认理解需求后,开始展示设计方案。
  • 字数限制: 每个部分尽量简洁明了,不要长篇大论。
  • 分段确认: 每展示完一个部分,必须询问用户:“目前为止看起来还可以吗?”
  • 覆盖范围: 架构设计、组件构成、数据流向、错误处理、测试策略。
  • 灵活调整: 如果用户感到困惑,随时准备退回上一步进行澄清。

实现准备(如需继续)

  • 询问用户:准备好进入实现阶段了吗?
  • 环境隔离: 使用 Git Worktrees 创建独立的开发工作空间。
  • 详细计划: 制定详细的执行步骤(Implementation Plan)。
  • 快照/基准测试:在动代码之前,先运行一遍现有测试或建立基准,确保重构后的输出与重构前一致。

实现过程(如需继续)

  • 隔离操作: 切换到Git Worktrees 创建独立的开发工作空间进行操作。
  • 小步快走:每完成一小部分的重构,就应该执行一次小范围测试
    • 基准建立:在开始前运行现有测试,若无测试则优先补齐核心逻辑的单元测试。
    • 红绿循环: 采用类似 TDD 的节奏,修改一小步 -> 验证测试 -> 提交。
    • 兼容性检查:确保导出接口(API)在重构期间保持向下兼容,除非明确要求修改接口。
    • 记录更新: 在每一小步完成后,都应该更新任务方案中的任务清单。
  • 重构记录:测试通过后,就应该将这一小步重构提交到git,使用格式<类型><(范围)>: 完成了哪些任务。
  • 合并回归:当整个重构过程都完成后,进行一次全量测试,测试通过后,将这个独立的开发分支合并回去,具体合并到哪个分支,询问用户。
  • 清理痕迹:当整个合并完成后,应该删除这次创建的独立开发空间。

设计完成后

文档化

  • 创建进度文档: 将验证后的方案写入 docs/plans/YYYY-MM-DD-<主题>-refactor.md
  • 结构化清单: 文档不仅包含设计方案,还必须包含一个任务分解清单 (Task Checklist)
  • 分级任务:
    • 大步骤 (Stages): 核心重构阶段(如:抽象逻辑层、重构 UI 组件、迁移数据流)。
    • 原子任务 (Sub-tasks): 具体的、可操作的小步骤(如:提取 useAuth hook、修改 Header.tsx 引用)。
  • 状态追踪: 初始状态使用空复选框 - [ ]
    • 每一个原子任务完成后,必须立即更新文档并打钩 - [x]
  • 实时记录: 在重构过程中发现的意外情况或临时决策,应及时追加到文档的“备注”或“变更记录”小节中。
  • 遵循清晰、简洁的写作原则。
  • 将设计文档提交(Commit)至 Git 仓库。

核心原则

  • 一次一问 —— 绝不通过堆砌问题让用户感到压力。
  • 多选优先 —— 选项比问答更易于快速决策。
  • 无情 YAGNI —— 坚决从设计中剔除不必要的冗余功能(You Ain't Gonna Need It)。
  • 多路对比 —— 在定稿前始终提供 2-3 种备选路径。
  • 增量验证 —— 按部分展示设计,步步确认,确保方向不跑偏。
  • 灵活响应 —— 只要逻辑不通,随时推倒重来或细化澄清。
  • 子代理 —— 所有的任务,在不影响理解的情况下,尽量使用子代理任务进行。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

character-profile

No summary provided by upstream source.

Repository SourceNeeds Review
General

refactor

No summary provided by upstream source.

Repository SourceNeeds Review
General

refactor

No summary provided by upstream source.

Repository SourceNeeds Review