用途
relay-plan 是 relay 工作流中的一个规划环节,用于为一次 relay 运行准备审查与评估相关的内容。根据资料描述,它适用于以下场景:
- 为一次 relay 运行构建审查锚点、结构化评估通道以及派发提示词;
- 将任务意图、明确的验收标准(AC)、仓库信号和风险转化为可审查的 Done Criteria;
- 在派发前持久化由规划者撰写的 Done Criteria。
它不适用于以下场景:
- 在规划前对模糊任务进行塑形——应使用 relay-ready;
- 将实现委派给执行者——应使用 relay-dispatch;
- 审查执行者输出——应使用 relay-review;
- 落地已审查的 GitHub 变更——应使用 relay-merge。
relay-plan 只输出交接产物;实际运行 relay-dispatch 由 relay 或操作者完成。
主要能力
根据资料,relay-plan 的核心流程包括:
- 读取任务:根据 /relay 源闸门选定的路由读取任务。relay-ready 交接简报若存在则以其为准;GitHub 路由可带 issue 编号(经源闸门后使用
gh issue view,查找失败则 fail closed);本地路由使用本地任务文本或用户描述,且不得查询 forge。 - 采集规划信号:运行
node "${RELAY_SKILL_ROOT:-skills}/relay-plan/scripts/probe-executor-env.js" . --project-only --json,读取仓库本地质量信号与相关 harness 上下文,作为弱输入。 - 归一化规划输入:将明确 AC、推断的 Done Criteria、relay-ready 交接、项目 harness 上下文、仓库信号、可选子系统侦察笔记和任务风险保持为独立证据通道。
- 恢复 Done Criteria:识别评估来源模型(明确 AC、推断 Done Criteria、仓库信号、任务特定风险),在 AC 缺失、模糊或不完整时先撰写可观察的 Done Criteria,并在冻结前运行歧义预检。
- 构建评估通道:将 Outcome Contract、Verification 和可选 Earned Rubric 分开。冻结的 Done Criteria 即契约。资料给出了最小 artifact 的 YAML 结构,其中 verification 下放命令类检查,earned_rubric.factors 可为空数组。
- 验证并简化通道:交接前进行快速门控,检查 Outcome Contract 项是否二元且可观察,Verification 检查是否命名了具体证据,Earned Rubric 可为空且不含例行卫生项。
- 按需持久化规划者撰写的 Done Criteria:仅当规划写入最终 Done Criteria,或扩展、拒绝、收窄 issue body AC 时持久化。使用
persist-done-criteria.js脚本,指定输出路径,且该步骤不会分配 run id,也拒绝输出到 ~/.relay/runs 下。 - 发出交接产物:将派发提示词与评估 YAML 写入临时文件,提示词使用 prompt-template.md 并追加 Setup、可选 Working Guidance、Evaluation Channels 和 Completion Responsibilities。返回交接摘要,包含派发提示词路径、rubric YAML 路径、Done Criteria 锚点路径(若已持久化)以及推荐的 relay-dispatch 命令。
使用方式
资料中给出的关键命令与文件:
- 环境变量:
RELAY_SKILL_ROOT,可选,默认值为skills。 - 输入文件:relay-ready 交接、issue/用户文本、可选的本地任务文本、可选的本地 harness 上下文(AGENTS.md、CLAUDE.md、CHARTER.md、spec/capabilities.md、活动 sprint 笔记)、可选的
/tmp/done-criteria-<N>.md、/tmp/dispatch-<N>.md,以及兼容命名的/tmp/rubric-<N>.yaml评估产物。 - 兄弟脚本:
${RELAY_SKILL_ROOT:-skills}/relay-plan/scripts/probe-executor-env.js、${RELAY_SKILL_ROOT:-skills}/relay-plan/scripts/persist-done-criteria.js、${RELAY_SKILL_ROOT:-skills}/relay-dispatch/scripts/dispatch.js。 - 持久化命令:
node "${RELAY_SKILL_ROOT:-skills}/relay-plan/scripts/persist-done-criteria.js" \
--output /tmp/done-criteria-<N>.md --file /tmp/done-criteria-source-<N>.md --json
- 推荐的派发命令(由 relay-dispatch 执行,relay-plan 不运行它):
node "${RELAY_SKILL_ROOT:-skills}/relay-dispatch/scripts/dispatch.js" . \
--branch issue-<N>-<slug> --prompt-file /tmp/dispatch-<N>.md --rubric-file /tmp/rubric-<N>.yaml \
--done-criteria-file <done-criteria-path>
当第 7 步持久化了 Done Criteria 时,派发交接必须同时保留两个锚点。
风险评估附加项
资料说明了风险触发的附加项,仅在任务证据支持时使用,不应把参考清单复制进提示词,包括:rubric 模板脚手架、TDD 风格因子、task_profile 或工作指导、领域 rubric 思路、观察优先的领域问题、信任边界与 fail-closed 行为、文件/路径精度等 rubric 模式、L/XL 歧义下的只读侦察、以及针对新颖/模糊/高风险/易被钻空子的 Done Criteria 的压测轮次。资料还提到,审查反馈后重新派发时应保持原始锚点固定,之前尝试的证据和审查者反馈会自动前置。
限制
资料明确指出:relay-plan 只发出交接产物,不运行 relay-dispatch;持久化步骤不会分配 run id,并拒绝输出到 ~/.relay/runs 下;本地路由不得查询 forge。关于该技能支持的平台、收费或价格信息,资料中暂未提供。