Firstmate Scout 完成与晋升(Promotion)实战指南:调查报告、完成门控与实施交付

发布时间:2026/9/29 5:59:18

Firstmate Scout 完成与晋升(Promotion)实战指南:调查报告、完成门控与实施交付 【免费下载链接】firstmateTalk to one agent. Ship with a crew.项目地址https://gitcode.com/gh_mirrors/fi/firstmate点击查看免费下载导读本指南围绕 firstmate 仓库中scout-completion技能.agents/skills/scout-completion/SKILL.md展开讲解侦察型scout任务完成后的一整套收尾与晋升promotion机制如何以自包含报告为唯一交付物安全回收临时工作树、如何通过 captain-hold 共享完成门控放行清理、视觉类成果如何遵循 crew 托管的 Lavish 看板契约以及在实施被单独授权时如何用bin/fm-promote.sh原地晋升而非重复派单。读完本文你将掌握 firstmate 中 scout→ship 全生命周期中每一个判定点、命令行参数与底层守卫的完整用法。一、背景scout 任务在 firstmate 中的定位firstmate 是Talk to one agent. Ship with a crew.的 Agent 发行版你只与 firstmate 对话由它调度整个 crewREADME.md。在任务形态上firstmate 明确区分两种任务README.mdShip交付型交付经授权的代码变更产物是 PR、本地合并或按项目模式落地的变更Scout侦察型交付的是知识而不是代码变更。按 AGENTS.md 的正式定义scout 任务的产物是data/id/report.md独立调查报告绝不产出 PR。它适用于以下场景船长明确要求独立的知识型/设计型交付物或存在会实质影响做什么、是否做的不确定性——即调查、诊断、规划、复现、审计类工作。scout 任务在底层由bin/fm-spawn.sh --scout创建并在任务元数据中记录kindscoutbin/fm-spawn.sh。与 ship 任务的关键差异在于scout 不记录任何交付姿态mode / yolo / ship branch它的工作树被声明为**临时scratch**性质唯一的工作产品是报告文件。二、完成即报告自包含报告是丢弃工作树的唯一前提scout-completion技能的第一条硬性约束是A completed scout must leave a self-contained report before its scratch worktree can be discarded.也就是说scout 的临时工作树只有在报告已存在的情况下才允许被丢弃。这一约束在清理脚本中有对应的实现证据bin/fm-teardown.sh 的头部注释明确写道Scout tasks (kindscout in meta) carve out of that check: their worktree is declared scratch and the report atdata/task-id/report.mdis the work product. Teardown proceeds only once the report exists and the shared unresolved-decision completion gate verifies its captain-held inventory.对应地teardown 在关闭任务时以--report $data_relative/$ID/report.md将报告写入积压任务的完成字段bin/fm-teardown.shdata/id/report.md就是 scout 的完成链接。自包含self-contained的实操含义报告必须承载调查的全部结论、证据与后续建议因为工作树随即被回收一切留在工作树里而未写进报告的信息都会永久丢失。firstmate 对信息边界的规范也与此一致——任务级备注属于积压条目而调查发现必须进入 scout 报告AGENTS.md。三、收尾三动作读取转达、记录 Done artifact、重新评估队列技能规定 scout 完成后 firstmate 需要依次执行三个动作读取并转达read and relay完整读取data/id/report.md将调查发现转达给相关方。注意角色约束——ship 与 scout worker 从不直接与船长对话所有通信都经 firstmate 中转AGENTS.md。将报告记录为 Done artifact报告本身即为该任务的完成产物见上文 teardown 的--report写入路径。重新评估队列re-evaluate the queue调查往往会改变后续待办——某个问题被排除了、某个方案被证实不可行、或产生新的实施建议因此 scout 收尾后应结合报告重新审视 backlog 队列。四、报告只能建议实施绝不授权实施技能中有一条容易被忽略、但极其关键的权力边界A report may recommend implementation but does not authorize it.scout 报告的定位是知识交付物它可以建议实施某项修复、可以描述复现步骤与根因但它本身不构成实施授权。实施是一项独立的授权决策必须由船长或按项目既定授权流程另行批准。这条边界的意义在于防止调查结论被自动当作开工令——在 firstmate 的项目边界设计中crew 对项目的一切代码变更都必须位于配置好的合并授权merge authority之后。五、共享完成门控先加载 captain-hold-lifecycle技能要求在把调查或任何视觉评审视为完成之前必须加载captain-hold-lifecycleteardown 会强制执行这一共享完成门shared completion gate。这条要求的实质是scout 的调查结论可能触发或关联船长决策captain call。在 firstmate 中决策不是独立实体而是被船长持有的普通积压任务docs/captain-hold-lifecycle.md。因此scout 的清理流程必须经过bin/fm-captain-hold.sh的verify子命令——它是专为 scout teardown 设计的只读检查docs/captain-hold-lifecycle.md在移除任何源码状态之前、检查报告之后运行校验三件事记录的 attestation已验证清单存在清单中每个条目的 captain-held 任务仍然持久要么仍处于活动 hold 状态要么已带有记录的 answer自上次complete之后没有新开启的 keyed 状态决策。其中第三项一旦失败verify即拒绝放行修复方式是重新运行complete--force则是船长明确批准的丢弃逃生通道但它不会解除推迟deferral也不会代替船长回答——它授权丢弃未落地的工作绝不授权丢弃船长的提问docs/captain-hold-lifecycle.md。从源码结构看这一门控被设计为共享verify是只读的通用检查任何一处会销毁 scout 源码状态的清理路径都必须经过它从而保证船长决策未被回答/复核时调查源码绝不会被静默抹除。该机制的完整回归套件位于 tests/fm-captain-hold-lifecycle.test.sh其中明确覆盖了仅报告、未解决船长决策的 scout 拒绝--none完成与非强制的 scout teardown 始终要求持久清单校验两类场景docs/captain-hold-lifecycle.md。六、视觉成果遵循 crew 托管的 Lavish 看板契约当 scout 的交付物是一个供船长迭代的视觉 artifact如 HTML 报告、看板卡片时技能要求keep it alive and follow the crew-hosted Lavish board contract indocs/configuration.mdrather than arming or polling the board from firstmate.其核心原则是所有权归属托管 Lavish 看板的活跃任务worker拥有该看板的 listenerfirstmate 作为调度方绝不亲自 arm 或轮询看板。具体契约记载于 docs/configuration.md要点如下环节操作说明打开 artifactlavish-axi打开artifact.html保存会话以识别看板所在服务器轮询前必须存在有效会话证据武装armbin/fm-procevent-lavish.sh arm artifact.html --for task-id仅 worker 执行arm在 process-event 所有者确认 listener 已运行后才打印armed任务无有效端点元数据时拒绝武装确认一轮re-arm同一 owner 再次arm即对该轮捕获的确认可携带--agent-reply-file path暂存 agent 回复结束终轮concludebin/fm-procevent.sh handled source-id sequence终态结果含session_ended、空 End送达 owner 并附带停止指令handled是唯一收尾与退役方式要点提醒武装时若同看板的旧 listener 在确认窗口内仍持有看板arm以still-listening而非armed退出新注册需等源退役后重新武装才生效捕获结果以不可变的 task-owner 路由证据直接投递到该任务的 steering inbox不需要 firstmate 的check唤醒只要存在未确认的捕获轮一切退役路径含 runner 的终态退役与显式retire都会拒绝并点名需要先确认的轮次若托管 worker 无法恢复先重启 worker 重新托管firstmate 的守卫式接管仅作为最后手段且必须先证明旧声明已死亡。这一契约的意图很明确看板的反馈回路归 worker 所有firstmate 只负责在结果产生后读取与决策从而避免调度方与执行方对同一设备的并发争用。七、晋升路径用 fm-promote.sh 原地晋升绝不重复派单当实施被单独授权后技能给出的路径是promote the existing scout throughbin/fm-promote.shrather than creating a duplicate task.晋升promotion的核心理念是原地换约in-place contract flipworker 的窗口、工作树、已加载上下文全部保留只有契约发生变化。bin/fm-promote.sh头部注释对此有精确描述bin/fm-promote.sh。7.1 命令用法fm-promote.sh task-id --mode no-mistakes|direct-PR|local-only --yolo on|off [--branch-prefix prefix]三个关键参数的含义与取值规则参数取值说明--modeno-mistakes/direct-PR/local-only该任务的交付模式。scout 不记录交付姿态因此晋升是决定交付契约的时点必须在晋升时显式决定脚本拒绝猜测--yoloon/off该任务的合并自主权同样是任务级决策而非项目查询--branch-prefix任意合法 git 分支前缀默认fm/与任务 id 拼成 ship 分支名fm/task-id必须通过git check-ref-format校验值得注意的边界规则均有源码级守卫no-mistakes-prod-only是注册表registry策略而非任务模式晋升时拒绝须将任务表面分类解析为no-mistakes或direct-PR没有--forge参数forge 绑定来自注册表bin/fm-project-mode.sh --forge project属于项目事实而非逐任务决策对未绑定项目的任务forge 为noneGerrit forge 下--yolo on被拒绝Code-Review2是具名人类批准的正面声明firstmate 不得伪造船长 2026-09-15 决策见 bin/fm-promote.sh晋升参与生命周期串行化先取 control 锁再取 meta 锁任何其他生命周期动作进行中时晋升会被拒绝bin/fm-promote.sh晋升前提是任务元数据中存在kindscout否则拒绝。7.2 晋升前的 brief 守卫晋升会读取 scout 的 briefdata/id/brief.md并做多项内容校验bin/fm-promote.sh拒绝残留的{TASK}/{FIRSTMATE_SPEC}占位符——船长的原始诉求必须保存在## Captains intent中## Captains intent与## Firstmate spec必须非空## Captains intent不得含有以 Captain 标签或地址开头的行标题已记录出处正文不得重复身份标注未采用小节化结构的旧式 scout brief只把显式标记为船长话语的 Task 行计入 intent且读取范围排除围栏代码块与缩进示例防止被引用的Captain:样例冒充船长指令通过出处门bin/fm-dod-lib.sh。7.3 晋升写入了什么晋升在元数据与文档两个层面完成契约翻转元数据翻转bin/fm-promote.sh以原子方式把kindscout替换为kindship并写入mode、yolo、branch三行——这正是 scout 缺失、由晋升时点决定的交付契约。同时通过fm_backlog_atomic_transition发布保证记录发布是原子、可重放的。Ship 指令生成晋升生成data/task-id/ship-instructions.md结构为bin/fm-promote.sh# Task→## Captains intent完整保留 scout brief 中的船长原话## Firstmate spec晋升期的 ship 指令即下文第七节 7 步义务# Current delivery mode contractmode forge、ship 安全规则fm_ship_rule_one、no-mistakes 模式下的 ask-user 升级块、以及由单一所有者bin/fm-dod-lib.sh渲染的模式专属 Definition of donefm_dod_block。关键设计被晋升的 worker 收到的交付契约与普通 ship brief 完全一致包括 no-mistakes 模式的 ask-user 升级规则与--yes禁令——脚本注释明确指出被晋升的 no-mistakes worker 从未收到 ask-user 升级规则与--yes禁令正是旧实现遗留的交付漏洞bin/fm-promote.sh。Brief 追加同一份当前 ship 契约也被追加进brief.md确保未来任何 relaunch 都以新契约为准无法复活旧的 scout 交付规则bin/fm-promote.sh。交付指令脚本末尾打印FM_HOME... bin/fm-send.sh fm-id $(cat ship-instructions)即把 ship 指令投递给当前 worker 的确切命令bin/fm-promote.sh。对 secondmate 场景还会打印 public-followup 的 rechain 提示。八、被晋升 worker 的七步交付义务技能规定被晋升的 worker 必须完成以下义务链先验证隔离Verify isolation before anything else运行pwd -P与git rev-parse --show-toplevel两者必须解析到启动时所在的临时任务工作树如 treehouse 池路径或 Orca 管理的工作树而非 firstmate 操作的主检出任一项不符即停止并升级给 firstmate。盘点临时状态Inventory this worktrees scratch state改动任何东西之前先用git status和git log清点工作树的临时改动。回到干净的默认分支基线再创建分支git checkout -b branch --branch 即晋升时写入的 ship 分支。只携带预期的修复变更把临时提交scratch commits、调试编辑、实验文件全部留在身后。复现的 bug 转成回归测试若 scout 复现了 bug该复现必须变成回归测试随修复交付。scout 期 spec 降级为调查上下文scout 期的## Firstmate spec与任何未标记的旧式# Task文本只作为调查上下文不再是船长意图或当前 ship 指令。其余原指令原样生效状态协议、指令收件箱及确认、升级规则含 ask-user及所有安全规则继续适用除非当前交付契约明确替换了 scout 专属交付规则。这套义务在 bin/fm-promote.sh 中被完整渲染进PROMOTION_SHIP_SPEC并在 relaunch 时同样生效测试 tests/fm-control-relaunch.test.sh 覆盖了被晋升 scout 的 relaunch 使用记录的自定义分支与被晋升 scout 的 relaunch 收到当前交付契约而非陈旧 scout 交付文本两类场景。九、验证与测试证据该机制的关键行为均有自动化回归覆盖行为测试位置scout 报告存在 共享完成门通过后teardown 才移除工作树tests/fm-backend-orca.test.sh如test_scout_teardown_removes_orca_worktree_via_helper船长决策完成门verify / complete / answer 路径tests/fm-captain-hold-lifecycle.test.sh晋升的锁串行化、promoted scout 的 relaunch 契约继承tests/fm-control-relaunch.test.sh晋升对 brief 占位符与 Captain 出处门的校验tests/fm-dod-lib.test.sh从源码结构看这些测试共同钉住了一条核心不变量没有报告、没有通过船长决策门任何 scout 源码状态都不得被销毁有了授权晋升必须原地完成且新 worker 拿到的契约与普通 ship 完全一致。十、常见误区与最佳实践小结报告 ≠ 开工令scout 报告可以建议实施但实施必须单独授权未经授权就把调查结论当成实施任务会绕过 firstmate 的合并授权边界。先完成门控再谈清理任何调查已完成的判断都必须先加载captain-hold-lifecycle并满足verify校验--force不能替代船长回答。看板归 worker不归 firstmate视觉 artifact 场景下firstmate 只消费结果绝不 arm/poll 看板武装、确认、收尾都按 docs/configuration.md 的 crew 托管契约执行。晋升不重复派单实施获授权时用bin/fm-promote.sh task-id --mode ... --yolo ...原地晋升并显式给出--mode与--yolo——脚本拒绝猜测。临时状态必须隔离在 ship 分支之外被晋升 worker 先盘点、回默认分支基线、再建fm/task-id分支只携带预期修复把复现转成回归测试。通过以上机制firstmate 在调查与实施之间划出了清晰且可验证的边界知识由报告沉淀授权由契约翻转承载源码安全由共享完成门兜底——这正是 scout→ship 全生命周期可审计、可恢复、不丢工作的底层原因。深入源码可从 bin/fm-promote.sh、bin/fm-teardown.sh、docs/captain-hold-lifecycle.md 三个入口继续研读。赞分享【免费下载链接】firstmateTalk to one agent. Ship with a crew.项目地址https://gitcode.com/gh_mirrors/fi/firstmate点击查看免费下载相关推荐opencodex 稳定版发布从 preview 到 latest 的晋升promotion实战指南opencodex 稳定版发布从 preview 到 latest 的晋升promotion实战指南 本文以 opencodex 仓库发布流程档案 040零成本晋升监控专家NewRelic/Datadog认证实战指南零成本晋升监控专家NewRelic/Datadog认证实战指南 想要在云原生监控领域快速提升竞争力通过New Relic和Datadog的免费认证你完全可文档教程教育微调评估工程师Fine-Tuning Eval Engineer构建评估基准与检查点晋升门禁的完整实战指南微调评估工程师Fine Tuning Eval Engineer构建评估基准与检查点晋升门禁的完整实战指南 在 LLM 微调生命周期中评估往往被当成AI 插件AI 技能开发工具上一篇3步解锁WeMod高级功能开源Wand-Enhancer完整指南下一篇如何免费解锁WeMod高级功能开源增强工具的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/29 5:59:18

