ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

delegate-relay.result.v1 逐字段拆解:delegate-skills 结果契约完全参考

delegate-relay.result.v1 逐字段拆解:delegate-skills 结果契约完全参考 delegate-relay.result.v1 逐字段拆解delegate-skills 结果契约完全参考【免费下载链接】delegate-skillsDelegate a coding task to a separate coding agent CLI, review the diff, land the commit yourself — one per implementer.项目地址: https://gitcode.com/gh_mirrors/de/delegate-skills在delegate-skills中你委派给任意编码代理Codex、Claude Code、Cursor……的每次运行最终都会落成一个结构化文件result.json它的schema值统一为delegate-relay.result.v1。这份结果契约result contract是所有 16 个*-delegaterelay 共用的一门通用语言读懂它一次就学会如何审查任何实现器交回来的成果。本文逐字段拆解这份契约——公共字段、成败判定、交付物字段、诊断字段一个不漏是排查委托任务的第一份参考。完整背景见 README.md字段与排障细节出自各技能自带的 dispatch-and-poll.md 与 review-and-land.md。一、result.json 是什么写在哪每次派发relay 会在一个运行目录里写好五件套brief.txt发出去的 brief 原文、events.jsonl原始事件流、final.txt实现器最终报告、stderr.txt完整 stderr、以及本次的主角result.json。{ schema: delegate-relay.result.v1, lane: null, workdir: /path/to/repo, model: null, effort: null, startedAt: 2026-10-06T00:47:11.000Z, finishedAt: 2026-10-06T00:49:32.000Z, briefPath: /tmp/delegate-relay/repo-20261006/brief.txt, eventsPath: /tmp/delegate-relay/repo-20261006/events.jsonl, finalPath: /tmp/delegate-relay/repo-20261006/final.txt, stderrPath: /tmp/delegate-relay/repo-20261006/stderr.txt, status: completed, exitCode: 0, signal: null, finalMessage: 已完成 billing 模块重构……, touchedFiles: [M services/billing/ledger.ts, A services/billing/ledger.test.ts] }两个关键设计新手最容易被它坑到原子写入relay 先写一个临时文件再rename成result.json轮询方永远不会读到写了一半的残缺 JSON。轮询判据运行是否结束看进程已退出且result.json里有status而不是看屏幕上某行状态提示。二、公共字段每个 relay 都有2.1 运行定位字段字段含义说明schema契约版本号当前固定为delegate-relay.result.v1lane车队车道名用 delegate-setup 的车道派发时才有值直接派发为nulllaneSource车道来源全局配置或项目配置workdir运行工作根目录即传给实现器的--cd值2.2 运行配置字段字段含义说明model使用的模型未指定时nulleffort推理强度未指定时nullresumeLast/session恢复状态是否续接会话及具体会话 idcleanEnv/keepEnv环境处理keepEnv只记变量名、绝不记值避免泄露密钥startedAt/finishedAt起止时间ISO 时间戳2.3 运行产物路径字段字段指向briefPathrelay 实际发出去的 brief 原文eventsPath原始 JSONL 事件流events.jsonlfinalPath最终报告文件没生成时为nullstderrPath完整 stderr 日志stderr.txt这些路径就是出事了去哪看的导航报告不全看eventsPath诊断不够看stderrPath。三、判定字段任务到底成没成这是审查时最核心的三个字段。3.1status五种取值status触发场景completed实现器正常完成退出码 0 且看门狗未触发failed实现器非零退出 / 启动失败 / 版本预检失败timeout--timeout看门狗到点子进程被杀掉abortedrelay 自己被外部杀死父进程超时、任务停止、终端关闭并把 kill 转发给了实现器实现器_unavailable如codex_unavailable二进制缺失退出码 1273.2exitCode映射速查退出码触发场景是否写result.json2运行前参数错误错误参数、空 brief否直接退出127实现器二进制不在 PATH是status为实现器_unavailable0实现器成功是status为completed非0实现器失败是status为failed128 信号号子进程被信号杀死是signal记录信号124版本预检超时是status为timeout一个反直觉但重要的规则timeout下即使子进程被 SIGTERM 后退出 0relay 也会强制给出非零退出码——超时永远不算成功。3.3signal与主机杀进程提示SIGKILL多为宿主OOM killer或看门狗超时杀掉不是实现器本身的错SIGTERM外部终止监督进程、会话结束、手动 kill若是relay 自己动手则会改报timeout或aborted。四、交付物字段审查的起点字段含义判读finalMessage实现器自己的最终报告空字符串 退出前没产出报告按失败处理touchedFiles工作根目录的git status --porcelain行你的审查清单起点touchedFiles有三个三态要分清null不是[]git 无法报告——缺git或非仓库下用了--skip-git-repo-check[]git 正常跑了且工作树是干净的有内容列出实现器动过的文件。⚠️ 提醒touchedFiles是运行后的git status它显示不了被忽略文件、被回滚的改动或仓库外的写入。它是审查助手不是安全保证——详见 review-and-land.md。五、诊断字段失败时看这里字段出现时机说明stderrTail所有非completed的运行stderr 末尾 64 KiB 内最多 20 行非空行被截断的首行会标注[truncated]error启动失败、timeout、aborted一句话说明根因如看门狗到点被杀stderrTail是摘要要看全貌就打开stderrPath指向的完整日志。六、实现器特有扩展字段契约的骨架是共享的但每个实现器会带上自己的身份字段字段出现于说明codexVersion/threadId/sandboxCodex实际运行的版本、供后续--session恢复的线程 id、应用的沙箱模式claudeVersion/sessionId/numTurns/usage/totalCostUsdClaude Code版本、会话 id、轮次、用量、成本grokVersion/trustedGitRoot/autonomyGrok版本、git 信任根、自主级别commandCodeVersion/resultLine/readOnlyViolationCommand Code版本、result 行可信度、只读违规判定readOnly/readOnlyViolationclaude / grok / zcode / commandcode / agy只读运行标记与三态违规探针版本字段统一命名实现器Version会话 id 字段因 CLI 而异threadId/sessionId/runId…。这些正是 relay-parity 测试 要保证共享逻辑跨 relay 字节一致的原因。七、如何消费这份契约实操派发node relay.mjs --brief brief.txt --cd /path/to/repo或后台运行 轮询。判完成进程退出且result.json出现并带status同时别忘了退出码退出 2 参数错误根本没写文件。看statuscompleted进入审查failed/timeout/aborted先读stderrTail与error。对交付物用touchedFiles作清单开 diff重跑项目门禁你来 commit——relay 永不提交。重做带--session id只发增量 brief 续接会话而不是整段重贴。八、字段总览速查表类别字段定位schema、lane、laneSource、workdir配置model、effort、resumeLast、session、cleanEnv、keepEnv时间startedAt、finishedAt产物路径briefPath、eventsPath、finalPath、stderrPath判定status、exitCode、signal交付物finalMessage、touchedFiles诊断stderrTail、error扩展各实现器*Version、会话 id、readOnly、readOnlyViolation等读懂delegate-relay.result.v1就等于拿了一把通用的钥匙换个实现器审查流程完全不变——这正是 delegate-skills 学一次、随处用的设计初衷。【免费下载链接】delegate-skillsDelegate a coding task to a separate coding agent CLI, review the diff, land the commit yourself — one per implementer.项目地址: https://gitcode.com/gh_mirrors/de/delegate-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表