66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
---
|
||
name: bulk-refactor-workflow
|
||
description:
|
||
"Safe bulk refactors and mass edits across a repo (rename APIs, global
|
||
replacements, mechanical changes). Triggers: bulk refactor, mass edit, rename
|
||
symbol, global replace, 批量重构, 全局替换, 统一改名, 大范围修改."
|
||
---
|
||
|
||
# Bulk Refactor Workflow(批量重构 / 大范围修改)
|
||
|
||
## When to Use
|
||
|
||
- Rename API / symbol / file convention across many files
|
||
- Mechanical refactors (imports, formatting, lint fixes, signature migrations)
|
||
- Cross-cutting changes touching 10+ files
|
||
|
||
## Inputs(required)
|
||
|
||
- Scope:目录/文件类型/排除项(include/exclude)
|
||
- Transformation:要做的规则(rename A→B、替换模式、接口迁移策略)
|
||
- Constraints:是否允许行为变化?是否需要兼容期?是否允许自动格式化?
|
||
- Verification:必须通过哪些命令/检查(最少一个)
|
||
|
||
## Procedure(default)
|
||
|
||
1. **Baseline**
|
||
|
||
- 确保工作区干净:`git status --porcelain`
|
||
- 跑一个基线验证(至少 build 或核心测试子集),避免“本来就坏”
|
||
|
||
2. **Enumerate**
|
||
|
||
- 先搜索再改:用 `rg`/`git grep` 列出全部命中
|
||
- 分类命中:真实调用 vs 注释/文档/样例;避免误改
|
||
|
||
3. **Apply Mechanical Change**
|
||
|
||
- 优先使用确定性的机械变换(脚本/结构化编辑)而非手工逐个改
|
||
- 每轮改动后立即做小验证(编译/单测子集)
|
||
- 复杂迁移优先“两阶段”:先兼容旧接口(deprecated),再清理旧接口
|
||
|
||
4. **Format & Lint(按项目约定)**
|
||
|
||
- 仅在确认“会破坏 diff 可读性”前提下分批格式化(避免把重构和格式揉在一起)
|
||
|
||
5. **Verify & Report**
|
||
- 跑约定的验证命令并记录输出
|
||
- 汇总影响范围:改动文件数、主要改动点、潜在风险
|
||
|
||
## Execution Hint(optional)
|
||
|
||
如果环境支持“执行型批量处理”(例如脚本执行),优先用脚本完成批量修改,然后只把**最小 diff + 摘要**交付,避免上下文膨胀与漏改。
|
||
|
||
## Output Contract(stable)
|
||
|
||
- Scope:改动覆盖范围(文件/目录/语言)
|
||
- Transformation:执行的规则(可复用)
|
||
- Changes:关键改动摘要(按类别)
|
||
- Verification:命令 + 证据(输出/退出码/产物)
|
||
- Risks:高风险点与回滚建议
|
||
|
||
## Guardrails
|
||
|
||
- 任何“全局替换”都必须先给出命中清单与排除策略
|
||
- 避免把行为重构与格式化/无关清理混在同一轮
|