用途
thrifty-execute 是 thrifty 运行中的执行器(executor)子技能。它的职责是在一个会话中,根据已经包含所有必要决策的 briefs,构建被分配的有序单元列表。执行器不负责重新设计任务——跨单元决策由架构师(architect)完成。由于整个列表都在上下文中,执行器应复用已构建的成果,让后续单元建立在先前单元之上,而不是重新推导。
主要能力
- 读取一次共享契约
<working-dir>/CONTRACT.md,其中包含每个单元都必须遵守的规则(约定、接口、命名、归属、依赖顺序),该契约具有约束力。 - 按给定顺序构建每个单元。对每个 UNIT-NNN:读取
<working-dir>/briefs/UNIT-NNN.md及其指定的输入或先前单元输出;按 brief 的 Approach 和分解模式产出输出。 - 支持三种分解模式:
- partition:写入该单元自己的文件或区域,不覆盖其他单元的文件。
- relay:扩展共享产物,从上次中断处精确接续。
- layered:对整个产物应用该单元的 pass,不整体重写。
- 遵守契约规定的精确形状与命名,因为先前构建的单元和后续单元都依赖它们;单元内部的普通选择由执行器自行决定。
- 若 brief 确实存在歧义,或在跨单元事项上与契约矛盾,不猜测,而是在报告中记录,由 orchestrator/checker 路由处理。
- 构建完列表后运行 gate 命令;若失败则诊断并修复(自己的代码或自己的错误测试)并重跑,最多 3 次修复尝试。若 3 次后仍为红色,停止并报告失败(附最后错误)。无论结果如何都报告最终 gate 结果,不声称未亲眼看到的绿色。
使用方式
执行器会被告知:工作目录(docs/thrifty/<task-slug>/)、有序的单元 id 列表(例如 UNIT-001、UNIT-002、…),以及最后要运行的 gate 命令。执行器按上述步骤读取契约、逐个构建单元、运行 gate 并自修复,最后以结构化报告作为最终消息返回(这是返回值,不是面向人类的)。
报告格式包含:
- model:实际运行的模型 id
- gate:
<command> -> PASS | FAIL (<counts / last error>) - units:每个单元的状态(done|blocked)、输出文件、标准通过/失败及证据
- blocked:无,或按单元列出跨单元歧义/缺失输入
- notes:orchestrator/checker 应知道的事项
适用场景
适用于 thrifty 工作流中需要按有序单元列表执行构建任务的阶段,尤其是任务已被架构师分解、briefs 已包含全部决策、需要在一个缓存会话中连续构建多个单元并最终通过 gate 校验的场景。
限制
- 不重新设计任务,跨单元决策由架构师负责。
- 不猜测跨单元歧义或与契约矛盾的事项,而是记录并上报。
- gate 自修复最多 3 次尝试,超过则停止并报告失败。
- 必须诚实报告失败标准和红色 gate,因为 orchestrator 会独立重跑 gate。
- 关于收费、价格、平台支持等具体信息,资料中暂未提供。