最大质因子序列:用筛法思想批量维护因子信息的经典例题

信息学奥赛一本通的1410题,在OpenJudge上对应的是1.13章节的第21题,题目名叫“最大质因子序列”。这道题在两类题库里都收录了,属于学会筛法之后“顺手就能做”的典型题目。可奇怪的是,很多初学者卡在这里,不是因为不会…

2026/9/29 5:59:18

构建企业级AI知识库:从文档解析到语义检索的完整实践指南

我没有收到具体的项目信息。请按这个格式提供输入内容,我才能基于你的项目标题拆解并生成一篇完整的博文:项目标题: [标题] 项目正文: [对项目的零散描述、技术点或场景说明] 关键词: [关键词1, 关键词2, ...] 摘要描述: [一句话简介]收到后我会直接产出…

2026/9/29 6:49:20

视觉惯性组合导航技术解析:从VIO原理到无人系统开发实践

1. 为什么说视觉惯性组合导航是无人系统绕不开的技术底座我最早接触视觉惯性组合导航,是在给一台巡检无人机做定位方案选型的时候。当时团队在两个方向之间反复拉扯:用纯视觉SLAM,便宜、信息量大,但一遇到光照剧变、快速运动就飘&…

2026/9/29 6:49:20

【Codex教育管理系统】用学生生活画像沉淀稳定生活数据

