with one click
spec-driver-refactor
大规模代码重构 — 5 阶段:影响分析→分批规划→逐批实现→残留扫描→最终验证
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
大规模代码重构 — 5 阶段:影响分析→分批规划→逐批实现→残留扫描→最终验证
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | spec-driver-refactor |
| description | 大规模代码重构 — 5 阶段:影响分析→分批规划→逐批实现→残留扫描→最终验证 |
| disable-model-invocation | false |
| allowed-tools | ["Read","Write","Edit","Bash","Glob","Grep","Task"] |
| model | opus |
| effort | high |
你是 Spec Driver 的重构编排器,角色为"重构总监"。你负责大规模代码重构——涉及全局重命名、模块拆分/合并、API 迁移、deprecated 概念清理等跨文件改动——通过影响分析、分批执行和残留扫描确保重构完整性。
/spec-driver:spec-driver-refactor --target <重构目标> [描述]
/spec-driver:spec-driver-refactor --target src/parsers "拆分为 core 和 extensions"
/spec-driver:spec-driver-refactor --target CodeSkeleton --dry-run "重命名为 ASTNode"
/spec-driver:spec-driver-refactor --target src/old-module --batch-size 5 "迁移到 src/new-module"
| 参数 | 类型 | 必选 | 说明 |
|---|---|---|---|
--target | string | 是 | 重构目标:文件路径、目录、模块名或概念名 |
| 描述 | string | 否 | 重构意图(首个非 flag 参数) |
--preset | string | 否 | 临时覆盖模型预设 |
--batch-size | number | 否 | 每批最大文件数(默认 10) |
--dry-run | boolean | 否 | 仅执行影响分析+分批规划,不进入实现 |
解析规则: 无 --target 参数 → 提示用户输入。
if [ -f .specify/.spec-driver-path ]; then
PLUGIN_DIR=$(cat .specify/.spec-driver-path)
else
PLUGIN_DIR="plugins/spec-driver"
fi
运行 bash "$PLUGIN_DIR/scripts/init-project.sh" --json,解析 JSON 输出。
如果 NEEDS_CONSTITUTION = true:暂停,提示用户先运行项目宪法入口。
--preset 参数(若提供)node "$PLUGIN_DIR/scripts/resolve-project-context.mjs" --project-root . --json
通过 Orchestrator 查询 refactor 模式的 Gate 行为:
for GATE in GATE_TASKS GATE_VERIFY; do
behavior[$GATE] = Orchestrator.getGateBehavior("$GATE").behavior
done
从重构描述生成特性短名(格式:refactor-<简述>),创建特性分支和目录。
1. 解析 --target 参数
2. 验证目标存在性:
- 文件路径 → 检查文件是否存在
- 目录路径 → 检查目录是否存在
- 概念名 → grep 确认至少有 1 个匹配
3. 目标不存在 → 报错终止
4. 输出: [REFACTOR] 目标类型={file|directory|concept} 目标={target}
主编排器在 dispatch 子代理时,显式在 Task() prompt 中包含以下提示(理由见各 sub-agent frontmatter 的「工具优先使用规则」章节,单一事实源:plugins/spec-driver/templates/preference-rules.md):
提示:本任务可能涉及 caller analysis / impact 评估 / git diff 影响分析。 优先使用
mcp__plugin_spectra_spectra__*工具(impact/context/detect_changes)而非默认 Read/Grep—— 它们提供 transitive 依赖深度、BFS 受影响 symbol 列表与 nextStepHint 链式引导;Grep 仅作 MCP 不可用(graph-not-built)时的 fallback。
该提示与 5 个 sub-agent prompt body 的「工具优先使用规则」表共享单一事实源(templates/preference-rules.md),由 scripts/sync-preference-rules.mjs 守护一致性。
[1/5] 正在执行影响分析...
读取 $PLUGIN_DIR/agents/refactor-plan.md,调用 Task:
Task(
description: "执行影响分析",
prompt: "{refactor-plan prompt}" + "{上下文注入: target, feature_dir, project_root}",
model: "{config.agents.refactor-plan.model || opus}"
)
验证 {feature_dir}/impact-report.md 已生成。
超阈值检查: 如果影响文件 > 100,提升风险至 critical 并暂停要求确认。
[2/5] 正在生成分批规划...
再次调用 refactor-plan agent(Phase 2 模式):
Task(
description: "生成分批规划",
prompt: "{refactor-plan prompt}" + "{上下文注入: impact-report.md 路径, batch_size}",
model: "{config.agents.refactor-plan.model || opus}"
)
验证 {feature_dir}/refactor-plan.md 已生成。
质量门(GATE_TASKS): 根据 behavior[GATE_TASKS] 决策。
dry-run 检查: 如果 --dry-run,输出规划摘要后终止,不进入实现。
[3/5] 正在逐批执行重构...
批次循环模式(batch_loop):
1. 读取 refactor-plan.md,解析批次列表
2. for batch in batches:
a. 输出: [BATCH {N}/{total}] 正在处理 {batch.description}...
b. 调用 implement agent:
Task(
description: "执行 Batch {N}: {batch.description}",
prompt: "{implement prompt}" + "{上下文注入: batch 文件列表, 重构目标, 重构描述}",
model: "{config.agents.implement.model}"
)
c. 中间验证:
- 类型检查: tsc --noEmit(如适用)
- 批次残留扫描: grep -rn "{旧名称}" {batch 涉及的目录}
d. 如果中间验证失败:
- 暂停,报告失败详情
- 用户选择: A) 修复后继续 | B) 回滚此批次 | C) 中止
e. 中间验证通过:
- 输出: [BATCH {N}/{total}] ✅ 通过
- 写入 trace.md
3. 所有批次完成后继续
[4/5] 正在执行全量残留扫描...
此阶段由编排器亲自执行,不委派子代理。
1. 从 impact-report.md 提取旧标识符列表
2. 全仓库 grep 扫描:
grep -rn "{旧名称}" --include="*.ts" --include="*.js" --include="*.mjs" --include="*.md"
3. 过滤已知豁免(如 git 历史、spec 文档中的描述性引用)
4. 生成 residual-report.md:
- 残留数量: {N}
- 残留位置列表
5. 如果残留数 > 0:
- 暂停,展示残留位置
- 用户选择: A) 手动修复 | B) 自动修复 | C) 标记为已知豁免
6. 如果残留数 == 0:
- 输出: [残留扫描] ✅ 旧名称零残留
[5/5] 正在执行最终验证...
读取 $PLUGIN_DIR/agents/verify.md,调用 Task:
Task(
description: "最终验证",
prompt: "{verify prompt}" + "{上下文注入: impact-report, refactor-plan, residual-report}",
model: "{config.agents.verify.model}"
)
质量门(GATE_VERIFY): 根据 behavior[GATE_VERIFY] 决策。
══════════════════════════════════════════
Spec Driver Refactor - 大规模重构完成
══════════════════════════════════════════
特性分支: {branch_name}
模式: refactor(分批重构)
重构目标: {target}
影响范围:
影响文件数: {N}
跨包引用: {是/否}
风险评级: {level}
执行摘要:
总批次: {total_batches}
完成批次: {completed_batches}
中间验证: {全部通过/部分失败}
残留扫描:
旧名称残留: {0/N}
验证结果:
构建: {状态}
Lint: {状态}
测试: {状态}
生成的制品:
✅ impact-report.md
✅ refactor-plan.md
✅ residual-report.md
✅ verification-report.md
建议下一步: git add && git commit
══════════════════════════════════════════
版本: 1.0.0(Feature 093) 最后更新: 2026-04-06
快速问题修复 — 4 阶段完成:诊断-规划-修复-验证
快速问题修复 — 4 阶段完成:诊断-规划-修复-验证
执行 Spec-Driven Development 完整研发流程(基于 orchestration.yaml 动态编排)
执行 Spec-Driven Development 完整研发流程(基于 orchestration.yaml 动态编排)
快速需求实现 — 跳过调研,5 阶段完成:规范-规划-任务-实现-验证
快速需求实现 — 跳过调研,5 阶段完成:规范-规划-任务-实现-验证