---
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

- 任何“全局替换”都必须先给出命中清单与排除策略
- 避免把行为重构与格式化/无关清理混在同一轮
