Files
Rune-Spec/openspec/changes/configurable-pipeline/proposal.md
lanyuanxiaoyao a6b76b690a docs: 新增 configurable-pipeline 变更提案,探索可配置多阶段流水线模型
- proposal/design/specs/tasks:将固定 5 阶段重构为可配置 pipeline(discuss + pipeline + archive 三明治结构)
- 引入 stage 完成判定(文档落地基线 + 可选 validate 实质门禁)与 finish 硬门禁
- 保留 explore 会话记录 session-ses_1357.md 作为思考溯源
2026-06-15 19:04:03 +08:00

3.7 KiB
Raw Blame History

Why

当前 Rune 把 5 个固定阶段discuss→plan→task→build→archive硬编码在 6 处源码里types/cli/assembler/scanner/defaults/adapters用户无法自定义阶段流程。不同项目需要不同的工作流有的要 code-review 阶段,有的不需要 design但框架不给出任何灵活性。更严重的是唯一的不可逆操作 finish(归档移动目录)不校验前置阶段是否完成——agent 可以跳过任意阶段直接归档,流程约束形同虚设。

需要一套可配置但可强制的流水线模型用户自定义阶段CLI 用"文档落地 + 可选 validate"作为完成判据,finish 硬门禁拦住跳过。

What Changes

  • BREAKING 移除固定的 STAGES 常量和 5 个 Stage 接口,替换为通用 StageConfig 结构
  • BREAKING 移除 cli.ts 里 5 个硬编码 command替换为从配置动态生成的 stage 命令
  • BREAKING 移除 assembler.ts 里 5 个专用 assembleXxxPrompt 函数,替换为 1 个通用 assembleStagePrompt
  • BREAKING 移除 scanner.ts 里 planCompleted/buildUnlocked 等固定语义函数,替换为配置驱动的完成判定
  • 引入三明治结构:discuss固定pipeline 之前,无门禁,不产文档)+ pipeline(可配置的线性阶段序列)+ archive固定pipeline 之后,终端收尾)
  • 每个 pipeline 阶段产出且仅产出一个 <stage-id>.md 文档;文档存在 = 基线完成
  • 每个阶段可配置可选的 validate 函数JS接收 changeDir通过 = 实质完成
  • finish 升级为硬门禁:所有阶段实质完成才允许归档
  • 默认 pipeline 拆成 5 个阶段:[requirements, design, plan, task, build](把旧 plan 的 3 文档拆成 3 个线性阶段,消除多文档特例)
  • discuss 命令保留,行为不变(输出讨论提示词)
  • 新增配置 schemastages 数组,每项含 id/prompt/可选 validate

Capabilities

New Capabilities

  • pipeline: 可配置的流水线模型——配置格式、stage 结构id/prompt/validate、默认流水线、stage id 命名规则
  • stage-completion: 阶段完成判定机制——文档落地(基线 done+ validate 函数(实质 done、两档门禁软门禁挡 stage 命令、硬门禁挡 finish
  • flow-commands: 流程驱动 CLI 命令——discuss固定前置、动态 stage 命令软门禁、finish硬门禁+归档、status审计可见性

Modified Capabilities

无——openspec/specs/ 为空,全部为新建。)

Impact

  • 源码重构6 处固定阶段渗透点全部替换):
    • src/types.ts:移除 STAGES + 5 个 Stage 接口,新增 StageConfig/PipelineConfig 类型
    • src/cli.ts5 个硬编码 command → 从配置动态注册 stage 命令
    • src/core/assembler.ts5 个专用函数 → 1 个通用 assembleStagePrompt
    • src/core/scanner.ts:固定语义 → 配置驱动的通用扫描+完成判定
    • src/core/config.ts:新增 pipeline schema 校验stage id 唯一性、字符集、validate 语法)
    • src/defaults/config.ts5 个固定 prompt → 默认 5 阶段 pipeline 配置
    • src/adapters/opencode.tssrc/adapters/claude-code.tsfor(stage of STAGES) → 从配置注入
  • validate 执行引擎(新增):解析 JS 函数字符串 + 注入 changeDir + 执行 + 捕获结果/异常
  • finish 门禁(新增/修复):归档前校验所有阶段实质完成
  • 配置 schema 变更:用户现有 .rune/config.yaml 的 stage 配置不兼容BREAKING需提供迁移指引或 init 重新生成
  • 测试scanner 完成判定、validate 执行、gate 逻辑、动态命令注册均需新测试覆盖