一键导入
spec-driver-refactor
大规模代码重构 — 5 阶段:影响分析→分批规划→逐批实现→残留扫描→最终验证
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
大规模代码重构 — 5 阶段:影响分析→分批规划→逐批实现→残留扫描→最终验证
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
快速问题修复 — 4 阶段完成:诊断-规划-修复-验证
快速问题修复 — 4 阶段完成:诊断-规划-修复-验证
执行 Spec-Driven Development 完整研发流程(基于 orchestration.yaml 动态编排)
执行 Spec-Driven Development 完整研发流程(基于 orchestration.yaml 动态编排)
快速需求实现 — 跳过调研,5 阶段完成:规范-规划-任务-实现-验证
快速需求实现 — 跳过调研,5 阶段完成:规范-规划-任务-实现-验证
| 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