关于 unit-executor
用于在 Pipeline 工作区中执行恰好一个符合条件的 Unit,涵盖选择、验收检查和提交。它会记录带证据的完成结果或可诊断的阻塞原因,然后停止,不会启动下一个 Unit。
主要功能
- 01选择一个符合条件的 Unit
- 02开启并跟踪执行 Attempt
- 03运行 Unit 声明的 Skill
- 04检查验收条件和严格质量规则
- 05提交完成状态或阻塞原因
适用场景
- 01执行一个已就绪的 Pipeline Unit
- 02记录 Unit 受阻及具体原因
- 03提交完成前核验输出文件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ willoscar/ research-units-pipeline-skills --skill unit-executor安装后在 Claude Code 中输入/unit-executor确认已加载。
附带文件scripts/run.py
详细介绍
单元执行器
首要原则是原子性:一次调用只拥有一个单元尝试,并且只能提交一个已接受的完成结果,或记录一个可诊断的阻塞。它绝不会启动第二个单元。
输入
UNITS.csv和选定的单元行。- 该行
inputs字段声明的文件。 - 当单元受检查点门控时,使用
DECISIONS.md。
输出
- 单元
outputs字段声明的文件。 - 更新后的
UNITS.csv、运行证据,以及可选的STATUS.md投影。 - 当严格质量检查阻止完成时,生成
output/QUALITY_GATE.md。
步骤
1. 对齐并选择一个单元
通过 Pipeline 适配器检查工作区。选择指定的单元,或第一个依赖项均为 DONE 的 TODO 单元。当人工检查点、未解决的决策、未关闭的尝试或完整性故障阻碍选择时,停止。
完成标准:恰好选中一个符合条件的单元,或记录一个包含明确后续操作的阻塞条件。
2. 开始尝试
通过适配器开始语义工作,绝不通过编辑状态单元格来实现:
uv run python scripts/pipeline.py mark \
--workspace workspaces/<name> \
--unit-id <U###> \
--status DOING \
--note "starting semantic execution"
完成标准:单元状态为 DOING,且有一个匹配的未关闭尝试拥有此次执行。
3. 执行声明的技能
读取选定单元的技能,以及此分支所需的上下文指针。生成声明的输出,不更改无关的工作区产物。
完成标准:每个必需的输出均已存在,或失败足够明确,可以提交为 BLOCKED。
4. 验证并提交完成结果
按要求评估单元验收规则和严格质量契约。通过适配器提交:
uv run python scripts/pipeline.py mark \
--workspace workspaces/<name> \
--unit-id <U###> \
--status DONE \
--note "acceptance checked"
当未通过验收时,使用 BLOCKED 并提供明确原因。不要直接编辑 UNITS.csv;适配器会对齐尝试、产物、清单、决策和状态投影。
完成标准:完成结果为 DONE,并附有验收和来源证据;或为 BLOCKED,并附有可诊断的失败信息。
5. 一个单元后停止
刷新工作区投影,并报告已完成或受阻的单元。不要声称已端到端完成,也不要启动下一个符合条件的单元。
完成标准:此次调用期间,恰好一个单元的执行状态发生变化;下一位操作者可以从工作区文件继续执行。
上下文指针
UNITS.csv中选定的行包含依赖项、输入、输出、验收条件、检查点和技能标识。- 选定的技能决定语义行为。
- 已锁定的 Pipeline 负责跨单元门控和目标产物。
- 使用
research-pipeline-runner在多个单元间自动继续执行。
脚本
快速开始
uv run python .codex/skills/unit-executor/scripts/run.py \
--workspace workspaces/<name>
所有选项
--workspace <path>:现有工作区。--unit-id <U###>:执行一个符合条件的特定单元。--inputs、--outputs、--checkpoint:与 Pipeline 运行器兼容的参数。--strict:阻止类似脚手架的输出,并写入质量门报告。
示例
严格运行恰好一个单元:
uv run python .codex/skills/unit-executor/scripts/run.py \
--workspace workspaces/<name> \
--strict
等效的适配器命令:
uv run python scripts/pipeline.py run-one \
--workspace workspaces/<name> \
--strict
帮助程序在 DONE 或 IDLE 时返回 0,在 BLOCKED 或 ERROR 时返回 2。
故障排查
- 当没有可运行的单元时,请检查依赖项、检查点审批和未关闭的尝试,然后再更改状态。
- 当
DONE单元缺少输出时,请通过适配器重新打开该单元,并附上说明;切勿只修复 CSV 投影。