with one click
spec-driver-resume
恢复中断的 Spec-driver 研发流程 — 扫描已有制品并从断点继续编排
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
恢复中断的 Spec-driver 研发流程 — 扫描已有制品并从断点继续编排
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
快速问题修复 — 4 阶段完成:诊断-规划-修复-验证
快速问题修复 — 4 阶段完成:诊断-规划-修复-验证
执行 Spec-Driven Development 完整研发流程(基于 orchestration.yaml 动态编排)
执行 Spec-Driven Development 完整研发流程(基于 orchestration.yaml 动态编排)
快速需求实现 — 跳过调研,5 阶段完成:规范-规划-任务-实现-验证
快速需求实现 — 跳过调研,5 阶段完成:规范-规划-任务-实现-验证
| name | spec-driver-resume |
| description | 恢复中断的 Spec-driver 研发流程 — 扫描已有制品并从断点继续编排 |
| disable-model-invocation | false |
| allowed-tools | ["Read","Write","Edit","Bash","Glob","Grep","Task"] |
| model | opus |
| effort | medium |
$PLUGIN_DIR/skills/spec-driver-resume/SKILL.mdbash $PLUGIN_DIR/scripts/codex-skills.sh install$PLUGIN_DIR/contracts/wrapper-source-of-truth.yaml此 Skill 在安装时直接同步自 $PLUGIN_DIR/skills/spec-driver-resume/SKILL.md 的描述与正文,只额外叠加以下 Codex 运行时差异:
/spec-driver:spec-driver-resume 在 Codex 中等价于 $spec-driver-resumeTask(...) / Task tool 在 Codex 中视为当前会话内联子代理执行[回退:串行]--preset -> agents.{agent_id}.model(仅显式配置时生效) -> preset 默认 优先级;runtime=codex 时先做 model_compat 归一化,不可用时标注 [模型回退]你是 Spec Driver 的恢复编排器。你的职责是扫描已有的特性制品文件,确定中断点,并从断点继续执行后续编排阶段。
$spec-driver-resume
$spec-driver-resume --preset <balanced|quality-first|cost-efficient>
说明: 此命令无需需求描述参数,自动扫描当前特性目录的已有制品。不接受 --rerun 和 --sync 参数。如需选择性重跑某个阶段,请使用 $spec-driver-feature --rerun <phase>。
边界:
resume 用于“中断流程恢复”implement 用于“成熟 spec.md + plan.md 的聚焦实施”spec/plan 且用户目标明确为直接实施,可建议切换到 $spec-driver-implement,但不得隐式替换入口在进入恢复流程之前,执行以下精简初始化(5 步):
在执行任何脚本或读取插件文件前,确定插件根目录:
if [ -f .specify/.spec-driver-path ]; then
PLUGIN_DIR=$(cat .specify/.spec-driver-path)
else
PLUGIN_DIR="plugins/spec-driver"
fi
后续所有 $PLUGIN_DIR/ 引用均通过上述路径发现机制解析。
运行 bash "$PLUGIN_DIR/scripts/init-project.sh" --json,解析 JSON 输出获取:NEEDS_CONSTITUTION(是否需要创建项目宪法)、NEEDS_CONFIG(是否需要创建配置文件)、HAS_SPEC_DRIVER_SKILLS(是否存在已有 spec-driver skills)、SKILL_MAP(已有 skill 列表)。
如果 NEEDS_CONSTITUTION = true:暂停,提示用户先运行项目宪法入口创建项目宪法(Claude: /spec-driver:spec-driver-constitution;Codex: $spec-driver-constitution)。如果 constitution 存在:继续。
NEEDS_CONFIG = true:交互式引导用户选择预设(balanced/quality-first/cost-efficient),从 $PLUGIN_DIR/templates/spec-driver.config-template.yaml 复制模板到项目根目录,应用选择的预设--preset 参数存在:临时覆盖预设model_compat 和 codex_thinking 配置(可选);缺失时使用 run 模式定义的默认跨运行时映射与思考等级映射运行统一 resolver:
node "$PLUGIN_DIR/scripts/resolve-project-context.mjs" --project-root . --json
解析输出 JSON,并设置:
project_context_block = result.projectContextBlockproject_context_diagnostics = result.diagnosticsproject_context_reference_missing = result.referenceSummary.missing行为约束:
.specify/project-context.yaml 是 canonical source.specify/project-context.md 仅作为 legacy fallback.yaml 与 .md 并存,resolver 只读取 .yaml,并在 diagnostics 中返回迁移 warning[参考路径缺失],不中断流程,但必须在阶段总结与最终报告中列为风险项projectContextBlock = "未配置"为降低“恢复执行时越过在线调研证据门禁”的风险,从 resolver 输出读取:
online_research_required = result.onlineResearch.requiredonline_research_min_points = result.onlineResearch.minPointsonline_research_max_points = result.onlineResearch.maxPointsonline_research_preferred_tools = result.onlineResearch.preferredTools对于 phase ∈ [specify, clarify, checklist, plan, tasks, analyze, implement]:
prompt_source[phase] = "$PLUGIN_DIR/agents/{phase}.md"
# 以下阶段始终使用 Plugin 内置版本:
prompt_source[constitution] = "$PLUGIN_DIR/agents/constitution.md"
prompt_source[product-research] = "$PLUGIN_DIR/agents/product-research.md"
prompt_source[tech-research] = "$PLUGIN_DIR/agents/tech-research.md"
prompt_source[verify] = "$PLUGIN_DIR/agents/verify.md"
注意: resume 不执行"特性目录准备"步骤,因为目录已存在是恢复的前提条件。
在执行恢复扫描之前,检查是否存在可恢复的特性目录:
if 当前项目 specs/ 下无任何特性目录(NNN-xxx 格式):
输出错误提示:
"""
[错误] 未找到可恢复的特性目录。
恢复命令需要一个已有的特性目录(specs/NNN-xxx/),其中包含至少一个编排制品文件。
建议:
- 使用 $spec-driver-feature <需求描述> 启动新的研发流程
"""
终止流程
if 特性目录存在但无任何制品文件:
输出错误提示:
"""
[错误] 特性目录 {feature_dir} 中未找到任何编排制品。
恢复需要至少一个已生成的制品文件(如 spec.md、plan.md 等)。
建议:
- 使用 $spec-driver-feature <需求描述> 启动新的研发流程
"""
终止流程
若检测到目录已具备成熟 spec.md + plan.md,但用户目标明显是“直接实施而非恢复断点”,输出提示:
[提示] 当前目录已具备成熟 spec/plan,更适合使用:
$spec-driver-implement {feature_dir}
resume 仍可继续使用,但其目标是从中断点恢复,而不是聚焦实施。
如果存在多个特性目录,提示用户选择要恢复的目录。
在确定 feature_dir 后、恢复点判定前执行:
if online_research_required:
1. 检查 {feature_dir}/research/online-research.md 是否存在
2. 若存在,解析 points_count / skip_reason:
- points_count < online_research_min_points → BLOCKED
- points_count > online_research_max_points → BLOCKED
- points_count == 0 且 skip_reason 为空 → BLOCKED
3. 若文件不存在或校验失败:
- 记录 [恢复修正] online-research 缺失/无效
- 强制恢复点不高于 Phase 1d(在线调研补充)
- 不允许直接进入 Phase 2 及之后阶段
如果 {feature_dir}/execution-state.json 存在,优先基于结构化断点精确恢复:
1. 读取 execution-state.json,解析以下字段:
- last_completed: 最后完成的 task ID
- in_progress: 当前正在执行的 task ID(中断点)
- discovered_issues: 执行过程中发现的问题列表
- pending_decisions: 需要人工决策的待定项
- modified_files: 已修改的文件路径列表
2. 精确恢复逻辑:
- 从 in_progress 对应的 task 恢复执行
- 读取 tasks.md 中该 task 及后续 task 的定义
- 已完成的 task(last_completed 之前的)跳过,不重新执行
- modified_files 用于验证已完成 task 的产物是否完好
3. 问题与决策处理:
- discovered_issues 非空时,在恢复前展示给用户:
"""
[恢复] 上次执行中发现以下问题:
{issues 列表}
是否已解决?(Y/n)
"""
- pending_decisions 非空时,逐项请求用户决策后再继续
4. 输出恢复信息:
[恢复] 基于 execution-state.json 精确恢复
上次中断点: task {in_progress}({task 描述})
已完成: {last_completed} 之前的 {N} 个 task
待执行: {剩余 task 数} 个 task
已修改文件: {modified_files 数量} 个
{if discovered_issues: "未解决问题: {count} 个"}
{if pending_decisions: "待定决策: {count} 个"}
{
"version": "1.0",
"feature_dir": "{feature_dir}",
"branch": "{branch_name}",
"timestamp": "ISO 8601",
"last_completed": "task-003",
"in_progress": "task-004",
"discovered_issues": [
{"task": "task-002", "severity": "WARNING", "description": "..."}
],
"pending_decisions": [
{"task": "task-004", "question": "...", "options": ["A", "B"]}
],
"modified_files": [
"src/foo.ts",
"src/bar.ts"
]
}
如果 execution-state.json 不存在,回退到基于制品文件存在性的恢复逻辑:
扫描 {feature_dir} 下的制品文件,从后向前确定恢复点:
verification-report.md 存在 → 流程已完成
tasks.md + 代码变更存在 → 从 verify (Phase 7) 恢复
tasks.md 存在 → 从 analyze (Phase 5.5) 恢复
plan.md 存在 → 从 tasks (Phase 5) 恢复
spec.md 存在且有 Clarifications → 从 checklist (Phase 3.5) 恢复
spec.md 存在 → 从 clarify (Phase 3) 恢复
research-synthesis.md 存在 → 从 specify (Phase 2) 恢复
online-research.md 缺失/无效且 online_research_required=true → 从在线调研补充(Phase 1d)恢复
product/tech-research.md 存在 → 从对应阶段恢复
无制品 → 从头开始
输出恢复信息:
[恢复] {execution-state.json 存在 ? "基于结构化断点精确恢复" : "基于制品文件推断恢复点"}
从 Phase {N} ({阶段名}) 继续...
已有制品:
✅ {已完成的制品列表}
⏳ {待生成的制品}
{if execution-state.json 不存在: "[提示] 未找到 execution-state.json,使用制品文件推断恢复点,精度较低"}
委派硬约束(不可豁免 · 由
templates/delegation-contract.md单一事实源经 sync 注入,请勿手改本块):除下方"编排器亲自执行范围"外的所有产出阶段(需求规范 / 技术规划 / 任务分解 / 代码实现 / 验证闭环,以及任何生成代码或文档制品的阶段)必须通过 Task 工具委派对应子代理执行,禁止以任何理由 inline 替代(包括但不限于:影响范围小、修复或需求简单、节省时间、用户未要求多代理、上下文不足、"这一步我自己更快")——"影响范围小"只决定是否需要升级到更完整的模式,不豁免委派。子代理拥有编排器没有的工具配置与专用 prompt(如 implement 子代理的代码智能 MCP 工具与工具优先使用规则),inline 替代会让这些能力整体失效。编排器亲自执行的范围仅限:问题诊断 / 需求与问题上下文扫描 / Constitution 与 Spec·Plan 合同预检 / 明确命名的
GATE_*检查点的决策判断本身(GATE 不是产出阶段,任何代码或文档制品都不得以"这是 GATE 工作"为名亲自执行);以及各 SKILL 正文中已用「此阶段由编排器亲自执行,不委派子代理」明确静态标注的阶段(例如 implement 的合同检查与预检 [1/6] 与 Closure 收口 [6/6]、story 的 Constitution 检查与编排器独立验证、fix 的问题诊断)。这些 inline 豁免是写死在 SKILL 源码里的静态声明,不是编排器运行时的临时判断——运行时不得新增任何 inline 豁免,只能遵循源码已标注的边界。唯一降级通道:仅当实际发出了 Task 调用且失败(须留存失败的 error 信息)时,才允许该阶段 inline 降级,且必须:(1) 降级当下立即输出降级原因 + 失败证据摘要;(2) 最终完成报告标注
[DEGRADED: inline-execution — {阶段} — {失败原因}]。未实际尝试 Task 而直接 inline = 违反本约束,不存在其他豁免。
从恢复点继续执行后续阶段(读取已有制品,不重新生成)。恢复后的每个阶段按以下模式执行:(1) 输出进度提示 "[N/10] 正在执行 {阶段中文名}..." → (2) 读取子代理 prompt 文件 → (3) 构建上下文注入块 → (4) 通过 Task tool 委派子代理 → (5) 解析返回 → (6) 检查质量门 → (7) 输出完成摘要。
上下文注入块模板(追加到每个子代理 prompt 末尾):
---
## 运行时上下文(由主编排器注入)
**特性目录**: {feature_dir}
**特性分支**: {branch_name}
**前序制品**: {已完成阶段的制品路径列表}
**配置**: {相关配置片段}
**恢复模式**: 从 Phase {N} 恢复
**项目上下文**: {project_context_block}
---
各阶段的详细编排逻辑(子代理调用、质量门触发、完成报告)与 $spec-driver-feature 一致,请参考 run 技能的工作流定义。
恢复模式下同样必须执行 feature 模式定义的 GATE_RESEARCH 在线调研硬门禁,不得因“已有部分制品”跳过。
恢复模式完成或暂停后,追加一条本地 run summary:
node "$PLUGIN_DIR/scripts/record-workflow-run.mjs" --project-root "{project_root}" \
--workflow-id "spec-driver-resume" \
--run-id "{branch_name}" \
--result "{success|partial|paused|failed}" \
--rerun \
--artifact "{feature_dir}/spec.md"
如能确定恢复起点或卡点,补充 --rerun-phase "{phase}" 与 --gate-pause;不得记录完整 prompt 正文。
从 spec-driver.config.yaml 读取模型配置:
1. --preset 命令行参数(临时覆盖,最高优先级)
2. spec-driver.config.yaml 中的 agents.{agent_id}.model(仅当该子代理显式配置时生效)
3. 当前 preset 的默认配置
模型名在 Task 调度前按 run 模式的“运行时兼容归一化”执行一次转换:
model_compat.runtime 决定按 claude 或 codex 映射(auto 为默认)opus/sonnet/haiku 映射到 gpt-5.4,并使用 codex_thinking 选择思考等级(medium|high|xhigh)model_compat.defaults.{runtime} 并记录 [模型回退]配置文件路径: $PLUGIN_DIR/templates/spec-driver.config-template.yaml(模板)或项目根目录 spec-driver.config.yaml(用户配置)。