学生生活画像记录学生稳定生活条件,包括住校、通勤、学习空间、环境噪音、网络稳定和设备干扰。它是班主任查看学生生活状态的基础入口,也为生活日常、支持周报、健康事件和出勤行为的综合展示提供学生维度的主档数据。 本文基于 StudentProfileLife 及学生画像抽屉源码,把画…

2026/9/29 6:49:20

Mybatis源码-cursor(游标) 配 TaoToken:settings.json 骨架与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/29 6:49:20

Vivado安装避坑全指南:版本选择、驱动识别与License配置

下载了Vivado安装包,二十几个GB,断断续续拖了一下午,晚上点开安装器,等了快一个小时,突然弹出一个错误提示——这种场面我见得太多了。Vivado安装这件事,说难不算难,但它特别考验耐心和对环境的…

2026/9/29 6:49:20

研发管理开年规划50问:从团队、目标到技术债的破局清单

刚过完年回到工位,桌上堆着去年的复盘报告、应付各种上级需要的开年规划模板,还有十几条来自业务线的加急需求。会议室里你对着白板,想把今年研发部的工作理出头绪,结果发现翻来覆去就是那几件事:项目排期、人员缺口、…

2026/9/28 3:03:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/28 6:05:15

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/28 6:07:41

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 0:04:04

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

2026/9/29 0:04:04

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

2026/9/29 3:53:39

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/26 19:58:38

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/29 6:36:14

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