源文件 按 main 分支生成 · 最新发布 v0.4.0

协作

点名、判断、交接、轮次。

本页
  1. 交接(Handoff)
  2. 委派(Delegation)
  3. 参与(Participation)
  4. 判断(Judgement)
  5. 点名(Mention)
  6. 拉入(Pull-in)
  7. 轮次(Turn)
  8. 改道(Redirect)
  9. 分叉(Fork)
  10. 提问(Ask)
  11. Stop
  12. 叫停(Hold)
  13. 控制句(Control line)
  14. 进度询问(Status question)
  15. 规划(Plan)
  16. 任务(Ticket)
  17. 大活(Large job)
  18. 样片(Sample)
  19. 交付(Submission)
  20. 审查(Review)
  21. 漏判(Review miss)
  22. 能力天花板(Capability ceiling)
  23. 外部作业(External job)
  24. 质量事件(Quality event)
  25. 教训(Lesson)
  26. 完工复盘(Retrospective)
  27. 工作项(Work item)
  28. 桌面段(Desk segment)
  29. 归属(Attribution)
  30. 群负责人(Group lead)
  31. 原话(User quote)
  32. 需求台账(Requirements ledger)
  33. 书记员(Scribe)
  34. 读句(Line reading)
  35. 整理跳(Organizer)
  36. 整理跳的运行记录(Organizer run log)
  37. 回看(Check-back)
  38. 监督器(Supervisor)
  39. 持球者(Ball holder)
  40. 收尾自检(Closing check)
  41. 验收检查(Acceptance check)
  42. 按你的话加的检查(Check from your words)

交接(Handoff)

一个 Bot 把工作或结果交给另一个 Bot;委派是其中明确要求处理并记着预期结果的交接,普通通知不自动等于委派。是否叫醒和怎样等结果,取决于所用的交接方式。

回避:每条私信都是委派, 发言就是交付完成, 把通知当工作请求

委派(Delegation)

一个工作项向另一个 Bot 的工作项提出的具名请求,记着同一件事、要它做什么、期待交付/审查/回答,以及是否已交回或取消。它是请求与结果的关系,不是普通聊天消息,也不是对整个人或整段会话的永久指派。细节见行为说明·委派。

行为细节

3 级已接入:delegate({to,ask,expects,ticket?,parts?,requirement_ids?,continue?}) 要求调用方是未被叫停、精确绑定工作项的运行中工作段,不接受桌面或只读段伪装。to 是 id 或准确名字,必须是未归档的另一个 Bot,并在本段、工作项主会话或规划主会话之一在场;任务/分件属于同规划,引用需求对该工作生效才收。不放低此校验来兜底未知目标。

应用记录请求、发送/接收工作项和发起轮,创建或复用接收方在同规划/可选任务的工作项及精确 Bot 对协作私聊,投一条 priority=3 的叫醒请求收件。默认 continue 不为 true 时,委派方转 waiting,记 delegation_wait,本段结束;continue:true 不建立等待,本段继续,委派关系仍在;委派方之后可做独立工作并以 answered/idle 收尾,迟到的回答仍会把符合准入的原委派方排队叫醒,不靠假造等待。接收方的开段/听进/排队仍过 I1/I1b、名额和叫停,不因为被委派就另做一遍同规划。

交付放行即回复委派(5 级起):期待交付物(expects: deliverable)的委派,在接收方为它交的那份交付被放行时(审查放行、应用按检查放行、或你在卡片上放行)由应用回复:结果写明谁交了什么、交付 id 和文件,委派方立刻被叫醒,从等待里出来。委派点名了分件的,放行要覆盖全部分件;没点名的,等整张任务通过。原来没有任何东西回复这种委派,委派方一直挂在等待上,也不知道结果(你本机的三条这种委派,都是群被清空时才取消的);打回不回复,接收方还欠着它。接收方交了一份、正在检查、审查或等你放行时,这条委派不算它还欠的义务:交完就能正常结束这一段。原来它被算成还欠着,submit 回「carry on」,Bot 就接着改、再交一份,顶掉正在审的那份(2026-10-03);被打回之后任务回到返工,又算欠着。委派到调用方自己(owner)那张任务上、又没点名分件的交付请求会被拒:接收方为它交的,就成了整张任务的交付——2026-10-04 用真模型跑海报组,负责人没拆活,直接把宣传语委派到这件事唯一的那张任务上,文案交的「宣传语.txt」就成了整件事的交付等你放行,放行就等于没有海报也交付了。拒绝时告诉它两条路:先用 plan_items 给要交出去的那一块单开一张任务(做的人是接收方、审查者是自己)再委派到那张上;或者改成 expects: "answer" 要回来,自己做完这张再交。同一次真跑里负责人照第二条做了:文案回了三句,它自己出海报交付。

文字交回覆盖回答型,以及没有交付可审的审查型:接收方用 end_turn({reason:"answered",answer:"…"}) 交回,关闭精确绑定到它的未关闭委派:expects="answer" 的都关;expects="review" 的只关它读到过请求、且请求范围内(指定了任务就是那张,没指定就是整个规划)没有交付在检查或待审(checking/submitted/in_review)的,比如请它预审一份剧本或分镜。有交付待审的审查请求走 review(ADR 0046);expects="deliverable" 没有文字交回。普通收尾或 send_message 不算交回。结果一次落地为 priority=2 的持久 delegation_reply 收件,原委派变 replied、对应等待作废,允许的委派方转 queued 再被叫醒;被叫停的结果收件保持 held,不绕过叫停。文字交回只把结论交给委派方:不批准交付、不推进任务阶段,不能拿一句话冒充已通过审查。

这一段读到了这样一项请求,却以 answered 收尾又没给 answer(典型是把结论用 send_message 发在私聊里)时,收尾被退回(unanswered_request),退回写明请求编号、谁在等、回复要写进 answer;它和其他退回共用两次预算,用尽转 needs_attention,不会悄悄留下一项没人关的委派。以 done 或纯文字收尾时,「还有没交出的义务」的退回也写明读过的这类请求怎样交回。

事件等待不是时间回看:delegation_wait 不由 due 扫描触发(各级别都排除),只因这项委派的回复/取消解决。3 级定时回看按精确工作项/去重键替换,不替换同 Bot 同会话的另一工作项或委派等待;叫停挂起、解除恢复对应记录,不让不相干的新 timer 覆盖旧事件等待。没有真正到期时间的委派,视图的 due_at 是 null,不把内部占位时间显示成倒计时。

叫停连带范围来自仍打开、规划/任务绑定一致的委派边,建立时捕获为下游 Bot × 规划目标;不只看单个 delegated_by,同一接收工作项可有几个上游。停 owner 的这一件事会覆盖它委派的 helper 同件事,但 helper 的另一规划照常;后续新委派不偷偷扩充已建的覆盖快照,解除仍只接受用户动作。

归档/删除 Bot、清空/删除相关会话会取消相关未关闭委派并记录结果。接收方归档时,仍存在且符合准入的原委派方得到一次可叫醒的取消结果;委派方自己归档时不叫醒自己。清空/删除会话的取消结果一律 wakes=0,不因为清空聊天重启工作。结果/请求保留在记录中,不把取消说成完成。归档同时关闭该 Bot 的工作项、结束在跑的执行并在提交后中止引擎;副作用闸再核对 Bot 是否仍有资格、工作项是否关闭及是否仍持有执行权,完成中的补全也不能在归档后继续写文件。

只读视图:GET /v1/tasks/:id/delegations、GET /v1/sessions/:id/delegations 本机及远端白名单返回已记录的 DelegationView:谁向谁提什么、期待什么、open/replied/cancelled、请求/结果、waiting/held 和真实的可空到期时间。delegation.changed 实时事件及补拉追上变化;协作私聊显示结构化「委派/交回/等待」,不是从正文猜状态。界面是只读投影,不新增用户发起委派按钮;组件已接入,父任务已确认两个浏览器的合成场景验证通过;这验证只读视图和操作,不是付费真实模型的整个协作闭环验收。

发言与收尾分开:3 级 send_message 成功不结束本段,可通知后继续做。面向有用户的会话、本段不带 parent_id 的进度发言最多 3 条,第四条返回 progress_limit;当前以 parent_id 为豁免标记,没有已实现的「真实问题语义分类」,不要把任意引用回复说成经过验证的回答型豁免。群里点名仍可叫醒,协作私聊普通消息不叫醒。先发进度后才写出的文件仍由未引用路径跟踪,结束时可附到收尾消息,不会因为先说过一句话就丢掉后来产物;这只是消息引用,不是隐式提交。

结束契约已接入、24b 尚未完整:3 级 end_turn 的 reason 是 done/answered/nothing_new/blocked/gave_up,校验仍运行、工作项/规划/任务精确一致且未被叫停,并记录已读用户/批注收件的处置和 turns.end_reason / work.ended。用户收件未逐条处置会退回;纯文字收尾不会因此退回:这一段读过、还没说怎么处理的你的话,都记为被这段文字回答了(answered)。纯文字路径先完成仍保留的收尾执行记录核对,核对退回时不提前写 work.ended,再执行结束契约;desk/readonly 的纯文字按 answered,工作段纯文字经过同一契约;还有待做/进行中/待验收任务、打开的委派或等待而没有真实等待时,done/纯文字先退回一次,第二次按 nothing_new 收住,不把文字当交付;两次无进展且仍有义务可 blocked 并通知(按你的界面语言写,点出是哪件事、哪个 Bot);这件事上已经什么都不欠(没有该它做的任务、委派或等待)时,这一段给你的最后一句(纯文字收尾就是这句收尾,否则是它最新的一条消息)说还在做(「正在编写」「结论随后」「我这边着手整理……弄好发群里」这类,由读句读出;读不了时按 later-words.ts 的词),又没点名哪个 Bot 接手,done/answered/nothing_new 先退回一次(promised_later),带上它那句原话:现在就做,或约一次回看再以 nothing_new 结束,或点名交出去;第二次照常结束,会话里多一行(按你的界面语言):它说了「…」,但这一轮已经结束了,没有人接着做,要它继续就 @ 它(你和它的私聊里是「跟它说一声」:那里你说什么它都收得到;两次无进展那一行在私聊里也不叫你 @ 它)——2026-10-03 视频导演说完「正在编写全新第 1 集设定集与剧本分镜方案」8 秒后以 done 收尾,规划里唯一的任务还停在上一轮的已交付,没人再叫醒它,群里也看不出它停了;你在私聊里的一句话开出的这一段,要结束时一个字都没给你(没有要发出的收尾回复、没有它在这个私聊里带字的消息、也没有交出一段话;只有文件不算回复:写过的文件、只挂着文件的那一行、交出的文件都不算),done/answered/nothing_new 也先退回一次(said_nothing):写进 end_turn 的 answer(只给委派它的 Bot)、note、inbox 都到不了你,文件也不是回复,让它直接在对话里回复;第二次照常结束,私聊里多一行(按你的界面语言):它这一轮没有回复你就结束了,要它回答就再说一次——2026-10-07 通识把整段回答写进了 answer,你那句话下面什么都没有;同一天视频导演对「水印去不掉吗」「它支持传参考图吗」各只回了文件。这样的段里 submit 交完也不结束本段,告诉它先回复(不算退回)。群里的话、只读回答、日程叫醒的段不在此列。纯文字收尾被结束契约退回时(改了已放行任务里的文件、还有任务没交出……),这段话已经先发出去了:退回说的是这件事的活,不是这段话,只有收尾自检会扣下话本身;退回开头写明「你的回复已经原样发出,不要再说一遍」,同一段里一字不差的话也只发一次。之前这段话被扣下不发,Bot 照退回去交文件,submit 一交就结束了本段——2026-10-07 视频导演对「这个视频生成跟 Grok 的比哪个好」写好的回答就这样没了,只剩一张文件卡;真实观察到的任务阶段变化以匹配 turn id 的 ticket.stage_changed 记录为进展,不把本轮刚开始实际工作的一次收尾算成空转,后续静默才累加。未处置收件/未完成义务的契约退回和归属退回共用两次预算,用尽 needs_attention。桌面段里 work_on/end_turn 抛出的非法参数错误也计入(reason 不认识、blocked 缺少 needs_from_user、gave_up 缺 note),同一跳后面的副作用被压住。绑定之后被拒的 delegate/work_on/end_turn 不计入:它们是普通的失败调用,Bot 读错误再改,同一工具连错三次抬档;delegate 在桌面会先绑定再跑,所以它的校验失败从不计入。之前这些也计入,已经干完活的工作段会被桌面那句「这句话需要先选归属,尚未执行有副作用的工具」截停。

有真实 timer/委派等待的工作项保留 waiting;无义务的任务或桌面可 closed,其余 answered/nothing_new 可 idle。blocked 必须给 needs_from_user,gave_up 必须给 note,并记录通知/事件。blocked 只用于只有你能给的东西:等别的 Bot 时,工具说明、系统提示和「还有没交出的义务」的退回都让 Bot 委派给它、或以 nothing_new 结束,而不是把等待写成问你的问题。缺口仍在:3 级 blocked 只显示应用系统行;可答的持久提问卡在 4 级(工作提问卡);I5 已有 3 级库触发器:绑定工作项的 completed/stopped/interrupted/redirected 行在 INSERT 和每次 UPDATE 时都必须有非空白 end_reason(不限制成一个枚举),旧 0–2 级豁免;已有历史终态一次回填 status,不覆盖显式原因。旧收尾自检正则仍被调用。implicitSubmission.implemented=false 只列本段已引用、落任务目录的候选产物元数据,尚未验证存在/新哈希、跑绑定检查或保存交付,没有 submitted/approved 的推进。监督器 24c(孤儿任务阈值、I6 周期核对、每小时恢复预算、按原因自动续跑、旧 timer 的退场)在 4 级实现,见监督器;3 级没有这些。

回避:私信即委派, 普通回执即结果, 整个 Bot 属于委派方, 文字说已通过就是审查完成

参与(Participation)

一条群消息要由哪些在场 Bot 接收:点名指定收件人,未点名时优先有资格的负责人,没有负责人时才保留旧群的参与判断。接收消息不等于打断正在做的同一件事。详细投递边界见「群负责人」的行为说明。

回避:每句都问全群, 负责人确认前自动任命, 收件就是改道

判断(Judgement)

没有负责人接收的旧群中,Bot 对未点名用户消息选择下场或旁观的一次判断;不是执行段,也不在判断阶段提问用户。旁观或失败不会产生工作回复,明确点名不需要这次判断。详细投递边界见「群负责人」的行为说明。

回避:旁观也开执行段, 失败默认下场, 对 Bot 每句话再判断, 所有群都必有判断

点名(Mention)

指定群消息收件人的写法:点某个 Bot 或全体在场 Bot,跳过参与判断,但不越过叫停、工作归属或执行名额。同一 Bot 正在做同一规划时,点名让这句听进已有段,不表示改道;那一段在别的会话里时,它在你点名的这里回你。细节见行为说明·点名。

行为细节

@Bot 指定 Bot(名册里有、但不在群里的仍按已有「拉入」加入后接收),@everyone 只指定群里除作者外的所有 Bot,不把群外的人拉进来;短名唯一对得上在场成员时照那位处理。未知名不叫醒谁,Bot 的 send_message 先退回一次供纠正,之后仍未知就在群里留系统提示。路径、网址、Markdown 链接目标中的 @ 不算点名;紧贴 ASCII 字母、数字、_、- 或路径分隔符后的不算,斜杠连接的 @A/@B 仍是两位,中文和标点后面的照常识别。

Bot 在群里点名另一个 Bot 的一句,去掉点名后只是一句光秃秃的回执(「@Beta 收到,已对齐」),而它那一轮正是被对方同样的回执叫醒、两轮都没跑命令或 MCP 时,不叫醒谁(各级别都一样,和 Bot↔Bot 私聊的回执接回执同一条规则),两个 Bot 不会互相点名对齐个没完。带问句、文件、路径或点了不认识的名字的不算。

2 级点名决定收件人,不决定结束旧轮:已有同规划段就听进它,不同规划另开或排队。你的群点名也如此;即时停止请用 Stop/叫停。0/1 级兼容仍可把用户群消息改道,携带旧轮写过的文件、最后调用和未读收件;Bot 的点名及回看尽量听进已有段。普通 Bot↔Bot 私聊及 send_message 的旧叫醒/结束语义在 0–2 级仍保留;3 级已切到显式 delegate 和委派线程里普通发言不叫醒,见委派;Bot 用 create_direct 自己开的私聊在各级都每句叫醒对方(见私聊)。

回避:点名就是暂停, 群点名克隆自己, 点名绕过叫停, 路径中的名字就是收件人

拉入(Pull-in)

在群里 @ 一个不在群里、名册上已有且未删除的 Bot:先加入该群再下场。名册没有的名字不新建 Bot,消息仍发出。

回避:@ 了却不进群, 未知名隐式建 Bot

轮次(Turn)

一个 Bot 被消息或叫醒触发的一段执行,可以工作、在桌面先选归属,或在叫停下只读回答;等待你的批准或回答仍属于这段执行。轮次结束不等于这件事已交付或已验收。你连发的几句按到达顺序处理:先发的开轮,后发的在它下一步读到;还没被读到的那句可以撤回,或直接插入让它马上读(ADR 0069)。细节见行为说明·轮次。

行为细节

2 级一段执行属于工作项,活状态包括 running/waiting_approval/waiting_ask;同 Bot × 规划只有一段,不是同 Bot 在整个群永远只一段。不同规划受工作名额限制(默认两个),桌面另计(见工作项);无关的新请求先到桌面,不并给旧事。同规划新消息的阅读在工具边界之间,改变类用户收件使同一跳后面的未执行调用推迟,问题不推迟调用,长命令要等当前调用结束,立刻打断要叫停。

纯文字回复或 end_turn 能结束当前段;已有收件处置记录仍记照改、回答、不采纳(附理由)、推迟或未确认。处置里点了一个不是这一段收件的 id(不存在的,常是叫醒它的那句话;或别的段读的)什么都不记,也不因此退回:只有这一段读过的收件写了不合法的处置词、或你的话还没处置,才退回(2026-10-03 之前,一段一封收件都没有,却因为点了叫醒它的那句话被退回两次、卡成需要处理,再被监督器拉起一轮)。结束不代表有 approved submission;3 级结束原因/义务核对已有域函数和引擎接入,具体已接入与缺口见委派,按持球者监督仍未实现。补全失败和中断分开;已有循环每 40 跳提醒是否卡住仍保留(只问,不停;2026-10-17 起不再在 160 跳收起工具),不把它当新监督器。转录按时间交错、花费按调用记账。

旧级别群里用户点名/判断下场可走改道:旧段终止、从新消息开新段,带旧文件/调用/未读收件但不回滚过去副作用;Bot 同事消息和回看听进已有段。旧私聊的分叉与单群一 Bot 一轮是兼容行为,不是 2 级同规划唯一执行之外的承诺。

一轮跑过的命令留在它的回复下面:每条 shell 命令跑完都记一行(turn_runs):命令(空白压成一个空格、截到 300 字)、退出码、成没成、用时、它打印的最后 4000 字(先 stdout 后 stderr,没打印就不记),普通端点和 Claude Agent 的 Bot 都一样;MCP 调用也记,但不算命令。一轮只记前 80 次调用。这一轮结束后,它最后一条回复下面是同一张命令卡片(还在跑时它中途发的话下面不挂,命令在干活的那条消息里),和这条回复的时间、耗时排在末尾同一行,放不下才换行,读的是这份记录(GET /v1/turns/:id/commands,回复滚到附近才读);刚结束的那一刻先摆这个页面亲眼看到的,读到记录再换。耗时按界面语言说:中文是「5 分 9 秒」,英文是「5m 9s」,和时间之间隔一个浅色的「·」。清空或删除会话时这些记录一起删掉。之前的版本不记用时和输出,那时的轮只有命令和退出码。

专注模式:侧栏顶部的靶心图标(手机在搜索框旁)或设置 › 通用 › 偏好里的「专注模式」开关(chat/focus-mode.svelte.ts,每个浏览器记一份,所有对话和面板共用)打开后,对话里只留说的话和要你处理的东西。不显示的是关于消息的信息:Bot 回复下面那一行(命令卡片、耗时、时间,时间改到悬停的操作条里),你的消息下面的时间(改过的留「已编辑」),提问和应用消息上的时间,名字旁的「Bot」和模型标签,连发几条的条数,Bot ↔ Bot 私聊入口;干活的气泡只留脉冲点和「思考中」(已经开口就是「正在写」),不显示在做哪一步、计时和命令输出。照旧显示的是正文、附件、引用、表情回应、批注、审批和提问卡片、工作提问、「继续」「插到现在」「撤回」等按钮、正在回复的提示、日期和新消息分隔线;Bot ↔ Bot 私聊里的委派记录也照旧,那就是这条私聊谈的事。

连发(ADR 0063):同一会话里你的话按到达顺序处理。后一句等前一句读完、归好、送到再归属、送出自己——前一句开出的轮已经在了,后一句就进那一轮的收件箱,下一步一起读到;读归属时也看得到前一句归在哪。等待从前一句真正开始处理算起,最多 45 秒,过了照常往下走,停机时不等。读这句是什么意思不等:一到达就开始读(2026-10-09 起,ADR 0070),读成纯叫停的当场照办,插到还在读的话前面;读成继续、只问进度的和别的话一样排队,交给 Bot。Bot 的话不排队。所以私聊里读你上一句时发送键不再变灰(旧守护进程照旧锁),输入框下写「Enter 发送,它下一步就读到」;一个已经在干活的 Bot,不再在你后面每一句下面各显示一个「正在回复」。

回避:轮次就是任务, 一轮结束就是验收通过, 一句同事消息克隆同规划工作, 一轮无限调工具, 后发的一句抢先成了触发句

改道(Redirect)

停止一段执行的后续动作,再由新消息开始另一段;已经做完的动作不回滚。它是旧迁移路径的执行方式,不是新工作项路径中群点名的默认含义;要立即停下用 Stop 或叫停。详细边界见「轮次」的行为说明。

回避:新消息必改道, 用点名代替叫停, 一句话清掉全群的活

分叉(Fork)

在已有段之外另开一段,原来的继续;表示两段执行,不表示把一件事复制两份。新工作项路径只有不同规划才可受限并行,同规划消息听进已有段。详细边界见「工作项」的行为说明。

回避:同规划绕过唯一执行, 手动开一轮就绕过叫停, 群点名克隆自己

提问(Ask)

Bot 向你问一件需要判断的事(不是工具批准)。问句出现在转录里,你回答后该轮继续。能列出可能的答案时 Bot 给出选项:只能成立一个是单选,几项能同时成立是多选,推荐的排第一个;你总能不选、自己写,也能选了再补一句。你的回答记在这条提问上,不另发成你的一条消息:卡片上留着你选了什么、写了什么,之后的轮次、整理跳和搜索都从这里读到。一次提问只答一次。2 级起,Bot 等你回答时你在那个会话里直接打的一句话(不带文件)就是对它的回答,记成你自己写的,这一轮接着做。
4 级起,Bot 以 blocked 结束一段工作、写明需要你给什么时,留下一张工作提问卡:这一段已经结束,卡片留在这件事的会话里,你写下回答后这件事重新排队;回答不解除叫停,叫停期间只被扣住。细节见行为说明·工作提问卡。
Bot 的提问(提问卡,或以 blocked 结束留下的工作提问卡)读出来只是在请你点头才接着做你要的事——确认做到一半的东西、问能不能开始下一步——就退回一次让它接着做;它再问一遍才到你这里。应用自己也只在要你放行、要只有你给得了的东西、或它停下不再自己做的时候找你;它替你定了、你刚说过的、它会自己接着做的都不问。清单见行为说明·应用找你。

行为细节

4 级起,end_turn({reason: "blocked", needs_from_user}) 留下一张提问卡(control.kind = "work_question",带工作项、规划和任务),发在这一段问的地方(你在那里、没归档时),否则你最近说这件事的会话、这件事的会话、规划的会话,否则你和这个 Bot 的私聊里(原来先发在这件事的会话:在群里开、后来到你的私聊里接着做的事,Bot 在私聊里请你拍板,卡片却落在群里,2026-10-04),作者是这个 Bot,显示成应用的卡片,附一条「等你回答」通知;工作项 blocked,waiting_on = {kind: "user"},球在你。同一段重复同一问题只留一张。

POST /v1/messages/:id/work-answer {body}(手机远端同样可用)写下你的原话,一次:同一个请求 id 重发不会再排一次,换一个请求再答已答的卡会被拒。回答作为你的一行进这件事的收件(优先级 1,原话也进原话),工作项排队并立即派发,卡片记下回答和时间、通知解决。叫停覆盖这件事、或覆盖那一段所在的会话时,回答只被扣住、照常保存,叫停不因此解除;解除之后再接着做。已答过、之后又有新的提问、那一段还没结束、工作已关闭、Bot 已归档、会话已归档或已清空的,一律拒绝,草稿留在卡上。这件事不等你的回答就往下走了(之后又有新的提问、被别的消息叫醒的一段结束、工作关闭)时,卡片记下 superseded_at,改成「工作曾等你回答」、写明不再收回答、不再有回答框,通知随之作废(voided,原因 superseded),不再算进 Dock 角标;打开时也把旧版本留下的这类卡一并处理。答过的卡不受影响。3 级及以下,blocked 只发一行文字。

只请你点头的不发(2026-10-04 起,ADR 0058):3 级起,blocked 的 needs_from_user 和 ask_user 的问句先由读句读一次;读成只在请你点头才接着做你要的事——确认做到一半的东西、问能不能开始下一步——这次 end_turn 被退回(asks_go_ahead,算结束契约的一次退回),ask_user 回一个错误(同样的码,工作记录 ask.go_ahead_refused),都不出卡片、不发通知;Bot 听到的是:你要的事已经说过了,别停下来等点头或等你过目,接着做,交出来时你会看(你随时能停下它);真要只有你给得了的东西(账号、授权、只有你知道的事)或要你在几个方案里拿主意,写明是哪样再停。一段只退回一次:它再停一次、再问一次,就照常发给你,也不再读;结束契约的两次退回已经用完时也照常发给你,不会因此变成「需要处理」。2026-10-04 视频导演交了《一拳超人》的关键帧板后以 blocked 停下,问「请确认关键帧板(board.jpg)与设定集是否符合预期,确认后将正式启动视频片段生成与后期剪辑」,卡片等了两个半小时才等到你一句「确认」。没配读句模型、调用出错或读不出时照常发给你。

回避:把提问做成批准卡片, 把回答另发成一条你的消息, 加「其他」选项, 答完再改答案, 回答提问卡就解除叫停, 应用为替你定了的、你刚说过的或会自己接着做的事来问你

Stop

你发出的立即停,作用于进行中的轮次;已做完的动作不回滚。正在跑的命令连同它开出来的进程一起停:先让它们自己退出,3 秒后还在的强行结束。Stop 不算这件事静下来:不会因此整理规划,也不会因此叫回谁;这件事之前已经排着的整理和回头再看,也一并取消。UI 开着时打在当前窗格的那一轮(须是私聊)——同时摆着几条会话时,当前窗格就是键盘所在、或刚在里面点过滚过的那块;菜单栏在没开 UI 时打在最近有活动的私聊里的那一轮。引擎级别到叫停这一级之前,群聊没有 Stop,要停就在群里说一句「停下」(见控制句)。引擎级别到了叫停这一级后,群里每个 Bot 正在写的回复上各有一个 Stop,只停那一个 Bot 的这一轮,别的 Bot 照常;菜单栏那一项变成「全部停下」(见叫停);Stop 同时是一条叫停:只扣住这个 Bot 在这件事上的活(没有规划的轮就只扣这一轮),它约的回看挂起而不作废,别的叫醒也叫不回它;会话里不另发回执(停的就是你按的那一轮;停在哪一步记在这条叫停上);你在这件事上再对它说一句话(「继续」也算;群里要点它的名、回复它或谁都不点,只对别的 Bot 说的不算;按 Stop 之前发出的不算),这条叫停就解除,Bot 从你这句往下,不另带说明;这件事在你说不上话的地方做(比如它和别的 Bot 的私聊),就在它的私聊里、或在群里点它的名说「继续」:归到这件事上就解除,它从你这句在你说话的地方接着做。清空历史、归档、删除群仍会结束该会话的活轮,不算叫停。没有跳数、名册或群人数熔断。

回避:同时停掉所有窗格里的轮次, 按最上面那块浮动窗格判定, 只停 shell 本身

叫停(Hold)

你叫的停,记成一条记录,而不是规划上一个模型改得回去的「搁置」。它有范围:全部、某个 Bot、某个会话、某件规划、某个任务、某个 Bot 在某件规划里的活、某一轮,另可带上建立时就定下的额外覆盖(比如这个 Bot 交出去、还没交回的活)。只有你能解除,用你的一句话或一个按钮;记录从不删除,清空聊天、删群也不删。建立的同一步,它覆盖的在跑的轮当场结束(命令开出的进程、MCP 调用一起停),各自做到哪一步记进这条叫停(流程图和「停了吗」的状态行就读这份记录)。在规划或会话上的叫停让它覆盖的规划显示为搁置,整理跳和接回都改不回进行中;它覆盖的回看挂起;解除后都恢复,被它停下的轮各带一条说明重新开始。在 Bot、任务、某一轮或全部上的叫停不改规划状态。叫停只是先停下(ADR 0071):它覆盖的东西自己叫不醒 Bot——不开轮,被叫停的 Bot 说的话也叫不醒别人,有副作用的工具调用不执行;但你对 Bot 的话和操作从不被挡:说一句话、改你的话、直接插入、退回、回答提问、按继续或解除,它都照做,它的话所关于的叫停整条解除,覆盖好几个 Bot 的也一样,只是只有说到的 Bot 接着做(ADR 0081);只问进度的话不放开谁,它照停着回答;只有应用自己的保持下你的话才只开一段只读的轮,由它自己说还停着;每一次挡下的叫醒都记进工作记录,写明原因和是哪条叫停。库里的触发器再兜一层,旧版本也开不出被叫停覆盖的轮。除了说一句话,还能从停止菜单叫停:群里有 Bot 在做事时,发送旁边的菜单有「停下这个群里的工作」「停下 X 的全部工作」「停下这件事」「停下所有 Bot」;流程图上有「停下这件事」「停下所有 Bot」;菜单栏有「全部停下」。每一种叫停(卡片上的 Stop、群菜单、「停下所有 Bot」、流程图、工具菜单、你说的「停下」)都在你下一句相关的话时结束,你说到的 Bot 接着往下,不再挂着等你去解除。叫停和接着做都是内置的,会话里不回任何一行(2026-10-30 起,ADR 0101):在跑的停住、你下一句话接着往下,就是全部,你说的、菜单上选的、按钮按的都一样。叫停不在界面上留状态:会话列表上方只列你按「作废」建的、不随你的话结束的叫停,各带「解除」;流程图列出这件事自己的搁置和等你解除的叫停。引擎级别到了叫停这一级才有(见版本闸)。细节见行为说明·叫停。

行为细节

2026-10-09 起:叫停只是先停下(ADR 0071)。你的每一种叫停——卡片上的 Stop、打字的「停下」「停下 X」「停下所有 Bot」、群和工具菜单的停下、流程图上的停下——都只做两件事:现在停下它覆盖的活;在你开口之前,挡住会让 Bot 自己重新开工的东西(它约的回看、别的 Bot 的话、生成作业完成的通知、监督器的续跑)。你对一个 Bot 的话和操作从来不被挡:对它说一句话、改你的话、直接插入、在交付卡上退回、回答它的提问、在中断或重启提示上按继续、说「继续」、在列表上按解除,它都照做。只覆盖这个 Bot 的叫停随之解除;覆盖好几个 Bot 的(全部、一个群、一件事、一个任务)只放开它(effect.released_bots,所有「是否被扣」的判断都认,包括数据库自己的触发器),其余的照停,等你对它们开口或解除;覆盖的 Bot 都放开了,这条叫停就解除,搁置的规划回到原样。只问进度的话(「还在做吗」)不算让它继续:它照停着回答你。按解除就是继续:被停下的活带说明接着做。下文说某些叫停「一直停着」「要你亲手解除」、你的话「只开一段只读的轮」的地方,现在只对应用自己的保持(启动时接管的旧搁置)、和「新开一件事」时作废旧事的那条成立;你在叫停之前发出、还没读到的话被扣着,可以「直接插入」。

2026-10-10 起:停下就是停下(ADR 0081)。你的话所关于的叫停整条解除,不管它覆盖几个 Bot:「停下所有 Bot」之后对任何一个 Bot 说话、停下一个群之后在这个群里说话、停下一件事之后说到这件事,这条叫停就结束,覆盖的 Bot 的回看、别的 Bot 的话、作业完成的通知都恢复,搁置的规划回到原样;不再写 effect.released_bots(旧库里已有的照旧被读到,直到被你的话整条解除)。只有你说到的 Bot 接着做(说「继续」时带着它停下的那件事);别的 Bot 停下的那一轮不带说明重开。叫停不在界面上留状态:会话列表上方不列先停下的叫停,会话行不标「已叫停」,头像不睡觉;上方那一条只剩你按「作废」建的、不随你的话结束的叫停。流程图只列这件事自己的搁置和等你解除的叫停。下文说「放开」「其余的接着停着」「所有 Bot 继续」、列表上的「已叫停」和「全部继续」的地方,都以这一段为准。

P4b 续跑补充:以下叫停范围、只有用户解除和回执约定仍有效。2 级解除后的段按 Bot × 规划唯一执行与工作名额接收:同规划听进已有段,不同规划开自己的段或排队;下文「群或 Bot↔Bot 私聊一个 Bot 同时只做一轮」仅描述 0/1 级兼容,不再把别的规划工作合进这一段。中断桌面的继续保护另见桌面段,本次不启用重启后自动监督续跑。

你叫的停落成的一条记录。范围:全部、某个 Bot(跟着它到它在的每个会话)、某个会话(连带以这个会话为主会话的规划,哪怕活在 Bot↔Bot 私聊里做——那条私聊里做的仍是这个群的事)、某件规划(连同它的任务)、某个任务、某个 Bot 在某件规划里的活、某一轮(覆盖这一轮约的回看);另可带上建立时就定下的额外覆盖,比如这个 Bot 交出去的活所在的私聊,之后不再随着变。只有你能解除:用你的一句话,或一个按钮;别的调用方没有解除的入口,Bot 和整理跳都不行。记录从不删除:清空聊天、删群只把它指向的那句话置空,叫停本身还在;叫停点名的规划(叫停在这件规划、某个 Bot 在它里面的活、它的某个任务上,或额外覆盖里有它们,已解除的也算)清空聊天时也留着,不会让叫停指着一件已经没了的事。删群时,群上的叫停搁置着、群删后还留着的规划(别的会话里有它的轮次或消息)不再属于这个群,群上的叫停也就够不着它们,所以每件先各得一条自己的规划叫停(来源 migration),带着解除后怎么恢复;叫停之前就按旧办法搁置了的(状态和要点都是搁置)也一样,解除后回到进行中,和启动时接管旧搁置的做法相同;这件规划本来就有规划上的叫停的不用。

建立时:记下叫停的同一次写入里,它覆盖的在跑的轮都结束为 stopped;写入落库后,这一轮的补全、它的 MCP 调用(告诉服务器这次调用取消了)、它跑的命令的进程组(先让它们退出,3 秒后还在就强行结束)一起中止。每一轮做到了哪一步——写过的文件、最后几次调用——记在这条叫停上(effect.stopped_turns),同时记下同一件规划里它没覆盖、仍在做的别的 Bot 的轮(working_beside),以及结束之后它覆盖的还在跑的(still_running,除非出了错否则是空的)。你说的或按的叫停还连带被覆盖的 Bot 交出去、还没交回的活:由被覆盖的轮写的话开出来的别的 Bot 的轮——或者由这样的轮写的话再开出来的,往下最多三层——只要还在跑或还有待响的回看。每一个都作为额外覆盖记在那一轮上:覆盖那一轮本身、它约的回看和它的话会叫醒的人,不覆盖那个 Bot 自己的别的活;上游的一概不停。叫停放行开出的只读轮让它把回答说完。工作记录里记一条 control.hold。

规划状态:规划或会话上的叫停把它覆盖的进行中规划改成搁置,状态和要点里的状态一起改——流程图每次编辑都把要点里的状态原样送回,整理跳也在要点上改,只改一处就会被改回进行中。规划仍是会话的当前规划,只是停住了,不是被别的事挤开。已经被新规划挤下当前位置的(状态已是搁置、要点里仍是进行中)也一样把要点改成搁置,解除后回到被挤开的样子:要点里是进行中、状态仍是搁置,不当成回到进行中,免得不在当前位置的规划被叫回去干活。叫停期间整理跳或接回要它进行中,它仍是搁置,只记下解除后回到进行中;叫停期间被新开或接回的规划挤下当前位置的,解除后也回到被挤开的样子;在这个会话里新开的规划一开就是搁置;标已完成照样生效。叫停把要点改成搁置、解除时改回去,各算要点的一个版本:流程图拿着之前的版本再提交会被拒(409 revision_conflict),不会把刚叫的停送回去,也不会在解除后又叫一次停;这两个版本不算你写的,也不算整理,整理跳照样读叫停之前的话;修订历史里它们带 cause: "hold"。解除后回到原来的状态,空着的话也回到会话的当前位置;还有别的规划或会话上的叫停扣着它,就仍是搁置,由那一条记着解除后怎么恢复。Bot、任务、某一轮上的叫停不改规划状态,规划里别的 Bot 的活照常;全部上的也不改(否则要改遍每一件规划),规划详情的 held_by 列出覆盖整件事的叫停(规划上的、它所在会话上的、全部上的)。

旧的改状态入口:引擎级别到了叫停这一级之后,把规划状态改成搁置(PATCH /v1/tasks/:id/spec,旧客户端和手机的做法)就是在这件规划上叫停;改回进行中或标成已完成,解除这件规划上的叫停。会话或全部上的叫停还在时,改回进行中之后它仍是搁置(会话的)或状态照旧(全部的),held_by 说明是哪一条。算不算改状态,拿要点里的状态比:流程图显示并送回的是它,一次只改目标的编辑把它原样送回,不算叫停也不算解除;被挤开的规划状态列是搁置、要点里是进行中,按状态列比会把这样的编辑当成继续。在这一级之前,改成搁置就只是状态。

回看:被覆盖的待回看挂起,同时标作废,这样不认识叫停的旧版本也不会让它响;叫停期间新约的也一样挂起。解除后没有别的叫停覆盖它,就恢复待响,已经过了时间的随后补响一次。挂起期间会话被清空或删除、Bot 被删除,或者在有叫停之前约它的那一轮被 Stop,它就真作废,解除也不回来;0–2 级 Bot 在同一会话又约一次就以新的为准,旧的不再恢复;3 级只由同一精确工作项/去重键的新 timer 取代,不同工作或委派事件等待不因此丢掉。

叫醒和工具:叫停覆盖到的,什么都叫不醒——你的话(只开一段只读的轮,见下),别的 Bot 的话(点名它,或 Bot↔Bot 私聊里的每一句),它约的回看到点,它开的 Bot↔Bot 私聊静下来后的回报,规划静下来后的叫回,日程到点,中断后点「继续」,都不开轮;被叫停覆盖着的、正在跑的那一轮也不再听到新来的话:说的是叫停范围外的事的,在它旁边另开一轮,不打断它;你在别的会话里说、归到这件事的话也不转给它。被叫停的 Bot 自己说的话也叫不醒别人,它在 Bot↔Bot 私聊里的对方静下来时也不会把发起方叫回来,也不留到以后:解除后它在私聊里再做完一轮,私聊再静下来,就会叫回发起方。你在群里不点名说的话,被叫停的 Bot 不参与判断(不花那次判断调用)。每一次被挡下的叫醒都记进工作记录(work_events 里的 wake.suppressed),写明是什么叫醒(你的话、别的 Bot 的话、回看、规划叫回、日程、继续……)和是哪几条叫停。回看被挡下时挂起,解除后恢复;正在跑的一轮听到了、却没读就结束的话逐条看叫停:说的是被叫停的事的,每条记一次被挡下的叫醒,留在转录里等解除,其中最新的回看挂起,解除后再响;其余的照常在最新一条上再开一轮,只带上这些没被叫停的;开私聊的 Bot 被叫停时,私聊静下来后给它的回报也挂起,解除后再叫它回来;规划静下来后的叫回不留,等这件事下次有一轮结束、再静下来时再看;日程到点只记一次、不算已跑,解除后按最近一次补跑一回;「继续」返回 409 held,手机上也是这个错误码。被叫停覆盖着的轮次,有副作用的工具调用一律不执行,结果是 held:壳、写和删文件、发消息、约回看、向你提问、改人设、技能、记忆、日程、端点或 MCP 服务器、没有标只读的 MCP 工具;只读的照常(读文件、列目录、各类 list_*、read_skill、end_turn,以及服务器标了 readOnlyHint 的 MCP 工具,比如查一个视频作业)。等你批准的调用,你点允许时它已被叫停,也不执行。库本身再兜一层:turns 表上的触发器拒绝写入被叫停覆盖的活轮(不认识叫停的旧版本写的、没有 mode 的行一样拒绝——叫停优先于兼容),也拒绝把一轮活着的原地挪进覆盖范围、或改掉它的 mode。唯一放行的是你的一句话开的只读一轮(mode = readonly):你对被叫停的 Bot 说话——在它的私聊里,或在群里点它的名——就在它原来的活旁边开这样一轮,不挂在任何规划上,只给它看不改东西的工具,开头一行写明你叫停了这件工作(带你的原话)、这一段只能回答,你要它接着做的话,就直说叫停还在,别说自己在接着做。它的回复照常发出,不叫醒任何人;别的 Bot 这时点它的名,在它旁边另开一轮,不打断它。这一段一个字没回就结束时(读完文件给了空回复,或直接 end_turn),应用不再在它的位置回一条状态行(2026-10-09 起,ADR 0070:应用不替 Bot 说话)。那条状态行是 2026-10-03 加的:群被停下后你说「从头再做一遍,之前的作废」,只读段读了九跳文件、最后回了个空,群里什么都没出现。

你的话:一句话是不是叫停、是不是继续,只看读句(模型)怎么读(2026-10-09 起,ADR 0070)。控制句的固定规则(见 CONTEXT 的控制句)不再先读、不再照办,只剩一个用处,不执行任何东西:定话里说的范围(「你」是谁、「所有 Bot」、「这件事」)。读句读不了(没设、出错、超时,退回词表)时什么都不执行,这句照常交给 Bot;要立刻停,用输入框的停止按钮。读句从这句到达就开始,不等它前面还在读的话,所以读成纯叫停的照样插到它们前面(ADR 0063 的先后只管别的话)。原来固定规则先读:2026-10-09 早上你在视频导演的私聊里说「继续」,这句被当成纯继续,在还没读、还没归到哪件事之前就照办了——解除的是视频导演 16:59 在《一拳超人》上的一条旧叫停,那件事又起不来,MV 这边什么都没动,这句也没交给它。

  • 叫停:读成只是叫停的(说它还没停的「你没停」也是:又一次叫停)不再去任何别处——不整理、不开轮。按话里的范围每个建一条叫停(来源 user_text,source_message_id 是这句话),会话里什么都不回(2026-10-30 起,ADR 0101):在跑的停住就是回答,你下一句话就接着往下。叫停照旧记下停下的轮,各自的规划、会话和最后一步;挂起的回看;搁置的规划;这些规划里仍在做的别的 Bot(effect),流程图读它。原来应用在你说话的会话里回一条回执:不进 Bot 上下文的 system 行,带 control: {kind: "receipt", verb: "stop", hold_ids, offer, scopes} 供按钮用(撤销;扩大到所有 Bot;你同时说了「算了」时加「作废这件事」),列出上面这些和此刻在跑的。2026-10-30 你看着开发助手私聊里的一张「已停下开发助手的全部工作……挂起 1 个回看,继续时恢复。此刻在跑:无。你再对它说话,它就从你这句接着往下」说:停止和恢复是内置的,是隐式的,不要这种提示。
  • 继续:读成继续的话——单说「继续」,或「继续做第二集,……」这样带着别的话的——不由应用照办,也没有回执:接着做的 Bot 自己说。它先照常归属,再解除挡着它说给的那几个 Bot 做它归到的这件事的叫停:Bot 身上的、Bot 在这件事或这张任务上的、它某一轮上的;这个会话自己的叫停、和你在这里叫停的这件事,只在这句话说给这里所有 Bot 时才解除(私聊里总是)。别的事上的叫停一律不动;话里点了「所有 Bot」「全都」的,才解除你在它之前建的每一条,在哪里按的 Stop 都算。归不到哪件事时,只解除 Bot 身上、不分事的叫停。然后这句像普通的话一样叫醒 Bot,Bot 从这句接着做、自己回你:在你的私聊里说,它就在私聊里接着做,它停在别的会话里的这件事的活不再另开一段(Claude Code 跑的 Bot 在这里开的是新的会话,那边做到哪从记录里读回来)。这句没叫醒它去做的、被解除的叫停停下的活,在原来的会话里带一条只给这个 Bot 的说明重新开始(见下)。什么都没叫停时,「继续」就是一句普通的话。还挡着的叫停(全部上的;别处建的整个群或整件事上的;这句只说给这里一部分 Bot 时,这里的群或这件事上的)不解除,留给它的按钮:Bot 收到这句只开只读的一段回答,被告知叫停还在,别说自己在接着做。原来「继续」照固定规则解除话里点到的叫停——对一个 Bot,是它在各件事上的,它在别处被 Stop 的活也算——回一条回执,被更大的叫停挡住时回一条状态行;2026-10-09 那句「继续」就这样落在了别的事上。
  • 重新开始:被解除的叫停(一句话解除的,或按钮)停下的轮,在它原来的会话里带一条系统行重新开始:你的原话、它的规划和任务、写过的文件和最后几次调用;这一行只说发生了什么,不催它做什么。它是应用写给这个 Bot 的,和回看自己那一行一样只给它:只有它叫醒、或在那里被听到的那一轮读得到,流程图照样画出这一轮从被停下的那一轮接上;会话、手机、别的 Bot、整理跳、搜索、未读和会话列表的最后一条都看不到它。在你的私聊里,它在 Bot 这期间接手的别的活旁边另开一轮;在群里或 Bot↔Bot 私聊里,一个 Bot 同时只做一轮,由它在那里已有的那一轮听到这一行,不另开第二轮(回答你的只读轮不算)。Bot 已经在那里接着做了的不再开;还有别的叫停覆盖着的也不开,交给那一条(held_over,有不是 Stop 建的就交给那样的一条),那一条解除时再开。叫停期间你对被叫停的 Bot 说的话,它只开了只读的一段回答,照不了做:这些话记在挡住它的叫停上(effect.answered_lines),解除时交还给它——每个 Bot 在每个会话、每件事里,叫停期间你说的最后一句像没被叫停那样给它开一轮,前面几句它在转录里读得到;它停下的活已在那个会话里带说明重新开始的,从转录里读;还有别的叫停覆盖着的,交给那一条,那一条解除时再交。以前只读回答完就没有下文:2026-10-04 叫停后说的「片尾的 logo 再大一点」,Bot 答「等你说继续我再放大并重出成片」,继续之后谁也没开(那件事已经通过,没有被停下的轮可以重新开始),logo 一直没放大。
  • 「停了吗」「怎么还在跑」「能停么」和只问进度的话,都是给 Bot 的话(2026-10-09 起):Bot 在干活就进它的收件箱、下一步读到,不打断它;空着就叫醒它,由它自己答。原来由应用照实况回答(control.kind 为 status):问到的范围上每一条叫停和当初那句话、其中此刻还在跑的,没叫停时给一个停下按钮;回答之前先把这些叫停下还在跑的停掉,记成违规(effect.violations,工作记录里的 hold.violation)——按钮换来的状态行(见下面的按钮)仍做这项核对,正常应当一条都没有。
  • 读成叫停、旁边还有别的话的(「先停,把第三镜换成夜景」),或两样都有的(「今天先停,明天继续」),照常投递,带上 control: {kind: "possible_control", offer, scopes} 供按钮用,其中什么都不执行:叫停旁边有别的话的挂「停下」,两样都有的挂「停下」和「继续」;「继续」只在话里点到的范围上有它能解除的叫停时才给,挂上之后叫停都解除了,信使也不再显示它。读成继续、旁边还有别的话的不挂按钮,照上面的继续办;读成根本不是控制的、读句读不了的都不挂。单说「算了 / 不做了 / 取消」不再挂按钮:它是给 Bot 的话。

卡片上的 Stop:有了叫停之后,它是一条叫停——就是私聊输入框里的停止按钮(对面的 Bot 在这个会话里有一轮在跑时,出现在发送旁边;会话窄到手机宽度、框里还没有要发的东西时,按不动的发送不画,停止就在发送的位置,打了字发送才回到它旁边;刚发出一句后 0.6 秒内点到它不算,那多半是双击发送的第二下;私聊只有这一个停止,没有菜单,消息头上也没有第二个)。停下统一在输入框:群里的回复上没有 Stop,停一个 Bot 用发送旁边停止菜单里的「停下X的全部工作」,只停它,别的 Bot 照常(见下面的停止菜单;ADR 0016 的「群里不能停」由 ADR 0040 P2 推翻,P2 当初在每个 Bot 的回复头上放了一个 Stop,2026-10-06 起去掉)。私聊的停止按钮扣住这个 Bot 在这一轮的规划里的活(这一轮没有规划就只扣这一轮),来源 user_button,你的下一句话解除(lift_on_next_user_message)。这一轮照上面那样结束,它约的回看挂起而不作废;会话里不发回执(2026-10-04 起,ADR 0058):停的就是你按的那一轮,你下一句话就解除,回执和它的「撤销」只是把你刚做的事再说一遍。停下的那一轮停在哪一步记在这条叫停上(effect),流程图上那一轮标着「被 Stop」。你关于这件事的下一句话——归到这件规划,或落在它上面——在叫醒任何人之前解除它,Bot 从你这句往下,不另带说明重开:Stop 的意思是「不是这样」。不在它和你的私聊里说的(比如在群里),只算对它说的:点了它的名(回复它的话会自动带上)、@所有人,或在它在的群里谁都没点;只对别的 Bot 说的同一件事不解除它,它挂起的回看也照旧挂着,免得它没听到你一句话就被回看叫回这件事。只算按下 Stop 之后说的话:之前发出、按下时还在整理中的那句不算。单说「继续」也是这样一句话。对这个 Bot 说的「继续」在别处说、归到那件事上时也解除它,Bot 从这句在你说话的地方接着做;归到别的事、或归不到哪件事的不解除(2026-10-09 起,见上)。挂着按钮的像控制句的话,以及别的范围的叫停,都不会这样解除。

按钮:应用读过或写出的关于叫停的话(control)带的按钮,每条话只按一次:按过的记在 control.acted,之后这一行只说做了什么,再按(连按两下、手机重发的请求)什么都不做。应用自己写的这些行——以前的回执(2026-10-30 起不再写,见上)、按钮换来的状态行(control.kind 为 status)、重启后的那一句——在对话里显示成应用的话:头像处是 Deskfolk 标识,名字是「Deskfolk」加「应用」标签,不是它归在的那个 Bot 的头像和名字,读屏读作「来自 Deskfolk 应用的消息」;按钮照旧在下面。进度询问的进度行 2026-10-09 去掉了,以前写下的照旧这样显示。你的话上挂的按钮仍在你的话下面。

  • 以前叫停的回执:「撤销」按按钮解除它的叫停,停下的活带说明重新开始(以前 Stop 也有回执,按「撤销」也一样)——撤销就是当它没按过;叫停来自你的一句话时,这句话随后照常交给 Bot(整理、叫醒,像从没被读成叫停一样,不再按控制句读);这句话是在你和一个 Bot 的私聊里说的时,停在那里的活不另带说明重开,由这句话交给 Bot:私聊里你的话总会给它开一轮,再重开就是同时做两轮。在群里,这句话只叫醒它点到的(不点名、又没有谁还在做时,只换来各 Bot 的一次判断),所以停在那里的活照样带说明重开,这句话随后像你在群里说的任何一句那样交给 Bot。「扩大到所有 Bot」建一条全部上的叫停。「一起停下《…》」在叫停时还有别的 Bot 在做的那件规划上建一条规划叫停(effect.working_beside 里的规划)。「只停《…》」给回执里每条 Bot 上的叫停先建一条这个 Bot 在那件规划里的叫停(引用同一句话),再解除原来那条:它在别处被停下的活带说明重新开始,在那件规划里的交给新建的这条。每件规划各一个按钮,最多三个;「一起停下」也是。「作废这件事」把回执里生效的叫停记为作废(action: cancel):它们照样扣着,解除就重开这件事;真正把一件事作废要等工作项。
  • 状态行和以前按钮解除叫停后的回执上的「只让 X 继续」(这些行只由按钮换来;你说的「继续」不再有):挡着的每条更大的叫停先拆成其他每个 Bot 各一条,引用建它的那句话——全部上的拆成每个 Bot 上的;规划上的拆成每个 Bot 在这件规划里的;会话上的拆成每个 Bot 在它搁置的规划和会话当前规划里的,外加其余 Bot 被它停下、不在这些规划里的每一轮上的叫停——然后连同 X 自己身上的叫停一起解除:X 的活带说明重新开始,别人的交给拆出来的那几条。「全部继续」把挡着的全部解除。两个按钮都不另回一行(2026-10-30 起);以前的回执用 held_ids 记这两个按钮针对的叫停。
  • 你的话上的按钮:「停下」就是这句话要的叫停(来源 user_button,source_message_id 是这句话),不回执;「作废」同样,记为作废(2026-10-09 起不再挂,之前「算了」那类话上的还在);「继续」(只挂在读成两样都有的话上)仍按旧规则:解除这句话点到的范围上它能解除的叫停——对一个 Bot,是它在各件事上的——停下的活带说明重新开始,不另回一行;有更大的叫停挡着解除不了时回一条状态行,什么叫停都没有时什么都不做;这是 ADR 0070 还没改的一处。以前的状态行上的「停下」叫停问到的范围。

停止菜单和列表:群里有 Bot 在这个群里做事时——也包括在从这个群开出的 Bot↔Bot 私聊里(负责人派出去的活,以及再往下派的)做事,群的叫停本来就扣住这些——发送旁边有一个停止菜单:「停下这个群里的工作」、在这个群里做事的每个 Bot、「停下这件事」和「停下所有 Bot」;已被生效的叫停覆盖的项不列。前三种和卡片上的 Stop 一样,你的下一句相关的话就解除(lift_on_next_user_message),Bot 从你这句接着往下,不另带说明重开:停下这个群里的工作,是你之后在这个群里说的任何一句;停下某个 Bot,是之后对它说的话,在哪说都算(判断同 Stop:私聊里都算,群里要点它的名、@所有人或谁都不点);停下这件事,是之后落在这件事上的话。在群里说「@X 继续」也算这样一句:群上的叫停解除,只有 X 被停下的活带说明重开,别的 Bot 停下的活就停着,像你说了一句只对 X 的话一样。谁都不点的那一句是对全群说的:它叫醒谁照常(有负责人就是负责人),被解除的叫停停下、这句话没叫到的活——比如某个 Bot 在它和负责人的私聊里做的那部分——也带说明重开,说明里有你的原话,你这句话也作为要它逐条处置的一条收件转给它。以前这句只叫醒负责人:2026-10-04 的走查里,群停下时文案正在它和设计师的私聊里写宣传语,你说「宣传语改成英文的,海报改横版」后它一直停着、听不到这句,3 分钟后监督器才把它叫回来「回复」旧的委派。(2026-10-30 起会话里不回执;以前回执最后一行照范围写「你在这个群里再说话,叫停就结束……」。)下一句话就解除,是因为叫停之后你的新指令(「从头再做一遍」)本来只换来只读回答,横幅一直挂着,Bot 早就停了也要你去点解除。「停下所有 Bot」也一样(2026-10-10 起,ADR 0081):你对哪个 Bot 说话,整条就结束。私聊没有这个菜单,只有上面那个 Stop:它停这一轮,你的下一句话就解除;菜单栏的「全部停下」、流程图的「停下这件事」、说一句「停下」也都是先停下,不再有一直停到你解除的叫停。流程图标题行有「停下这件事」「停下所有 Bot」。工具菜单里没有停止项(2026-10-11 起去掉了原来的「全部停下」:它和停止菜单、流程图里的「停下所有 Bot」重复);菜单栏的「全部停下」建全部上的叫停,它停的是之后会开的轮,不只是眼前在跑的,所以没有 Bot 在做事时也能按,守护进程还没有叫停时退回停下最近有活动的私聊里的那一轮。菜单叫的停走 POST /v1/holds,带上菜单所在的会话,记进工作记录,不回执。守护进程拒绝的解除在按下的地方说「没做成,再试一次」;连不上守护进程时这些按钮显示但按不了。你按「作废」建的、不随你的话结束的叫停列在会话列表上方:范围、时间、「作废」,各带「解除」(按按钮解除,就是继续,见接口);先停下的叫停不列,会话行也不标(2026-10-10 起,ADR 0081)。流程图在标题下列出这件规划自己的搁置,和覆盖这件事、等你解除的叫停——某个 Bot 在它里面的、它所在会话上的、全部上的——各带「解除」。叫停建立或解除时,打开着的流程图重读规划,之后的编辑从叫停写出的那个版本起,不会被 409 拒;万一还是 409,它照旧重读。要点底部和修订历史把叫停写出的版本标为「叫停改的」(修订的 cause: "hold",规划详情的 revision_cause)。这些都要守护进程到了叫停这一级:快照里有 holds 才出现。

启动时:引擎级别到了叫停这一级后,每次启动都核对一遍。在有叫停之前就被搁置的规划——状态和要点里的状态都是搁置,你或整理跳叫停时就是这样——接成一条来源为 legacy 的规划叫停,此后只有你能让它回到进行中;只是被新规划挤下当前位置的(要点里仍是进行中)不动。然后把叫停覆盖着、却没有搁置的规划和没有挂起的回看补上,记进 daemon.log。

接口:GET /v1/holds(默认只列生效中的,?status=all 连已解除的一起,新的在前)、GET /v1/holds/:id、POST /v1/holds(你从按钮或菜单叫停,记作 user_button;它覆盖的轮照上面那样当场结束)、POST /v1/holds/:id/lift(解除,它停下的轮像说「继续」一样重新开始,Stop 建的除外;已解除的原样返回)、POST /v1/messages/:id/control(上面的按钮:{action, task_id?},task_id 给「一起停下」「只停」指明规划;返回 {made, lifted};这句话没有按钮或不提供这个按钮时 422);手机上同样可用。POST /v1/holds 可带 session_id:菜单所在的会话,记在工作记录的 control.hold 上(2026-10-30 之前回执发到那里)。快照的 holds 是生效中的叫停,新的在前,到叫停这一级之前没有这个字段;叫停的 plan_title 是它点名的规划的标题。用 PATCH /v1/tasks/:id/spec 把规划改成搁置,也照样结束在里面跑的轮。POST /v1/turns/stop 就是上面的卡片 Stop。应用读过或写出的、关于你的叫停的话带着 control(MessageControl)。叫停的建立、解除和记下的效果都作为 hold.upsert 事件推给客户端。规划详情的 held_by 是读取那一刻的:全部上的叫停之类不改规划那一行,建立和解除时只推 hold.upsert,显示 held_by 的客户端收到它就重读规划。

回避:把搁置当成叫停本身, 让 Bot 或整理跳解除叫停, 删掉叫停记录, 叫停一个 Bot 就把它所在的整件事搁置, 清空聊天时连叫停一起清掉, 被叫停的 Bot 还被别的 Bot、回看或日程叫醒, 叫停后还让它跑壳命令或发消息, 叫停后让正在跑的轮跑完这一跳, 叫停之后你下了新指令、叫停还挂着只换来只读回答, 叫停后列表上挂着等你按解除, 叫停或接着做之后在会话里回一张说明做了什么的回执, 问一句进度就让它接着干, 应用替只读回答的 Bot 说话

控制句(Control line)

你的一句话被读句(模型)读成只是在叫停(「停下」「你手头的生成停一下」「停下你所有的工作」;说它没停的「你没停」也是,算又一次叫停),由应用当场照办:建叫停、停掉它覆盖的在跑的轮,不开轮、不经整理;读成继续的(单说「继续」,或「继续做第二集,……」这样带着别的话的)不由应用照办:先归到它说的那件事,解除挡着它说给的 Bot 做这件事的叫停,再像普通的话一样交给 Bot,由 Bot 接着做、自己回你。停不停、继续不继续只看读句(2026-10-09 起,ADR 0070):固定规则不再先读、不再照办,只用来定话里说的范围;读句读不了(没设、出错、超时,退回词表)时什么都不执行,这句照常交给 Bot,要立刻停就按输入框的停止按钮。读句从这句到达就开始,读成纯叫停的照样插到前面还在读的话之前。剧本、台词、画面里的「停」(「审片员:停」)、条件(「卡住了就停」)、对作品的要求(「别再用冻帧补时长」)都不算;请它停的问句(「能先停一下吗」)算叫停,问停没停、能不能停(「停了吗」「怎么还在跑」「能停么」)是给 Bot 的话;不带 @ 的 Bot 名后面要跟「,」「、」「你」或「也」才算对它说。应用照办之后不在会话里回执(ADR 0101):停了哪几段、各停在哪一步,挂起了几个回看,搁置了哪件事,这件事里谁还在照常做,都记在叫停上。范围按话和地点定:私聊里是对面的 Bot,连带它交出去、还没交回的活(往下三层);群里不点名是这个群,带单数「你」是你回复的、或十分钟内唯一对你说话的 Bot,再加这个群;点名的 Bot 各一条;「所有 Bot」「全都停」是全部,日程也暂停——话里有「你」「你们」、点了名、说了群里私聊里或「这件事」时按更窄的那个。「继续」只解除它归到的那件事上的叫停:Bot 身上的、Bot 在这件事或这张任务上的、它某一轮上的;这个会话自己的、和你在这里叫停的这件事,只在它说给这里所有 Bot 时才解除;别的事上的叫停不动,话里点了「所有 Bot」「全都」才解除你之前建的每一条(按过的 Stop 也算);归不到哪件事时只解除 Bot 身上的。在你的私聊里说,Bot 就在私聊里接着做;这句没叫醒它去做的、被停下的活,在原处带一条只给它的说明(你的原话、停下前在做什么)重新开始,会话里不显示。什么都没叫停时它就是一句普通的话;按过 Stop 之后它就是解除那条叫停的「这件事上的下一句话」;对一个 Bot 说的不动别的 Bot 的 Stop;还挡着的叫停(全部、别处建的整个群或整件事)不解除,Bot 只能开只读的一段回答,被告知叫停还在,别说自己在接着做;群停止菜单建的叫停:你在群里的下一句话,「@X 继续」也算,就解除它,只有点到的 Bot 带说明重新开始。「继续」没有回执:接着做的 Bot 自己说。读成叫停、旁边还有别的话的(「先停,把第三镜换成夜景」)照常交给 Bot,只在这句话上挂「停下」按钮,读成两样都有的再加「继续」(它仍按旧规则解除);带着别的话的继续、单说的「算了」都不挂按钮。按钮各按一次(2026-10-30 之前写下的回执不再新写,上面的按钮照样能按):回执上的「撤销」解除这次叫停、停下的活重新开始,被读成叫停的那句话照常交给 Bot(在你和那个 Bot 的私聊里由这句话交给它,停在那里的那一轮不另开;群里这句话只叫醒它点到的,停下的活照样重新开始);「扩大到所有 Bot」;「一起停下《…》」停下别的 Bot 还在做的那件规划;「只停《…》」把对一个 Bot 全部工作的叫停缩小到那一件,其余的活带着说明重新开始;「作废这件事」让叫停记为作废,解除就重开。按钮换来的状态行和回执上,「只让 X 继续」把挡着它的更大的叫停拆成其他每个 Bot 各一条,只放它走;「全部继续」连那条一起解除。话上的「停下」就是这句话要的叫停,叫停记下这句话,会话里同样不回执。引擎级别到了叫停这一级才有。细节见行为说明·叫停。

行为细节

2026-10-09 起:叫停只是先停下(ADR 0071)。你的每一种叫停——卡片上的 Stop、打字的「停下」「停下 X」「停下所有 Bot」、群和工具菜单的停下、流程图上的停下——都只做两件事:现在停下它覆盖的活;在你开口之前,挡住会让 Bot 自己重新开工的东西(它约的回看、别的 Bot 的话、生成作业完成的通知、监督器的续跑)。你对一个 Bot 的话和操作从来不被挡:对它说一句话、改你的话、直接插入、在交付卡上退回、回答它的提问、在中断或重启提示上按继续、说「继续」、在列表上按解除,它都照做。只覆盖这个 Bot 的叫停随之解除;覆盖好几个 Bot 的(全部、一个群、一件事、一个任务)只放开它(effect.released_bots,所有「是否被扣」的判断都认,包括数据库自己的触发器),其余的照停,等你对它们开口或解除;覆盖的 Bot 都放开了,这条叫停就解除,搁置的规划回到原样。只问进度的话(「还在做吗」)不算让它继续:它照停着回答你。按解除就是继续:被停下的活带说明接着做。下文说某些叫停「一直停着」「要你亲手解除」、你的话「只开一段只读的轮」的地方,现在只对应用自己的保持(启动时接管的旧搁置)、和「新开一件事」时作废旧事的那条成立;你在叫停之前发出、还没读到的话被扣着,可以「直接插入」。

2026-10-10 起:停下就是停下(ADR 0081)。你的话所关于的叫停整条解除,不管它覆盖几个 Bot:「停下所有 Bot」之后对任何一个 Bot 说话、停下一个群之后在这个群里说话、停下一件事之后说到这件事,这条叫停就结束,覆盖的 Bot 的回看、别的 Bot 的话、作业完成的通知都恢复,搁置的规划回到原样;不再写 effect.released_bots(旧库里已有的照旧被读到,直到被你的话整条解除)。只有你说到的 Bot 接着做(说「继续」时带着它停下的那件事);别的 Bot 停下的那一轮不带说明重开。叫停不在界面上留状态:会话列表上方不列先停下的叫停,会话行不标「已叫停」,头像不睡觉;上方那一条只剩你按「作废」建的、不随你的话结束的叫停。流程图只列这件事自己的搁置和等你解除的叫停。下文说「放开」「其余的接着停着」「所有 Bot 继续」、列表上的「已叫停」和「全部继续」的地方,都以这一段为准。

P4b 续跑补充:以下叫停范围、只有用户解除和回执约定仍有效。2 级解除后的段按 Bot × 规划唯一执行与工作名额接收:同规划听进已有段,不同规划开自己的段或排队;下文「群或 Bot↔Bot 私聊一个 Bot 同时只做一轮」仅描述 0/1 级兼容,不再把别的规划工作合进这一段。中断桌面的继续保护另见桌面段,本次不启用重启后自动监督续跑。

你叫的停落成的一条记录。范围:全部、某个 Bot(跟着它到它在的每个会话)、某个会话(连带以这个会话为主会话的规划,哪怕活在 Bot↔Bot 私聊里做——那条私聊里做的仍是这个群的事)、某件规划(连同它的任务)、某个任务、某个 Bot 在某件规划里的活、某一轮(覆盖这一轮约的回看);另可带上建立时就定下的额外覆盖,比如这个 Bot 交出去的活所在的私聊,之后不再随着变。只有你能解除:用你的一句话,或一个按钮;别的调用方没有解除的入口,Bot 和整理跳都不行。记录从不删除:清空聊天、删群只把它指向的那句话置空,叫停本身还在;叫停点名的规划(叫停在这件规划、某个 Bot 在它里面的活、它的某个任务上,或额外覆盖里有它们,已解除的也算)清空聊天时也留着,不会让叫停指着一件已经没了的事。删群时,群上的叫停搁置着、群删后还留着的规划(别的会话里有它的轮次或消息)不再属于这个群,群上的叫停也就够不着它们,所以每件先各得一条自己的规划叫停(来源 migration),带着解除后怎么恢复;叫停之前就按旧办法搁置了的(状态和要点都是搁置)也一样,解除后回到进行中,和启动时接管旧搁置的做法相同;这件规划本来就有规划上的叫停的不用。

建立时:记下叫停的同一次写入里,它覆盖的在跑的轮都结束为 stopped;写入落库后,这一轮的补全、它的 MCP 调用(告诉服务器这次调用取消了)、它跑的命令的进程组(先让它们退出,3 秒后还在就强行结束)一起中止。每一轮做到了哪一步——写过的文件、最后几次调用——记在这条叫停上(effect.stopped_turns),同时记下同一件规划里它没覆盖、仍在做的别的 Bot 的轮(working_beside),以及结束之后它覆盖的还在跑的(still_running,除非出了错否则是空的)。你说的或按的叫停还连带被覆盖的 Bot 交出去、还没交回的活:由被覆盖的轮写的话开出来的别的 Bot 的轮——或者由这样的轮写的话再开出来的,往下最多三层——只要还在跑或还有待响的回看。每一个都作为额外覆盖记在那一轮上:覆盖那一轮本身、它约的回看和它的话会叫醒的人,不覆盖那个 Bot 自己的别的活;上游的一概不停。叫停放行开出的只读轮让它把回答说完。工作记录里记一条 control.hold。

规划状态:规划或会话上的叫停把它覆盖的进行中规划改成搁置,状态和要点里的状态一起改——流程图每次编辑都把要点里的状态原样送回,整理跳也在要点上改,只改一处就会被改回进行中。规划仍是会话的当前规划,只是停住了,不是被别的事挤开。已经被新规划挤下当前位置的(状态已是搁置、要点里仍是进行中)也一样把要点改成搁置,解除后回到被挤开的样子:要点里是进行中、状态仍是搁置,不当成回到进行中,免得不在当前位置的规划被叫回去干活。叫停期间整理跳或接回要它进行中,它仍是搁置,只记下解除后回到进行中;叫停期间被新开或接回的规划挤下当前位置的,解除后也回到被挤开的样子;在这个会话里新开的规划一开就是搁置;标已完成照样生效。叫停把要点改成搁置、解除时改回去,各算要点的一个版本:流程图拿着之前的版本再提交会被拒(409 revision_conflict),不会把刚叫的停送回去,也不会在解除后又叫一次停;这两个版本不算你写的,也不算整理,整理跳照样读叫停之前的话;修订历史里它们带 cause: "hold"。解除后回到原来的状态,空着的话也回到会话的当前位置;还有别的规划或会话上的叫停扣着它,就仍是搁置,由那一条记着解除后怎么恢复。Bot、任务、某一轮上的叫停不改规划状态,规划里别的 Bot 的活照常;全部上的也不改(否则要改遍每一件规划),规划详情的 held_by 列出覆盖整件事的叫停(规划上的、它所在会话上的、全部上的)。

旧的改状态入口:引擎级别到了叫停这一级之后,把规划状态改成搁置(PATCH /v1/tasks/:id/spec,旧客户端和手机的做法)就是在这件规划上叫停;改回进行中或标成已完成,解除这件规划上的叫停。会话或全部上的叫停还在时,改回进行中之后它仍是搁置(会话的)或状态照旧(全部的),held_by 说明是哪一条。算不算改状态,拿要点里的状态比:流程图显示并送回的是它,一次只改目标的编辑把它原样送回,不算叫停也不算解除;被挤开的规划状态列是搁置、要点里是进行中,按状态列比会把这样的编辑当成继续。在这一级之前,改成搁置就只是状态。

回看:被覆盖的待回看挂起,同时标作废,这样不认识叫停的旧版本也不会让它响;叫停期间新约的也一样挂起。解除后没有别的叫停覆盖它,就恢复待响,已经过了时间的随后补响一次。挂起期间会话被清空或删除、Bot 被删除,或者在有叫停之前约它的那一轮被 Stop,它就真作废,解除也不回来;0–2 级 Bot 在同一会话又约一次就以新的为准,旧的不再恢复;3 级只由同一精确工作项/去重键的新 timer 取代,不同工作或委派事件等待不因此丢掉。

叫醒和工具:叫停覆盖到的,什么都叫不醒——你的话(只开一段只读的轮,见下),别的 Bot 的话(点名它,或 Bot↔Bot 私聊里的每一句),它约的回看到点,它开的 Bot↔Bot 私聊静下来后的回报,规划静下来后的叫回,日程到点,中断后点「继续」,都不开轮;被叫停覆盖着的、正在跑的那一轮也不再听到新来的话:说的是叫停范围外的事的,在它旁边另开一轮,不打断它;你在别的会话里说、归到这件事的话也不转给它。被叫停的 Bot 自己说的话也叫不醒别人,它在 Bot↔Bot 私聊里的对方静下来时也不会把发起方叫回来,也不留到以后:解除后它在私聊里再做完一轮,私聊再静下来,就会叫回发起方。你在群里不点名说的话,被叫停的 Bot 不参与判断(不花那次判断调用)。每一次被挡下的叫醒都记进工作记录(work_events 里的 wake.suppressed),写明是什么叫醒(你的话、别的 Bot 的话、回看、规划叫回、日程、继续……)和是哪几条叫停。回看被挡下时挂起,解除后恢复;正在跑的一轮听到了、却没读就结束的话逐条看叫停:说的是被叫停的事的,每条记一次被挡下的叫醒,留在转录里等解除,其中最新的回看挂起,解除后再响;其余的照常在最新一条上再开一轮,只带上这些没被叫停的;开私聊的 Bot 被叫停时,私聊静下来后给它的回报也挂起,解除后再叫它回来;规划静下来后的叫回不留,等这件事下次有一轮结束、再静下来时再看;日程到点只记一次、不算已跑,解除后按最近一次补跑一回;「继续」返回 409 held,手机上也是这个错误码。被叫停覆盖着的轮次,有副作用的工具调用一律不执行,结果是 held:壳、写和删文件、发消息、约回看、向你提问、改人设、技能、记忆、日程、端点或 MCP 服务器、没有标只读的 MCP 工具;只读的照常(读文件、列目录、各类 list_*、read_skill、end_turn,以及服务器标了 readOnlyHint 的 MCP 工具,比如查一个视频作业)。等你批准的调用,你点允许时它已被叫停,也不执行。库本身再兜一层:turns 表上的触发器拒绝写入被叫停覆盖的活轮(不认识叫停的旧版本写的、没有 mode 的行一样拒绝——叫停优先于兼容),也拒绝把一轮活着的原地挪进覆盖范围、或改掉它的 mode。唯一放行的是你的一句话开的只读一轮(mode = readonly):你对被叫停的 Bot 说话——在它的私聊里,或在群里点它的名——就在它原来的活旁边开这样一轮,不挂在任何规划上,只给它看不改东西的工具,开头一行写明你叫停了这件工作(带你的原话)、这一段只能回答,你要它接着做的话,就直说叫停还在,别说自己在接着做。它的回复照常发出,不叫醒任何人;别的 Bot 这时点它的名,在它旁边另开一轮,不打断它。这一段一个字没回就结束时(读完文件给了空回复,或直接 end_turn),应用不再在它的位置回一条状态行(2026-10-09 起,ADR 0070:应用不替 Bot 说话)。那条状态行是 2026-10-03 加的:群被停下后你说「从头再做一遍,之前的作废」,只读段读了九跳文件、最后回了个空,群里什么都没出现。

你的话:一句话是不是叫停、是不是继续,只看读句(模型)怎么读(2026-10-09 起,ADR 0070)。控制句的固定规则(见 CONTEXT 的控制句)不再先读、不再照办,只剩一个用处,不执行任何东西:定话里说的范围(「你」是谁、「所有 Bot」、「这件事」)。读句读不了(没设、出错、超时,退回词表)时什么都不执行,这句照常交给 Bot;要立刻停,用输入框的停止按钮。读句从这句到达就开始,不等它前面还在读的话,所以读成纯叫停的照样插到它们前面(ADR 0063 的先后只管别的话)。原来固定规则先读:2026-10-09 早上你在视频导演的私聊里说「继续」,这句被当成纯继续,在还没读、还没归到哪件事之前就照办了——解除的是视频导演 16:59 在《一拳超人》上的一条旧叫停,那件事又起不来,MV 这边什么都没动,这句也没交给它。

  • 叫停:读成只是叫停的(说它还没停的「你没停」也是:又一次叫停)不再去任何别处——不整理、不开轮。按话里的范围每个建一条叫停(来源 user_text,source_message_id 是这句话),会话里什么都不回(2026-10-30 起,ADR 0101):在跑的停住就是回答,你下一句话就接着往下。叫停照旧记下停下的轮,各自的规划、会话和最后一步;挂起的回看;搁置的规划;这些规划里仍在做的别的 Bot(effect),流程图读它。原来应用在你说话的会话里回一条回执:不进 Bot 上下文的 system 行,带 control: {kind: "receipt", verb: "stop", hold_ids, offer, scopes} 供按钮用(撤销;扩大到所有 Bot;你同时说了「算了」时加「作废这件事」),列出上面这些和此刻在跑的。2026-10-30 你看着开发助手私聊里的一张「已停下开发助手的全部工作……挂起 1 个回看,继续时恢复。此刻在跑:无。你再对它说话,它就从你这句接着往下」说:停止和恢复是内置的,是隐式的,不要这种提示。
  • 继续:读成继续的话——单说「继续」,或「继续做第二集,……」这样带着别的话的——不由应用照办,也没有回执:接着做的 Bot 自己说。它先照常归属,再解除挡着它说给的那几个 Bot 做它归到的这件事的叫停:Bot 身上的、Bot 在这件事或这张任务上的、它某一轮上的;这个会话自己的叫停、和你在这里叫停的这件事,只在这句话说给这里所有 Bot 时才解除(私聊里总是)。别的事上的叫停一律不动;话里点了「所有 Bot」「全都」的,才解除你在它之前建的每一条,在哪里按的 Stop 都算。归不到哪件事时,只解除 Bot 身上、不分事的叫停。然后这句像普通的话一样叫醒 Bot,Bot 从这句接着做、自己回你:在你的私聊里说,它就在私聊里接着做,它停在别的会话里的这件事的活不再另开一段(Claude Code 跑的 Bot 在这里开的是新的会话,那边做到哪从记录里读回来)。这句没叫醒它去做的、被解除的叫停停下的活,在原来的会话里带一条只给这个 Bot 的说明重新开始(见下)。什么都没叫停时,「继续」就是一句普通的话。还挡着的叫停(全部上的;别处建的整个群或整件事上的;这句只说给这里一部分 Bot 时,这里的群或这件事上的)不解除,留给它的按钮:Bot 收到这句只开只读的一段回答,被告知叫停还在,别说自己在接着做。原来「继续」照固定规则解除话里点到的叫停——对一个 Bot,是它在各件事上的,它在别处被 Stop 的活也算——回一条回执,被更大的叫停挡住时回一条状态行;2026-10-09 那句「继续」就这样落在了别的事上。
  • 重新开始:被解除的叫停(一句话解除的,或按钮)停下的轮,在它原来的会话里带一条系统行重新开始:你的原话、它的规划和任务、写过的文件和最后几次调用;这一行只说发生了什么,不催它做什么。它是应用写给这个 Bot 的,和回看自己那一行一样只给它:只有它叫醒、或在那里被听到的那一轮读得到,流程图照样画出这一轮从被停下的那一轮接上;会话、手机、别的 Bot、整理跳、搜索、未读和会话列表的最后一条都看不到它。在你的私聊里,它在 Bot 这期间接手的别的活旁边另开一轮;在群里或 Bot↔Bot 私聊里,一个 Bot 同时只做一轮,由它在那里已有的那一轮听到这一行,不另开第二轮(回答你的只读轮不算)。Bot 已经在那里接着做了的不再开;还有别的叫停覆盖着的也不开,交给那一条(held_over,有不是 Stop 建的就交给那样的一条),那一条解除时再开。叫停期间你对被叫停的 Bot 说的话,它只开了只读的一段回答,照不了做:这些话记在挡住它的叫停上(effect.answered_lines),解除时交还给它——每个 Bot 在每个会话、每件事里,叫停期间你说的最后一句像没被叫停那样给它开一轮,前面几句它在转录里读得到;它停下的活已在那个会话里带说明重新开始的,从转录里读;还有别的叫停覆盖着的,交给那一条,那一条解除时再交。以前只读回答完就没有下文:2026-10-04 叫停后说的「片尾的 logo 再大一点」,Bot 答「等你说继续我再放大并重出成片」,继续之后谁也没开(那件事已经通过,没有被停下的轮可以重新开始),logo 一直没放大。
  • 「停了吗」「怎么还在跑」「能停么」和只问进度的话,都是给 Bot 的话(2026-10-09 起):Bot 在干活就进它的收件箱、下一步读到,不打断它;空着就叫醒它,由它自己答。原来由应用照实况回答(control.kind 为 status):问到的范围上每一条叫停和当初那句话、其中此刻还在跑的,没叫停时给一个停下按钮;回答之前先把这些叫停下还在跑的停掉,记成违规(effect.violations,工作记录里的 hold.violation)——按钮换来的状态行(见下面的按钮)仍做这项核对,正常应当一条都没有。
  • 读成叫停、旁边还有别的话的(「先停,把第三镜换成夜景」),或两样都有的(「今天先停,明天继续」),照常投递,带上 control: {kind: "possible_control", offer, scopes} 供按钮用,其中什么都不执行:叫停旁边有别的话的挂「停下」,两样都有的挂「停下」和「继续」;「继续」只在话里点到的范围上有它能解除的叫停时才给,挂上之后叫停都解除了,信使也不再显示它。读成继续、旁边还有别的话的不挂按钮,照上面的继续办;读成根本不是控制的、读句读不了的都不挂。单说「算了 / 不做了 / 取消」不再挂按钮:它是给 Bot 的话。

卡片上的 Stop:有了叫停之后,它是一条叫停——就是私聊输入框里的停止按钮(对面的 Bot 在这个会话里有一轮在跑时,出现在发送旁边;会话窄到手机宽度、框里还没有要发的东西时,按不动的发送不画,停止就在发送的位置,打了字发送才回到它旁边;刚发出一句后 0.6 秒内点到它不算,那多半是双击发送的第二下;私聊只有这一个停止,没有菜单,消息头上也没有第二个)。停下统一在输入框:群里的回复上没有 Stop,停一个 Bot 用发送旁边停止菜单里的「停下X的全部工作」,只停它,别的 Bot 照常(见下面的停止菜单;ADR 0016 的「群里不能停」由 ADR 0040 P2 推翻,P2 当初在每个 Bot 的回复头上放了一个 Stop,2026-10-06 起去掉)。私聊的停止按钮扣住这个 Bot 在这一轮的规划里的活(这一轮没有规划就只扣这一轮),来源 user_button,你的下一句话解除(lift_on_next_user_message)。这一轮照上面那样结束,它约的回看挂起而不作废;会话里不发回执(2026-10-04 起,ADR 0058):停的就是你按的那一轮,你下一句话就解除,回执和它的「撤销」只是把你刚做的事再说一遍。停下的那一轮停在哪一步记在这条叫停上(effect),流程图上那一轮标着「被 Stop」。你关于这件事的下一句话——归到这件规划,或落在它上面——在叫醒任何人之前解除它,Bot 从你这句往下,不另带说明重开:Stop 的意思是「不是这样」。不在它和你的私聊里说的(比如在群里),只算对它说的:点了它的名(回复它的话会自动带上)、@所有人,或在它在的群里谁都没点;只对别的 Bot 说的同一件事不解除它,它挂起的回看也照旧挂着,免得它没听到你一句话就被回看叫回这件事。只算按下 Stop 之后说的话:之前发出、按下时还在整理中的那句不算。单说「继续」也是这样一句话。对这个 Bot 说的「继续」在别处说、归到那件事上时也解除它,Bot 从这句在你说话的地方接着做;归到别的事、或归不到哪件事的不解除(2026-10-09 起,见上)。挂着按钮的像控制句的话,以及别的范围的叫停,都不会这样解除。

按钮:应用读过或写出的关于叫停的话(control)带的按钮,每条话只按一次:按过的记在 control.acted,之后这一行只说做了什么,再按(连按两下、手机重发的请求)什么都不做。应用自己写的这些行——以前的回执(2026-10-30 起不再写,见上)、按钮换来的状态行(control.kind 为 status)、重启后的那一句——在对话里显示成应用的话:头像处是 Deskfolk 标识,名字是「Deskfolk」加「应用」标签,不是它归在的那个 Bot 的头像和名字,读屏读作「来自 Deskfolk 应用的消息」;按钮照旧在下面。进度询问的进度行 2026-10-09 去掉了,以前写下的照旧这样显示。你的话上挂的按钮仍在你的话下面。

  • 以前叫停的回执:「撤销」按按钮解除它的叫停,停下的活带说明重新开始(以前 Stop 也有回执,按「撤销」也一样)——撤销就是当它没按过;叫停来自你的一句话时,这句话随后照常交给 Bot(整理、叫醒,像从没被读成叫停一样,不再按控制句读);这句话是在你和一个 Bot 的私聊里说的时,停在那里的活不另带说明重开,由这句话交给 Bot:私聊里你的话总会给它开一轮,再重开就是同时做两轮。在群里,这句话只叫醒它点到的(不点名、又没有谁还在做时,只换来各 Bot 的一次判断),所以停在那里的活照样带说明重开,这句话随后像你在群里说的任何一句那样交给 Bot。「扩大到所有 Bot」建一条全部上的叫停。「一起停下《…》」在叫停时还有别的 Bot 在做的那件规划上建一条规划叫停(effect.working_beside 里的规划)。「只停《…》」给回执里每条 Bot 上的叫停先建一条这个 Bot 在那件规划里的叫停(引用同一句话),再解除原来那条:它在别处被停下的活带说明重新开始,在那件规划里的交给新建的这条。每件规划各一个按钮,最多三个;「一起停下」也是。「作废这件事」把回执里生效的叫停记为作废(action: cancel):它们照样扣着,解除就重开这件事;真正把一件事作废要等工作项。
  • 状态行和以前按钮解除叫停后的回执上的「只让 X 继续」(这些行只由按钮换来;你说的「继续」不再有):挡着的每条更大的叫停先拆成其他每个 Bot 各一条,引用建它的那句话——全部上的拆成每个 Bot 上的;规划上的拆成每个 Bot 在这件规划里的;会话上的拆成每个 Bot 在它搁置的规划和会话当前规划里的,外加其余 Bot 被它停下、不在这些规划里的每一轮上的叫停——然后连同 X 自己身上的叫停一起解除:X 的活带说明重新开始,别人的交给拆出来的那几条。「全部继续」把挡着的全部解除。两个按钮都不另回一行(2026-10-30 起);以前的回执用 held_ids 记这两个按钮针对的叫停。
  • 你的话上的按钮:「停下」就是这句话要的叫停(来源 user_button,source_message_id 是这句话),不回执;「作废」同样,记为作废(2026-10-09 起不再挂,之前「算了」那类话上的还在);「继续」(只挂在读成两样都有的话上)仍按旧规则:解除这句话点到的范围上它能解除的叫停——对一个 Bot,是它在各件事上的——停下的活带说明重新开始,不另回一行;有更大的叫停挡着解除不了时回一条状态行,什么叫停都没有时什么都不做;这是 ADR 0070 还没改的一处。以前的状态行上的「停下」叫停问到的范围。

停止菜单和列表:群里有 Bot 在这个群里做事时——也包括在从这个群开出的 Bot↔Bot 私聊里(负责人派出去的活,以及再往下派的)做事,群的叫停本来就扣住这些——发送旁边有一个停止菜单:「停下这个群里的工作」、在这个群里做事的每个 Bot、「停下这件事」和「停下所有 Bot」;已被生效的叫停覆盖的项不列。前三种和卡片上的 Stop 一样,你的下一句相关的话就解除(lift_on_next_user_message),Bot 从你这句接着往下,不另带说明重开:停下这个群里的工作,是你之后在这个群里说的任何一句;停下某个 Bot,是之后对它说的话,在哪说都算(判断同 Stop:私聊里都算,群里要点它的名、@所有人或谁都不点);停下这件事,是之后落在这件事上的话。在群里说「@X 继续」也算这样一句:群上的叫停解除,只有 X 被停下的活带说明重开,别的 Bot 停下的活就停着,像你说了一句只对 X 的话一样。谁都不点的那一句是对全群说的:它叫醒谁照常(有负责人就是负责人),被解除的叫停停下、这句话没叫到的活——比如某个 Bot 在它和负责人的私聊里做的那部分——也带说明重开,说明里有你的原话,你这句话也作为要它逐条处置的一条收件转给它。以前这句只叫醒负责人:2026-10-04 的走查里,群停下时文案正在它和设计师的私聊里写宣传语,你说「宣传语改成英文的,海报改横版」后它一直停着、听不到这句,3 分钟后监督器才把它叫回来「回复」旧的委派。(2026-10-30 起会话里不回执;以前回执最后一行照范围写「你在这个群里再说话,叫停就结束……」。)下一句话就解除,是因为叫停之后你的新指令(「从头再做一遍」)本来只换来只读回答,横幅一直挂着,Bot 早就停了也要你去点解除。「停下所有 Bot」也一样(2026-10-10 起,ADR 0081):你对哪个 Bot 说话,整条就结束。私聊没有这个菜单,只有上面那个 Stop:它停这一轮,你的下一句话就解除;菜单栏的「全部停下」、流程图的「停下这件事」、说一句「停下」也都是先停下,不再有一直停到你解除的叫停。流程图标题行有「停下这件事」「停下所有 Bot」。工具菜单里没有停止项(2026-10-11 起去掉了原来的「全部停下」:它和停止菜单、流程图里的「停下所有 Bot」重复);菜单栏的「全部停下」建全部上的叫停,它停的是之后会开的轮,不只是眼前在跑的,所以没有 Bot 在做事时也能按,守护进程还没有叫停时退回停下最近有活动的私聊里的那一轮。菜单叫的停走 POST /v1/holds,带上菜单所在的会话,记进工作记录,不回执。守护进程拒绝的解除在按下的地方说「没做成,再试一次」;连不上守护进程时这些按钮显示但按不了。你按「作废」建的、不随你的话结束的叫停列在会话列表上方:范围、时间、「作废」,各带「解除」(按按钮解除,就是继续,见接口);先停下的叫停不列,会话行也不标(2026-10-10 起,ADR 0081)。流程图在标题下列出这件规划自己的搁置,和覆盖这件事、等你解除的叫停——某个 Bot 在它里面的、它所在会话上的、全部上的——各带「解除」。叫停建立或解除时,打开着的流程图重读规划,之后的编辑从叫停写出的那个版本起,不会被 409 拒;万一还是 409,它照旧重读。要点底部和修订历史把叫停写出的版本标为「叫停改的」(修订的 cause: "hold",规划详情的 revision_cause)。这些都要守护进程到了叫停这一级:快照里有 holds 才出现。

启动时:引擎级别到了叫停这一级后,每次启动都核对一遍。在有叫停之前就被搁置的规划——状态和要点里的状态都是搁置,你或整理跳叫停时就是这样——接成一条来源为 legacy 的规划叫停,此后只有你能让它回到进行中;只是被新规划挤下当前位置的(要点里仍是进行中)不动。然后把叫停覆盖着、却没有搁置的规划和没有挂起的回看补上,记进 daemon.log。

接口:GET /v1/holds(默认只列生效中的,?status=all 连已解除的一起,新的在前)、GET /v1/holds/:id、POST /v1/holds(你从按钮或菜单叫停,记作 user_button;它覆盖的轮照上面那样当场结束)、POST /v1/holds/:id/lift(解除,它停下的轮像说「继续」一样重新开始,Stop 建的除外;已解除的原样返回)、POST /v1/messages/:id/control(上面的按钮:{action, task_id?},task_id 给「一起停下」「只停」指明规划;返回 {made, lifted};这句话没有按钮或不提供这个按钮时 422);手机上同样可用。POST /v1/holds 可带 session_id:菜单所在的会话,记在工作记录的 control.hold 上(2026-10-30 之前回执发到那里)。快照的 holds 是生效中的叫停,新的在前,到叫停这一级之前没有这个字段;叫停的 plan_title 是它点名的规划的标题。用 PATCH /v1/tasks/:id/spec 把规划改成搁置,也照样结束在里面跑的轮。POST /v1/turns/stop 就是上面的卡片 Stop。应用读过或写出的、关于你的叫停的话带着 control(MessageControl)。叫停的建立、解除和记下的效果都作为 hold.upsert 事件推给客户端。规划详情的 held_by 是读取那一刻的:全部上的叫停之类不改规划那一行,建立和解除时只推 hold.upsert,显示 held_by 的客户端收到它就重读规划。

回避:照词表读出的叫停或继续去执行, 用词表补漏(往词表里加词), 让叫停句经过整理跳, 把「别再用冻帧补时长」当成叫停, 吞掉一句话里的要求只执行其中的停, 叫停后在会话里回执, 回执里写没发生的事, 应用替 Bot 回「继续」「停了吗」, 「继续」还没归到哪件事就照办, 一句「继续」解除别的事上的叫停, 把「继续」吞掉不交给 Bot, 用「@X 继续」解除整个群的叫停, 说了「所有 Bot 继续」、按过 Stop 的活仍悄悄停着, 把引号、代码里或带 😂 的「停下」当成叫停, 撤销之后把被读成叫停的那句话吞掉, 按「只让 X 继续」时把别的 Bot 一起放走, 群里对别的 Bot 说的话解除了这个 Bot 的 Stop

进度询问(Status question)

你发的一句只问进度的话(「怎么样了」「第二集推进到哪一步了」「最终成片呢」,由读句读出只是在问进度),应用不替 Bot 回答,照常交给你说给的 Bot:它在干活就进它的收件箱、下一步读到,不打断它;空着就叫醒它,由它自己答。归属读成一件新的活时按当场做完算:Bot 为它查东西、跑命令都不开事,问一句「怎么样了」不会变成一件叫「怎么样了」的事。应用原来自己回答——在会话里发一条进度行,不叫醒任何 Bot——2026-10-09 去掉了(ADR 0070):那天早上你在视频导演的私聊里两次问「最终成片呢」,回你的都是挂在它名下的进度行,它本人一句都没收到,它根本没在干活,进度行只能写「现在没有人在做」。问一句进度要花一次 Bot 的调用。

回避:应用替 Bot 回答进度, 把应用写的进度挂在 Bot 名下, 为一句「怎么样了」叫醒全群, 问进度打断正在干活的 Bot, 把「怎么样了」整理成一件新事, 把带指令的话当成问进度

规划(Plan)

围绕一个目标和交付物持续推进的一件事,包含任务、用户原话、要求和产物,可跨会话、跨天和返工继续;主会话是它的归属,不是唯一能做它的地方。另开一件事不等于叫停原来的事,休眠也不等于验收或作废。细节见行为说明·规划。

行为细节

当前 2 级路径:一件事可跨会话推进,一个会话可有多个非休眠规划,不能用「会话当前槽位」替消息猜归属。代码保留 tasks/task_id 历史名字;用户请求先按归属落到已有规划,拿不准开桌面段,引用原话或第一次获准的副作用才新开。另开规划不把还在做的旧规划搁置;本次没有「全部任务已通过 → 规划已交付/已验收」的新提交状态机,旧的 active/done/parked 与任务状态仍并存,done 导入成 delivered 也不代表已经有批准过的 submission。

休眠与叫停分开:休眠不改阶段、不解除叫停,不进默认候选、不自动叫回。清空主会话使之前的规划休眠;新开规划时(桌面段开新事、work_on 引用原话新开都算),旧事只有同时两小时没用户活动、没近两小时执行、没有非 idle 的未关工作项、没有登记的 pending 作业才休眠;库从 0/1 级升到 2 级以上时,旧的被另一件事挤开的 parked 规划,没有活段、两小时内没有你的原话的,一并休眠(工作记录 plan.dormant,原因 legacy_parked),不然它们都按 active 进候选,桌面段有两个以上候选就不肯动手;delivered 满 72 小时且无用户活动也会老化休眠。旧 done 规划迁移时超过 24 小时没用户原话的导入为 delivered + 休眠。这里对 pending 作业的检查只在那张表存在且有它读的列时才读(一份放弃的草稿留下的同名表缺这些列,打开时会被挪开:空的删掉,有行的改名 external_jobs_draft_<时间>),不宣称 P4d 轮询器已上线。明确引用、用户改归或继续能重新激活,但仍受叫停限制。

以下为 0/1 级迁移兼容及已有规划显示的说明,不是 2 级消息归属算法;其中的单一当前槽位、消息先整理和换事搁置规则不适用于 2 级:

一个会话里正在推进的一件事,由应用自己整理出来,不用你先定义。代码里沿用 tasks 表和 task_id(历史名,注释里叫 plan)。它有要点:类别、目标(现在到底要做什么)、验收(怎么算完成)、规则(你定过的口径、约束、改善意见)、流程与分工、进展(已完成 / 待做 / 卡住)、状态(进行中 / 已完成 / 搁置);另记着开它的那条要求的原文(最初的要求)。要点由整理跳在你每条消息之后、以及规划静下来之后更新(静下来之后那次只记交接,见整理跳),只是验收和规则只有你在流程图里写:整理跳不再写这两样,你的话里的要求记在需求台账。每改一版留痕(哪条消息或哪一轮引起的,或是你改的),你也能在流程图里直接改。一个会话同时只有一个当前规划:整理跳判成换了一件事就新开一个、原来的搁置,判成回到以前那件就把它接回来,判成做完或搁置就空出来;没有时钟会替你切事。你叫停时它搁置,之后只有你说继续(或在流程图里改)才回到进行中。到了叫停这一级,是那条叫停扣着它(见叫停),说它还没停的话(「你没停」)读句读成又一次叫停,照叫停办,不经过整理跳(混着别的要求的照常归档;读不了的照常交给 Bot),整理跳也不再按自己的理解搁置规划;这一级之前靠整理跳:催着停的话不会被当成继续,规划静下来后的整理也不会把它改回进行中。回看、批注叫醒的一轮在里面干活也不会:开一轮从不改规划的状态。每一轮的局面里都有它的要点、你在这件事里的原话(见原话)、需求台账里对它生效的要求(见需求台账)、任务清单和本轮任务,交接到别的 Bot、别的会话、回看醒来、日程到点也一样,所以原始目标和你的要求不靠转录窗里还留不留着那一句。按类别找同类先例的做法已经删掉,局面和整理跳都不再读它。流程图头部写着上次变化是多久前、变的是什么(「上次变化 3 分钟前(任务 02《粗剪》:待验收)」,取这件事最新的一版要点、任务状态、检查的运行、轮次和需求台账的变动里最新的那个),休眠的规划标着「休眠」。规划有个名字:开它的那句话的前几个字(最多 40 码点;那句话没有字、只发了图或文件的,用它的第一个文件名,如「头像截图.png 等 2 个文件」,连文件也没有的叫「(只有附件)」,不会是空的);应用、整理跳和 Bot 都不改它,只有你能在流程图的要点里改名,它的文件夹不跟着改。看板标题、切换列表、停止菜单、流程里的读归属和局面里都叫这个名字(目标写在要点里,名字为空时才用目标);改名算你的一次改动,「上次变化」写出来,休眠的规划也随之醒来,map.md 里写着它。2026-10-03 之前名字改不了,《一拳超人》一直挂在开它的那句「让审片员回复视频导演,说明未回复原因并给出审片意见。」下面。改名只改名字、不改目标,Bot 照目标做:存下新名字后,名字下面写一句目标现在怎么写、带「改目标」按钮,直到你去改或离开——2026-10-04 你把它改名为「做《一拳超人》动画」,目标还是「制作一部未来世界题材、时长超过2分钟、可在本机完整播放的短片」,写在要点下方,视频导演照它读这件事。局面里也照实写:你改名晚于目标最后一次写下时,规划那一行后面多一句「用户在目标写下之后给这件事改了名:目标和名字、用户原话对不上时,以用户原话为准」,你在看板上改了目标就不再写。一个会话里常同时有好几件事,所以 Bot 读到的每一句都说得出是哪件事的:转录和听进的话里,属于另一件事或另一个任务的那一行,在说话人后面带着 〔规划「…」· 任务 03〕;局面里写出这件事的名字,在别的会话开的写明开在哪,此刻别的会话里也在做它的轮、这个 Bot 手上别的活轮都列出来,「经过」里在别的会话做的那一步标明在哪。第一轮在局面里标出来,是唯一还能先对齐要求再动手的那一轮。会话被清空历史或删除时,它的规划不再关掉,而是休眠:照样写上关闭时间,不认识休眠的旧版本读到的仍是关闭。休眠的规划没人去动:不再整理(已经发出去的那次整理回来也不落),也不叫回谁;清空或删除时,它排着的整理和到点再看一眼的那次当场取消,不会在清空了的会话里冒出来。它在这几种时候醒来:被放回它那个会话的当前位置(整理跳判成你的话回到了这件事、解除扣着它的叫停,或者旧版本把它接回来);你的一句话或你对提问的回答归到它下面,不管是在哪个会话说的(这时它仍是关着的,除非这次归档也把它放回了当前位置);你在流程图上改了它的要点或任务,改哪一处都算(只动检查不算)。Bot 在里面干活(回看、叫回、点名进来的轮)只挪关闭时间,不叫醒它。删除会话时,没人引用的规划照旧连同任务删掉;其余的规划休眠、关上,从此不属于任何会话,被那个群的叫停扣着的另有一条挂在它自己身上的叫停,流程图上改它能叫醒,但再也回不到哪个会话的当前位置。日程的常驻规划只关闭、不休眠,日程照常往里加任务。清空时,规划只要还有你没抹掉的原话、或者有挂在它或它的任务上的需求,就留着;两样都没有、转录里也没有别的轮和消息属于它,才像以前一样连同任务删掉。

切换列表里的一问一答,和已结束的看板(2026-10-10):流程图标题点开的切换列表里,只问了一句、答了一句的事(已关闭、没有任务、最多一轮)单独归成「一问一答」一类,正在看的那件不归进去。桌面上两类分在左边一栏、事在右边,和选模型的下拉一样(2026-10-21 起;之前收在列表末尾的一行「一问一答 N 件」里,事一多要滚到底才看得见):打开时停在「工作」,鼠标移到「一问一答」上就换成那一类,点一下分类就进它的列表;方向键在列表里上下走,← 回到分类,在分类上上下换一类,→ 再进列表。只有一类时就是一张列表。手机从底部弹出的列表仍收在那一行里,点一下在原处展开,方向键照样走过去。旧版本不报每件事的轮数,那时一件也不折。没指定看哪件事时,流程图打开最新的一件不是一问一答的事(全是一问一答才取最新的)。看板(任务清单)在这件事已完成、搁置或休眠时,标题旁写着对应的标签,没走完的任务还在时下面一行写「已结束:没走完的任务不会再有人接着做」(休眠写「休眠:」,搁置写「已搁置:」),没走完的卡片淡下去、不再着色;拖动和状态菜单照常能用,也不因此保证它会接着做——这和监督器一致:已完成、搁置或休眠的规划里,球不在任何人手里(见持球者)。

回避:一条消息就是一件事, 一个会话只能有一件事, 返工必开新规划, 把最初的要求改写掉, 把 Bot 的决定写成用户规则

任务(Ticket)

规划下有明确交付内容的工作单位,记着标题、说明、谁在做和关联产物;不是一段执行,也不是一句消息。每个任务都要满足所在规划要点里的验收、规则和你的要求,另可有只管它一个的要求和检查;要点里的进展是整理跳写的文字,任务的状态以任务为准。任务的「待验收」不等于交付已经审查通过。引擎 5 级起它有阶段(待做、进行中、已交付、审查中、返工、已通过、作废),只由交付、审查、监督器和你在看板上改状态推进,旧状态跟着写,整理跳不再改它;负责人用 plan_items 声明的分件(镜头)各有阶段,交付时 Bot 写明交的是哪几个(文件名不算),看板写「11/12 已通过」;5 级起负责人可以用 plan_items 一次拆好任务、谁做谁审和依赖。细节见行为说明·任务。

行为细节

2 级工作身份:任务只缩小工作项在规划里的范围。work_on 可显式选任务或为新事建产出任务,应用校验它属于所选规划;不再用唤醒方的任务或「这个 Bot 恰好只有一个没收口任务」决定执行目录。Bot 发的消息用它自己的工作项归属。一件事不同任务仍受 I1b 约束。现有待做/进行中/待验收/已完成/搁置仍可由已有界面、观察推进和 settle 使用;「待验收」不是 P4e 的 submitted/approved,文件名补出分件也不等于分件审查通过。

以下任务字段、产物和观察推进仍有保留;整理跳创建任务和按 worker 继承的部分只描述旧兼容路径:

规划下一个有交付物的最小单位:序号、标题、说明与验收(要交出什么、怎么算完成;不写进展,也不写 Bot 给自己定的禁令)、状态(待做 / 进行中 / 待验收 / 已完成 / 搁置)、谁在做(整理跳开任务时按「流程与分工」先填,之后按观察到的更新;是记录,不是派工)、产物。整理跳和你改任务:整理跳按 id 引用已有任务、只写变了的字段(没写标题、状态或谁在做,就是不变),新任务用 new-N 开,不能删,只能改成已完成或搁置;你在流程图里改状态。应用自己也按看到的往前推一格,不调模型:归到这个任务的轮开始写文件、跑命令,待做变进行中;它交出了文件,变待验收;没人在做就记上这个 Bot。只往前,不会替谁标已完成或搁置。整理跳要等规划静下来才整理,这一步让流程图在几个 Bot 首尾相接地干活时也照实显示谁在做什么。每个任务在规划目录下有自己的文件夹 NN-<标题>/,被归到这个任务的轮次默认就在里面干活,没归到任务的轮次落规划目录。一个 Bot 被交接叫醒时,交来的任务是别人的、而它在这个规划里恰好只做一个没收口的任务,这一轮就落在它自己那个任务上,而不是跟着叫醒它的那一轮落在别人的任务里;交来的任务是它的、或者还没人做,就照交来的。产物按任务归属:消息带着 ticket_id,它引用的文件就是这个任务的产物,不搬文件。流程图左边是任务栏(ADR 0086),每个任务一行:编号、标题、负责人的头像、状态和轮数,下面一条缩略泳道,所有行共用一条轴,按先后画这件事的每一轮,空了半小时以上的折成一道细竖条,被叫停或中断的只画边框;最上面一行是你的话,最下面一行是没归到任务的轮。点一行选中它、点亮它的卡片,点行里的泳道还会让流程图滑到最近的那张卡。任务栏头上的按钮把它展开成五列看板,盖在任务栏和流程图上,照旧拖卡片换状态。选中的任务在流程图右边的详情栏里:状态菜单、谁拿着球、说明、产物和跳到最近一轮的链接,以及审查者、模型、依赖这些设置;看板上点中的卡片不再在卡片下面展开这些。任务和要点是连着的:每个任务都要满足要点里的验收、规则和你的要求(任务目录里的 ticket.md 就是任务说明加上规划的验收和规则),另有只管某个任务的要求和检查。详情栏里列出选中的任务要满足的这些,「在要点里看」把详情栏换成按它点亮的要点:顶上写着回到这个任务,只管别的任务的要求和检查变暗。什么都没选时详情栏就是整件事的要点,按一下能展开盖住整个标签。要点里只管某个任务的要求和检查标着那个任务,点一下选中它、详情栏换成它;进展上方一行是各状态的任务数,点一个状态,任务栏只列这个状态的任务,直到清掉——任务的状态以这一行为准,下面的进展是整理跳按经过记的文字。窄的时候(手机、窄窗格,不到 900px)任务栏、流程图和要点一次一块,标题下切换「任务 / 流程 / 要点」,选中的任务或打开的环节从底部拉起。

分工(2026-10-12,ADR 0086):任务栏每行有负责人和审查者的头像;实际跑这个任务的 Bot 和负责人对不上时,行下写「实际:X」(负责人一轮没跑)或「还有 X」(负责人之外还有 Bot 在跑、它又没有审查者)。详情栏的整件事上面是「这件事的分工」:每个 Bot 负责哪些、审查哪些、在这件事里实际跑了几轮(其中几轮在别人的任务上、几轮没归任务),名下有任务却一轮没跑的标出来——负责人是整理器开任务时按「流程与分工」先填的,不是谁实际在做;下面是这件事的调用跑在哪套引擎上(这件事所在的会话、它从哪个会话分出来,再是设置里的默认)、为什么是它、它没开的环节和用它的会话数,标题行也有「引擎:X」,点开分工页在这套引擎上。选中的任务在设置下多一行「实际跑的」;一个既不是负责人也不是审查者的 Bot 在它上面跑了至少 5 轮、它又没有审查者时(交付审查打开时),给一个「设 X 为审查者」的按钮,只在详情栏里,不进会话、不出卡片。标题行的「需要你看 N」是没过的检查、卡住的进展和等你确认的要求加起来,点一下详情栏回到整件事。

5 级起的阶段(ADR 0046):任务另有阶段 stage:待做、进行中、已交付(submitted)、审查中(in_review)、返工(rework)、已通过(approved)、作废(dropped),旧状态按映射同写(已交付和审查中写待验收,返工写进行中,已通过写已完成,作废写搁置)。写阶段的只有交付的检查结果、审查、监督器,和你在看板上改状态(触发器 tickets_stage_follows_status 把阶段跟上);每次变化记 ticket.stage_changed。整理跳 5 级起不改已有任务的状态、新开的任务一律待做,规划有任务时也不把它标成做完(一张要放行的任务都没有时照旧可以);它把一张从没交过东西的任务读成做完时,这句话成了这张任务的一份交付(organizer,没有文件):这张任务这时有审查者就照样交给它审;没有审查者,下一拍也不会被忽略或凭它一句话放行——都清爽时一张卡片问你放行还是退回(见监督器)。生产者还在这张任务上跑着一段、或者它的工作项不是空闲,这句读法这一拍被跳过,不抢在真正的交付前头,它下次再读到做完才会重试。「交出文件就推到待验收」这一推不再有(「开始干活变进行中」照旧)。你在看板上改了状态,这张任务上还没决定的交付一并作废,正在审的那份也审不了了。看板上的状态标签写阶段(审查中、返工、已交付、已通过),旁边是分件通过数「11/12 已通过」,点中的任务下面多一个「审查者」菜单(没点中时,设了审查者的任务在标题下那一行写「某某审」);这些都只在 5 级出现。Bot 的局面块里的任务清单和「本轮任务」也写阶段。分件是负责人用 plan_items 声明的(或你在看板上加的),交付时用 submit 的 parts 写明交的是哪几个;没写的、应用替它交的(隐式交付)算整张任务的,文件名不造出也不认出分件(ADR 0057)。Bot 的局面里列出本轮任务的分件和阶段。每次交付记一次尝试和它当前的文件,阶段随交付、检查和审查走:进行中 → 已交付 → 已通过或返工。审查者是你在看板上点中任务后的「审查者」菜单里选的(菜单只列这件事所在会话里的 Bot、不列 owner;也可以 PATCH /v1/tickets/:id {reviewer_bot_id},本机和远端),不能是这张任务的 owner;否则是一项还开着、期待审查(delegate 的 expects: review)的委派的接收方;不能是生产者。规划里没作废的任务都已通过、规划级(不绑任务)的门禁上次都过了时,规划交付:和规划做完一贯走同一条路(要点写成做完、按做完关闭、叫停覆盖时仍读作搁置),另记 stage = delivered。已交付的规划里,只要有一张任务因为新的交付或打回离开「已通过」,规划就回到进行中(plan.reopened):交付的意思是每张任务都已通过,监督器也只追进行中的规划;原来它一直停在已交付,交付后你提意见、负责人让人重做的那份新交付没人追(2026-10-03)。那张任务再通过,规划再次交付。看板上,已通过的任务写「X做的」、不再写「要等 #NN 先完成」;搁置或作废的任务不写是谁的。一段结束时任务已通过或作废,它的工作项关闭;否则空闲——打回还会回来。放行多半发生在别的 Bot 审查的那一段里,生产者的工作项这时已经空闲,就一直空闲。交付之后再改:一段工作往一张已通过任务的文件夹里写了东西、这一段却没用 submit 交,收尾会被退回一次,告诉它你放行的是旧版、要用 submit 交上来让你定(自动交付从不重开已通过的任务);它写的路径以整段写过的文件为准,不因为某句话已经引用过就漏掉。规划交付后,整理(settle)也不再把它改回进行中:5 级起是否完成由交付和放行定。2026-10-04 用真模型跑,交付后你说「第二句不够有画面感,换一句」,负责人重画了海报、文案改了宣传语,两张任务都还是旧版「已通过」、这件事仍显示已完成,没有新卡片;后来交上来、放行后,整理又在 19 秒后把它标回了进行中。

作废和搁置,数任务(2026-10-10):负责人作废的任务(带理由)在看板上的状态标签写「作废」,卡片的那一行下多一句淡色的「作废:理由」,仍在「搁置」那一列;你自己在看板上放到一边的任务没有理由,照旧写「搁置」。两种都不是还要做的活:任务清单头上的「N 未完成 · 共 M · 作废/搁置 K」里 M 不含它们(K 为 0 就不写这一段),完成百分比也只在 M 里算,一张还算数的都没有时不画百分比和进度条;流程图头部和切换列表里数法一样。大活里、或这件事已经有样片时,点中一张还没做完、不是样片的任务,下面有「设为样片」,做的是 PATCH /v1/tickets/:id {sample: true}(见 ADR 0053)。

回避:一句一个任务, 把任务当工作项, 把交出文件当作验收通过, 把镜像文件当任务的事实来源, 让 Bot 写任务阶段, 从文件名猜分件

大活(Large job)

要分成好几件、先做一件样片定下水准才做得好的一件事,如几分钟以上的视频、很多章的书或报告。由读句模型读你的话、或做了好几段还没一件通过时认出,你可以说不用拆。拆好之前不让出图出视频、不让交付;拆好后其余各件等样片交出去,最后一件由你放行。细节见行为说明·大活。

行为细节

5 级起(ADR 0060)。一件事要分成好几件、先做一件定下水准才做得好的——几分钟以上的视频、一整集、很多章的书或报告、很多页的网站、一批几十个同类的东西——是大活。两条路认出它:你的一句话归到一件还没读过的事上时,读句模型带着你对这件事说过的话读一次(看要的东西本身,不看措辞,说不清就不算;读不出就不标);一件没读过、没拆过、没有一张任务通过的事做完 3 段以上时,监督器带着这些情况再请它读一次,它读不了就直接按大活算。读出来的只会把没读过的事标成大活,不覆盖你的。规划面板「名字」下面写着「大活:先拆成几件,先做样片给你放行,再铺开」和依据,旁边「不用拆」;你说了不用拆,之后什么都不会再把它读成大活,也可以点「按大活做」。

大活拆好之前,这件事上的一段:出图、出视频这类有副作用的外部调用(MCP)被拒,submit 被拒,收尾留下的文件不交;读文件、写笔记和脚本、跑本地命令照常;局面里写着先拆再做。拆的是负责人:plan_items 里给一项写 sample: true,它就是样片——先做、按整件事要的水准做足;一件事只有一个样片,大活的拆分必须有样片、并且有任务在等它,否则整次不生效。标了样片,除了样片和样片自己依赖的(设定集、提纲,往前一路都算),还没通过的任务都自动加上依赖它,之后拆出来的也一样。

依赖从 5 级起是真的。 一张任务等的那张没过,它就不开工:监督器不叫醒(看板上写「等样片 #02 先交」或「等 #01 先交」),work_on 不让挂上去,委派它的成果被拒,它上面出图出视频和交付被拒。「过了」是交出去过(已交付、审查中、已通过,或交过之后返工),不必每张都等你放行;样片也一样(2026-11-11 起,ADR 0109;之前样片要等你放行)。作废、搁置的不拦人。一张没人开工过的任务,等的都过了,监督器下一拍就叫它的负责人,不等平常的安静期:前一件交上来,后一件马上开工。

最后一件由你放行,样片不用。 大活最后一张没通过的任务(放行它整件事就交付)等你的话。样片和中间各件一样照常走:有审查者就审,有你确认过的检查撑着就放行,都没有才等你一句话,而这时等它的各件已经开工;局面里写着不要请你放行样片(2026-11-11 起,ADR 0109)。之前样片总是等你一句话,只有明确认可或叫它往下做才算,其余各件都等着;2026-11-10 视频导演的第二场因此被拒了一个多小时,「继续」「第一场放过」和提问卡上的回答都没记成放行。submit 也不再告诉交样片的 Bot 样片花了多少、剩下几件要多少。

照样片。 样片通过后(谁放行的都算),等它的每张任务各多一条检查「达到样片 #02『…』的水准」。每次交付,应用自己取证并请看图判定的模型(工具 → 分工里选的,没选就是默认模型)对照:视频取最长那条的时长、分辨率、有没有声音、关键帧里有多少不同的画面、同一画面最多出现几次,再均匀取 5 帧;图片取前几张;文字取开头、中间和结尾。内容不同是正常的,只比做工和形式:样片画面在动、这次是静图推拉,就是没达到;拿不准就判达到。它是门禁:没达到就退回,写明差在哪;达到了,和你确认过的检查一样撑得起无人审查的放行。判不了(还没交东西、没有模型、你叫停、当天看图预算用完)什么都不拦,交付等你的话。带画面的对照,选的端点模型要在模型属性里标了「能看图」,没标时这一次改用默认模型;选的是 Claude 模型就一律用它;只比文字的不受这条限制。看图判定在别处只作参考(ADR 0046),这里是例外:标准是这件事自己先做的样片定的。它只在交付和放行时跑,整理时的全量重跑不跑它;任务通过或作废后,它也不再把规划拦在进行中。要点的验收下面把它们单列成「照样片的检查」:一行样片标准,各任务的检查排在下面,没过的在前、通过的在后;没过的那条同时写在目标下面的「要留意」里,带任务和第一条原因。

回避:大活当一张任务一口气做, 按字数或关键词判大活, 拿静图凑时长当降级方案, 读句覆盖你说的不用拆

样片(Sample)

大活里先做的那一件,按整件事要的水准做足;它交出去之前其余各件不开工,它通过后其余各件交上来时拿它对照水准(照样片检查)。它不用等你放行(2026-11-11 起,ADR 0109),自己的交付照普通规则走:有审查者就审,有你确认过的检查撑着就放行,都没有才等你一句话。一件事同一时间只有一个样片;你否掉了它定下的方向时,负责人重新拆、换一个样片(你在看板上也能换),照旧样片的检查随之撤下。细节见行为说明·大活。

行为细节

5 级起(ADR 0060)。一件事要分成好几件、先做一件定下水准才做得好的——几分钟以上的视频、一整集、很多章的书或报告、很多页的网站、一批几十个同类的东西——是大活。两条路认出它:你的一句话归到一件还没读过的事上时,读句模型带着你对这件事说过的话读一次(看要的东西本身,不看措辞,说不清就不算;读不出就不标);一件没读过、没拆过、没有一张任务通过的事做完 3 段以上时,监督器带着这些情况再请它读一次,它读不了就直接按大活算。读出来的只会把没读过的事标成大活,不覆盖你的。规划面板「名字」下面写着「大活:先拆成几件,先做样片给你放行,再铺开」和依据,旁边「不用拆」;你说了不用拆,之后什么都不会再把它读成大活,也可以点「按大活做」。

大活拆好之前,这件事上的一段:出图、出视频这类有副作用的外部调用(MCP)被拒,submit 被拒,收尾留下的文件不交;读文件、写笔记和脚本、跑本地命令照常;局面里写着先拆再做。拆的是负责人:plan_items 里给一项写 sample: true,它就是样片——先做、按整件事要的水准做足;一件事只有一个样片,大活的拆分必须有样片、并且有任务在等它,否则整次不生效。标了样片,除了样片和样片自己依赖的(设定集、提纲,往前一路都算),还没通过的任务都自动加上依赖它,之后拆出来的也一样。

依赖从 5 级起是真的。 一张任务等的那张没过,它就不开工:监督器不叫醒(看板上写「等样片 #02 先交」或「等 #01 先交」),work_on 不让挂上去,委派它的成果被拒,它上面出图出视频和交付被拒。「过了」是交出去过(已交付、审查中、已通过,或交过之后返工),不必每张都等你放行;样片也一样(2026-11-11 起,ADR 0109;之前样片要等你放行)。作废、搁置的不拦人。一张没人开工过的任务,等的都过了,监督器下一拍就叫它的负责人,不等平常的安静期:前一件交上来,后一件马上开工。

最后一件由你放行,样片不用。 大活最后一张没通过的任务(放行它整件事就交付)等你的话。样片和中间各件一样照常走:有审查者就审,有你确认过的检查撑着就放行,都没有才等你一句话,而这时等它的各件已经开工;局面里写着不要请你放行样片(2026-11-11 起,ADR 0109)。之前样片总是等你一句话,只有明确认可或叫它往下做才算,其余各件都等着;2026-11-10 视频导演的第二场因此被拒了一个多小时,「继续」「第一场放过」和提问卡上的回答都没记成放行。submit 也不再告诉交样片的 Bot 样片花了多少、剩下几件要多少。

照样片。 样片通过后(谁放行的都算),等它的每张任务各多一条检查「达到样片 #02『…』的水准」。每次交付,应用自己取证并请看图判定的模型(工具 → 分工里选的,没选就是默认模型)对照:视频取最长那条的时长、分辨率、有没有声音、关键帧里有多少不同的画面、同一画面最多出现几次,再均匀取 5 帧;图片取前几张;文字取开头、中间和结尾。内容不同是正常的,只比做工和形式:样片画面在动、这次是静图推拉,就是没达到;拿不准就判达到。它是门禁:没达到就退回,写明差在哪;达到了,和你确认过的检查一样撑得起无人审查的放行。判不了(还没交东西、没有模型、你叫停、当天看图预算用完)什么都不拦,交付等你的话。带画面的对照,选的端点模型要在模型属性里标了「能看图」,没标时这一次改用默认模型;选的是 Claude 模型就一律用它;只比文字的不受这条限制。看图判定在别处只作参考(ADR 0046),这里是例外:标准是这件事自己先做的样片定的。它只在交付和放行时跑,整理时的全量重跑不跑它;任务通过或作废后,它也不再把规划拦在进行中。要点的验收下面把它们单列成「照样片的检查」:一行样片标准,各任务的检查排在下面,没过的在前、通过的在后;没过的那条同时写在目标下面的「要留意」里,带任务和第一条原因。

回避:样片是缩水的预览, 等你放行样片才铺开, 一件事多个样片, 方向换了还拿旧样片对照

交付(Submission)

引擎 5 级起,一次把任务的成果交出去:交了哪些文件(按内容哈希)、应用当场跑的检查结果、得到的审查。Bot 用 submit 显式交(收这件事文件夹里不属于别的任务的文件,和共用的 assets/);没交时,本段的话引用过、任务目录里内容哈希新的文件,应用在本段结束(或 end_turn(done))时替它交一次(隐式交付),只替这张任务的生产者交,审查者写的笔记不算。工作是一段话的任务,只能由生产者用 end_turn(done, answer) 显式交出那段话——纯文字收尾不再推断成交付,话本身还要过一道检查(不是空话或问句,不是「好的 / 收到」这类光秃秃的应承,也不是「做完了」这类光秃秃的进度、认领或等待;字数门槛只有 2 码点,不是安全线——真正把关的是这道检查和下面说的等你的话),不过就被拒,听到的是把话本身交出来,成果是文件的接着做到文件存在;整理跳说做完、却从没交过东西的任务,那句话也算一份交付。设了审查者的交给它审,但审查者判通过也不直接放行——这两种交付谁都没真正做过,审查者的「通过」只是把交付转去等你,连它的结论一起;没有审查者时,门禁没过就退回,任务不动,过了也不会凭检查就自动放行。文件的交付(显式或隐式)要有一条你写的或确认过的检查撑着、且门禁都通过,才按检查直接放行(整理跳写的检查没过照样挡,过了不算撑着);没有的,和一段话、整理跳的读法一样等你的话。你说过两次的、关于画面的要求没东西撑着,也等你的话,你放行就算那几条做到了。等你的话不出卡片:做它的 Bot 告诉你交了什么,你接下来说的话由读句读——认可、拿它往下用或叫做下一步、在和它的私聊里说起别的事,算放行;挑毛病转回返工;要改它是 Bot 去交新的一版。放行照卡片上的规矩办(门禁没过就退回),记成你的;放行、返工都不在对话里另写一行(2026-10-14 起),流程图上那句话是一张决定卡。等你的时候你又对这件事说了话、做它的 Bot 正为这句话干活,这期间你的话不算对这一版的表态:它交了新的一版就等新的。日程每次跑出来的交付不等你:门禁都过就直接放行。一次做完的文件交付也不等:只有一张任务、从没到过你旧的放行卡上或已经放行过一次的事,由它开出来(或上次放行)以来唯一的一段交上来,就直接放行,那几条要求没东西撑着也一样。细节见行为说明·交付。

行为细节

5 级起(ADR 0046),一次把任务的成果交出去,记在 submissions:交了哪些文件(按内容 SHA-256)、分件、Bot 的说明和对要求的声明、应用跑的检查结果、得到的审查。显式交付收这件事文件夹里的文件(deliverables/ 和根目录也算),不收别的任务的文件夹,另外收工作区共用的 assets/;隐式交付只认这张任务自己的文件夹;应用自留的子目录都不行;一张任务上新的交付把还没决定的旧交付作废,检查没过的那份留着。

  • 显式:submit({artifacts, parts?, claims?, note?, continue?})。路径可以相对工作区,也可以相对自己的工作目录。应用算哈希,把还没在本段引用过的文件在一行 Bot 的话里挂出来(按你的话加的检查才找得到要量的母带),然后当场跑这份交付的检查并等结果:门禁没过,原样把细节退回给 Bot,任务不动(已交出过的回到返工);过了,任务进已交付,有审查者就排给它审。默认本段随之结束;还有你没处置的话、你在私聊里的一句话开出这一段而它还没给你一个字、它发出的委派没回、或在等什么时不结束,并说明原因(不算退回)——没给你一个字时,它交完接着写回复;这一行已经挂出的文件,回复里不再挂一遍。continue: true 接着做别的分件。交的文件和这张任务上一次已放行或还开着的交付一模一样(路径和哈希都相同)时拒收(unchanged):没东西要定。往一件事里写文件时,路径落在一个形如任务文件夹(work/<事>/NN-…)、却没有哪张任务是它、也还不存在的文件夹里,write_file 拒绝并列出这件事真正的任务文件夹。2026-10-04 用真模型跑,交付后你要求改第二天的主题,Bot 按任务标题自己拼了文件夹名(01-…每天一个主题,真的是标题截短后的 01-…每天一个),把新版写进去,再把没改过的那份交上来,卡片就让你放行一份根本没改的方案。
  • 隐式:Bot 没调 submit 时,本段的话引用过、在任务目录里、内容哈希比这张任务上次交付新的文件,应用替它交一次(origin = implicit),跑同样的检查。只替这张任务的生产者交:它的 owner(或 worker)、有一项请它交付(expects: deliverable)的委派的接收方,没人负责的任务谁做都算;这张任务的审查者、被请去审查的 Bot、被一条审查请求叫醒的那一段写下的文件是审查笔记,不交。end_turn(done) 先把本段写过、还没引用的文件挂出来再交(检查没过时把细节退回给这次 end_turn);交出任务目录里文件的纯文字收尾先发出去、再交,检查没过时这次收尾作废、Bot 听到原因接着做,过了再按结束契约判断;其余正常结束的段(blocked、gave_up、需要处理的不算)在结束时补一次,检查没过就给生产者排一条说明叫醒它。同样的字节不交第二次;已通过或作废的任务不做隐式交付。不是 owner 的 Bot 在 owner 的任务文件夹里留下文件,收尾(end_turn(done) 或纯文字收尾)时听到一次:这些没替它交,是这张任务的成果就用 submit 交。
  • 交一段话:一张从没交过文件的任务(选题、结论这类,工作就是一段话),只能由生产者用 end_turn(done, answer) 显式交出——纯文字收尾不再推断成交付:这条推断曾经让「母带剪好了」这类话把一张没人查过的任务放行过,一次评审之后这条路整个去掉了。answer 的文字要读起来真是要交的内容,不是一句状态:trim 后至少 2 码点(这不是真正的下限——这类交付总归要等你的话,字数不是安全线),不是空话(isNoWorkCloser)、不是「随后」这类许诺(promisesLaterWork)、不是问句,也不是「好的 / 收到 / 明白 / 了解」这类光秃秃的应承,或「做完了 / 剪好了 / 已完成 / 已提交 / 搞定了 / 做不了 / 正在做 / 在做 / 等… / done / finished / completed / working on / waiting」这类光秃秃的进度、认领或等待,不管怎么包装;包装得够长的这类话可能混过这道检查,这不算漏洞,混过去的照样等你的话,由你说哪里不对。不满足时这次 end_turn 被拒(not_an_answer),Bot 听到的是:把要交的话本身——一个标题、一行字、一份清单、一段话——作为 answer 交出来;成果是个文件的,接着做,直到文件真的存在(不建议「写文件再 submit」:那条建议曾经被用来绕开这道检查,见下方交付一节「没有审查者」)。过了这道检查的话就是它交的东西(origin = answer,记在 content),照样跑检查、走审查或没有审查者的路;同样的话不交第二次。不是这张任务生产者的 Bot 调 end_turn(done, answer) 不替它交,听到一次:只有它的 owner 能交出话,把要交的内容写进任务文件夹里的一个文件再用 submit。
  • 检查:受约束的是规划里挂在这张任务上的、读它某个文件或任务目录里任何东西的、在任务目录里跑的命令,以及绑定到这次交付文件的按你的话加的检查(跑之前先对齐,新母带会被绑上)。只认交付之后开始的那次结果。门禁是你或整理跳写的检查和你确认过的按你的话加的检查;没确认的照样量、照样显示,从不挡交付,也从不挡放行。
  • 没有审查者:检查过了、没有审查者的交付停在已交付,监督器下一拍按此刻的检查结果再看(见那一节);还没跑完的门禁就等它跑完。
  • 日程的交付:日程常驻规划下的任务(每次到点开的那一张)交出来的东西,不出放行/退回卡、也不出必查要求卡:门禁都过就直接放行(submission.approved,by: routine),设了审查者时审查者一判通过就放行;绑在这一次任务上的门禁没过照样退回(规划级的检查不绑每天新开的那张任务,所以眼下拦不住日程的某一次);结果不对时你说一句,读句读出你在挑毛病照样直接转回返工。日程本来就是无人值守地跑,2026-10-03、10-04 两天早上的简报都等你按了一次「放行」,没有一次退回(2026-10-04 起;那之前留下、还在等的卡片,下一拍按此刻的检查结果放行并收起)。
  • 明细在 GET /v1/tasks/:id/submissions(本机和远端);看板显示阶段、分件通过数和审查者。4 级及以下没有交付:看到交出文件就推到待验收,和以前一样。

回避:把引用了路径当成交付, 不跑检查就推到待验收, 同样的字节交两次, 交到别的任务的文件夹里, 把审查笔记当交付, 让没有文件的任务永远收不了口, 凭整理跳、一段话或没有门禁的文件自己检查过了就自动放行, 把一句状态话当成交出的答案, 让非 owner 的 Bot 交出话, 把审查者的通过当成放行, 把放行做成要你按的卡片, 你在私聊里说起别的事还当它没放行

审查(Review)

引擎 5 级起,另一个 Bot 对一份交付给出的结论,用 review 逐条判必查要求(你说过两次以上的、关于画面的):pass、fail、unknown 或 n/a,判 pass 要带依据,再放行或打回。设了审查者只有它能审,没设只有规划会话里的 Bot 能审。放行前应用重跑检查,门禁没过就不能放行(没确认的提议从不挡);画面类判 pass 要先读过这件事文件夹里、交付之后的图;和生产者同一个模型时,对你说过两次的要求判 pass 还要有你确认过的、通过的检查或你的认可,缺了就转去等你的话,你放行就算这几条做到了,球在你;没确认的提议通过了也只是记下量到的结果。打回把任务送回返工、叫醒生产者。审查者对一段话、整理跳的读法,或者对没有你写的或确认过的检查撑着的文件(它和生产者同一个模型或模型不明、或没在适用的要求上给依据时)判通过,都不直接放行,转去等你的话,带着它的结论。只写一句「通过」不推进任何东西。细节见行为说明·审查。

行为细节

放行靠你的话(2026-10-11 起,ADR 0084):要你放行的交付不出卡片,等你一句话。读你的话的那一次(见读句)同时看到你说话的地方正等你表态的交付——这件事的会话里的;私聊里只有这个 Bot 交的;最新 6 份——由它说出这句话放行了哪几份。认可(「可以」「不错」「就这样」),拿它往下用或叫做下一步,在私聊里没提它就说起了别的事,都算放行;挑毛病是返工(见下面「你的投诉直接转回返工」),要改它、给它加东西是 Bot 去做新的一版,问它本身的情况、只问进度、叫停、继续、只应一声或说要先看看、群里对别的 Bot 说的话都不算;样片只有明确认可或叫它往下做才算。你又说了这件事、做它的 Bot 正为这句话干活时,那份旧交付不算在内,新的一版交上来就等新的。放行照卡片上的规矩办:门禁重跑,没过就退回,还没跑完先等它跑完;没东西撑着的条目算做到了,审查者的「通过」随之生效;记成你的(submission.approved,by: user,带你那句话的 message_id),流程图上那句话是一张「放行」决定卡。对话里你那句话下面什么都不写,没有撤销:读错了就说哪里不对,它转回返工。2026-10-14 之前那句话下面写着「已放行:……」(或「检查没过,已退回:……」「等检查跑完再放行:……」):放行、返工是应用替你做的判断,不用在对话里再说一遍。检查没过退回的,那句话在流程图上不是决定卡:那张任务回到返工、写着没过的检查,做它的 Bot 也会收到。读句读不了时什么都不放行。下面关于放行卡片的几段,说的是 2026-10-11 之前贴出的卡片:它们照样能按;你的话放行了它对应的交付时,卡片写「已放行。」收起按钮。

放行卡片:要你放行或退回的卡片上挂着这份交付的文件,点开就能看,再按「放行」「退回」。应用发的卡片上,前 5 个文件各是一张小卡片,图标按扩展名(视频、图片、JSON、Markdown……,图片显示缩略图);后面总跟着一个和 Bot 消息末尾一样的文件入口,写着「N 个文件」,点开在聊天旁边的预览里列出这张卡的全部文件。点一张小卡片,文件像图片一样铺在整个应用上面打开:只有这一个文件,不带文件树,可以照常批注;Esc、点空白处、右上角的关闭或手机的返回键收起,有没保存的修改先问你(2026-10-06,原来卡片把文件全部列出、都是同一个文件图标,点开进的是聊天旁边的预览)。文字说清交了什么、为什么要你定——审查者和做的 Bot 用同一个模型(同一个模型审自己的活不算数)、审查者没在你的要求上给依据、或者没有审查者也没有你确认过的检查。原来卡片只在文字里写一串路径,文件打不开,原因写成「一份没有你确认过的检查撑着的交付」「(fixture,和生产者同模型)」(2026-10-03)。按「退回」先在卡片下面打开一个框问哪里要改(可以不写),「确认退回」才退:写了的话原话转给做的 Bot(它被叫醒返工时读到「要改的地方,原话:「…」」),卡片上写「已退回:「…」」;这句话也算你在这件事里的原话,和你在提问卡片上的回答一样:记进需求台账、按里面的数提议检查,Bot 之后每一轮都在「你在这件事里的话」里看得到(原来只在返工那一次转给它:2026-10-04 退回《一拳超人》时说的「一集时长20分钟,不是这么短的视频,而且要有剧情走向」没进台账,返工出来又是一段 27 秒的片子);POST /v1/messages/:id/control 的 note 只跟退回走,别的按钮带它会被拒。原来退回只是一个按钮,Bot 只被告知「用户把交付退回重做了」,要自己猜哪里不对(2026-10-04)。手机上这两个按钮原来按不了:手机可用的按钮清单写死在中继路由里,没跟上后来加的卡片(2026-10-04 起改为按协议里的同一份清单)。局面里的任务清单不列作废的任务(这一轮自己的除外),已通过的写「X做的」,搁置的不写谁在做——原来负责人拆活后作废的开事任务在 Bot 眼里还是「搁置;设计师在做」,已通过的宣传语是「已通过;文案在做」(2026-10-04)。卡片上的文件不超过 6 个时一个一个列出(图片带缩略图),不再像普通消息那样收成一个文件夹;多个文件收成文件夹时,文件夹名写它们实际所在的那一层(比如任务文件夹),不是一律的「work」(2026-10-04 真模型跑出来的卡片写的是「work · 3 个文件」,海报要先点开文件夹才看得到)。

等了很久才出的卡片(2026-10-11 起不再贴卡片,这一条不再有):Bot 还在干活时卡片先不出,等它停下才出;出卡时离交上来已经超过 10 分钟、而这个 Bot 之后又在这件事里发了别的文件的,卡片第一行写明这是几点交的那一版,之后又发了几个文件(最近的叫什么),那些不在这次放行里。IG MV 那件事里,00:39 交的 2D 八强成片的卡片等了三个小时才出,正好出在 Bot 刚发的 3D 样镜下面,放行按在了旧的那一版上。

放行记在你名下:你在卡片上按的、或说出来的放行,工作记录里记成你的(submission.approved 的 by: user,说出来的还带你那句话的 message_id;任务阶段的变化记 source: user);2026-10-10 之前一律记成应用自己放行(by: no_reviewer),分不出哪些是你按的,看历史时以卡片上记下的按键为准。

卡片发在哪:放行/退回(2026-10-11 起不再贴)、等你认的条目、能力天花板、反思提议这几种关于某个 Bot 的活的卡片,发在你最近说这件事的会话里——群,或你和这个 Bot 的私聊,不会发进你和这件事另一个 Bot 的私聊——那里你不在了或已归档就往前找,都没有才发在这件事所在的会话。你挑毛病转回返工不出卡片,对话里也不写结果,流程图上那句话是一张「返工」决定卡。原来都发在这件事所在的会话:2026-10-04 一件在群里开、上午在你和视频导演的私聊里接着做的事,Bot 在私聊里请你拍板,卡片却落在群里。你在和做这份活的 Bot 的私聊里退回、转回返工或回答天花板卡片时,它就在这条私聊里接着改(排着的活一般回到它最初所在的会话去跑;委派在委派的会话里):原来在你和文案的私聊里转回返工,文案回到开这件事的群里改,新版也发在群里(2026-10-04 真模型跑)。

5 级起,另一个 Bot 用 review({submission_id?, verdicts, outcome, note?}) 给一份交付下结论;只写一句「通过」不推进任何东西。任务设了审查者时只有它能审;没设时只有规划所在会话里的 Bot 能审;生产者从来不能审自己的。审查只认已交付、审查中的任务。不给 submission_id 时取它这张任务、这个规划、它负责审的任务、它所在会话的规划里最新一份待审的。交付通过检查、任务有审查者时,审查者的工作项里排一条请它审的话(source = review,优先级 2)并立即派发。

  • 必查条目是作用到这件事的生效要求里你说过两次以上的、类别关于画面的(画面、镜头、角色、颜色这类)。它们要判 pass 并带依据才能放行,判 unknown、n/a、不判或不带依据都不行;其余可以判 n/a。

  • 放行前应用重跑检查,以下任一成立就拒绝放行、什么都不改,把原因逐条退回给审查者(review.refused):门禁没过;必查条目缺 pass 或缺依据;画面类判了 pass,而本段在这次交付之后没用 read_file 读过这件事文件夹里的图片(每段每个路径记一条 artifact.viewed,不占命令记录的 80 行,也不算「跑过命令」)。没确认的按你的话加的检查不在其中:它从不挡放行。

  • 等你:审查者和生产者同一个模型,又对你说过两次以上的条目判 pass,而那条要求的原话上没有一条你确认过的、量出来通过的检查、你也没认可过,这次放行等你(review.awaiting_user)——一条没确认的提议通过了也不算,读错的数可能正好让错的片子通过:拒绝放行,原因里写着应用量到了什么;这份交付等你的话(2026-10-11 起;之前是一张放行 / 退回卡,带着审查者的结论,列出这几条和量到了什么),审查者的结论和这几条跟着它存着:你说可以就算这几条做到了,审查者的通过随之生效;挑毛病送回返工。一份交付只这一张卡(2026-10-07 起;之前先出一张只问这几条的卡——[确认这条检查][算它做到了][不再要这条]——按完常常还要再按一张放行卡)。球在你手里;等你的时候不叫生产者,不让它按一个你没确认的数返工,这份交付也不接受别的审查。你不表态、改在看板上把那条要求设成不再适用,或者在流程图上确认那条检查、它量出来通过:卡片只因为这几条才等你时(你确认过的检查撑着其余的),监督器下一拍放行;确认的检查量出来不过,下一拍把交付退回生产者。同模型的审查不论结果都标 same_model。

  • 打回总会记下:任务和分件转返工,生产者的工作项被叫醒,读到审查的说明。放行:任务和分件已通过,生产者下次醒来读到(不叫醒它);规划可能随之交付——除非这份交付是一段话或整理跳的读法(谁都没真正做过),或者是没有你写的或确认过的检查撑着的文件、而审查者和生产者同一个模型(或模型不明)或没在适用的要求上给依据:这些时候审查者判通过也不直接放行,交付转去等你的话,带着这条判断(见监督器)。

  • F-f 那次:「约 2 分钟」你说过两次;审片员和导演同一个模型,对着 107 秒的母带判它通过、review(approve)。应用重跑 ffprobe 得 107.00 秒——那条提议没确认,不挡——但同模型的 pass 没有通过的检查撑着,放行等你:拒绝的原因里写着「107.00 秒,要时长 108–132 秒」,导演什么都没收到。你说哪里不对(转回返工),或者在流程图上确认这条检查:它成为门禁,量出来不过,下一拍母带退回给导演,这次针对的是你确认过的数。

  • 你的投诉直接转回返工(2026-10-09 起,ADR 0070):你的一句话归到(行的归属或你自己改归,不算 Bot 替它选的)一张已交付、审查中或已通过的任务或它的分件上——或者只归到规划、而这个规划里已交付、审查中或已通过的任务只有一张、做它的 Bot 还在(没归档、没删除),就算归到这一张;有好几张时猜不出说的是哪张,不动——并且读句(模型)读出有分句在挑毛病(原样摘出的分句:指出毛病、不满意、要重做或从头再做、说之前的作废都算;夸奖、「别重做」「不用从头再做」、问句、条件、说别的时候或版本、已经解决的事都不算),这张任务就当场转回返工:转的是这句话归到的分件(没归到分件就是整张任务),不从分句里找镜号;还在等你放行的那一版作废、它的卡片收起,放行过当前交付的审查各记一次漏判(review.miss),已交付的规划回到进行中,做它的 Bot 被叫醒、读到你的原话——你按停止停下的它在这件事上的活,和卡片上按退回时一样随之解除,这句话说给的是别的 Bot 也一样。对话里你那句话下面什么都不写,流程图上它是一张「返工」决定卡。读错了这里没有撤销:任务留在返工,这次照样算一次你退回,审查的漏判也记着;要它照原样交回来,跟做它的 Bot 说。2026-10-14 之前那句话下面写着「已转回返工:……」和「撤销」,撤销在还没有新交付、任务还在返工时把一切放回原样,漏判也不再算,叫做的 Bot 返工的那条还没读就作废,读过了就补一句不叫醒它的说明;一句话转回了几张任务时,撤销只还原最后一张。这个撤销随那行字一起不显示了;更早的投诉返工卡片(应用自己的一条)上的撤销照样能按。读句读不了(退回词表)时什么都不转;只带批注、书记员为它记了一条分件级条目、只是回复了带文件的那条消息,都不再算投诉。这句话照常叫醒它叫醒的 Bot(群里有负责人就是负责人),那一轮的局面里写明「叫醒这一轮的那句话读成了对已交出的 02「…」的意见,已经转回返工:应用已带着这句话告诉做它的 Bot。别另派人改它」;原来负责人不知道,可能另派人改,活做两遍(2026-10-04)。以前先出一张卡片问「你说「…」——要把它转回返工吗?」[转回返工][不用],那是应用在问你刚说过的话;那时留下、还没按的卡片照旧能按。放行仍然只在卡片上按:打字永远不算放行(2026-10-11 起不再是这样:放行也按你的话,见上面「放行靠你的话」)。

  • 校准记录:审查者的局面里列着它在这个会话里被你推翻的放行(最新五条,带你的原话和时间),再审同类问题时要更严。

  • 能力天花板:一份交付没过(检查、审查打回、你在卡片上退回,或你挑毛病把它转回返工)时,它覆盖的每个分件(没有分件就是整张任务,只数不带分件的交付)自你上次在天花板卡片上作答以来,同一条要求连续 3 次没过、你连续退回 3 次,或没过的交付超过 6 次,就卡住:分件转「卡住」,不再收新交付(submit 拿到 ceiling_reached),有分件卡着时不带分件的交付也不收,球在你手里,监督器不再叫醒生产者,这次失败只告诉它应用在问你;会话里出一张卡片——「换一种做法」「改方案绕开它」「放宽这条要求」(卡在某条要求上才有;按下就是你的确认,这条要求在这件事里不再要)「就用现在的」「忽略,接着做」。前三个和「忽略」把它送回返工、告诉生产者你选了什么(「忽略」不给新方向,只让它照之前说的接着做),计数从这一刻重来;「就用现在的」把分件记为通过,任务的分件都通过或作废时任务通过。任务以别的方式收口(通过、你在看板上改了状态)时,还在问的卡片写明原因、收起按钮。你退回不必挂在某条要求上:退回、挑毛病转回返工各算一次「你退回」,连着 3 次卡片写「你连续退回了 3 次」,没有「放宽这条要求」;撤销那次转回返工,它就不算,它带出的卡片也收起。原来只数检查和审查:2026-10 MV 的第 09 张任务被你退回 8 次,一次也没挂要求,连续 3 次从没成立,交到第 7 次才停(2026-10-11)。被新版本替掉的交付照旧不算。

  • 看图判定只作参考:衔接检查把图片交给模型判(视频抽帧、图片)时,这次结果只作参考——交付的检查里写「看图判定,只作参考」,不挡放行、也不撑起放行,规划级的也不挡规划交付。叫停这件事时不看图判定;当天看图判定花到 $5 就不再判,那次检查记为没判。Bot 的局面里它也标着「看图判定,只作参考」。纯文字的衔接核对照旧。

回避:审自己的交付, 用一句 APPROVED 放行, 审查盖过失败的门禁, 没看帧就判画面通过, 让没确认的数挡放行, 叫 Bot 按没确认的数返工

漏判(Review miss)

引擎 5 级起,一次审查放行了交付、随后你的投诉把那份交付转回返工时(读句读出你在挑毛病就直接转回;以前要在卡片上按),给这次审查记下的一笔(review.miss,同一交付、同一审查者只记一次)。它进审查者的校准记录:局面里列着它在这个会话里被你推翻的放行(最新五条,带你的原话),再审同类问题时要更严。你撤销那次投诉返工,这一笔就不再算。细节见行为说明·审查。

行为细节

放行靠你的话(2026-10-11 起,ADR 0084):要你放行的交付不出卡片,等你一句话。读你的话的那一次(见读句)同时看到你说话的地方正等你表态的交付——这件事的会话里的;私聊里只有这个 Bot 交的;最新 6 份——由它说出这句话放行了哪几份。认可(「可以」「不错」「就这样」),拿它往下用或叫做下一步,在私聊里没提它就说起了别的事,都算放行;挑毛病是返工(见下面「你的投诉直接转回返工」),要改它、给它加东西是 Bot 去做新的一版,问它本身的情况、只问进度、叫停、继续、只应一声或说要先看看、群里对别的 Bot 说的话都不算;样片只有明确认可或叫它往下做才算。你又说了这件事、做它的 Bot 正为这句话干活时,那份旧交付不算在内,新的一版交上来就等新的。放行照卡片上的规矩办:门禁重跑,没过就退回,还没跑完先等它跑完;没东西撑着的条目算做到了,审查者的「通过」随之生效;记成你的(submission.approved,by: user,带你那句话的 message_id),流程图上那句话是一张「放行」决定卡。对话里你那句话下面什么都不写,没有撤销:读错了就说哪里不对,它转回返工。2026-10-14 之前那句话下面写着「已放行:……」(或「检查没过,已退回:……」「等检查跑完再放行:……」):放行、返工是应用替你做的判断,不用在对话里再说一遍。检查没过退回的,那句话在流程图上不是决定卡:那张任务回到返工、写着没过的检查,做它的 Bot 也会收到。读句读不了时什么都不放行。下面关于放行卡片的几段,说的是 2026-10-11 之前贴出的卡片:它们照样能按;你的话放行了它对应的交付时,卡片写「已放行。」收起按钮。

放行卡片:要你放行或退回的卡片上挂着这份交付的文件,点开就能看,再按「放行」「退回」。应用发的卡片上,前 5 个文件各是一张小卡片,图标按扩展名(视频、图片、JSON、Markdown……,图片显示缩略图);后面总跟着一个和 Bot 消息末尾一样的文件入口,写着「N 个文件」,点开在聊天旁边的预览里列出这张卡的全部文件。点一张小卡片,文件像图片一样铺在整个应用上面打开:只有这一个文件,不带文件树,可以照常批注;Esc、点空白处、右上角的关闭或手机的返回键收起,有没保存的修改先问你(2026-10-06,原来卡片把文件全部列出、都是同一个文件图标,点开进的是聊天旁边的预览)。文字说清交了什么、为什么要你定——审查者和做的 Bot 用同一个模型(同一个模型审自己的活不算数)、审查者没在你的要求上给依据、或者没有审查者也没有你确认过的检查。原来卡片只在文字里写一串路径,文件打不开,原因写成「一份没有你确认过的检查撑着的交付」「(fixture,和生产者同模型)」(2026-10-03)。按「退回」先在卡片下面打开一个框问哪里要改(可以不写),「确认退回」才退:写了的话原话转给做的 Bot(它被叫醒返工时读到「要改的地方,原话:「…」」),卡片上写「已退回:「…」」;这句话也算你在这件事里的原话,和你在提问卡片上的回答一样:记进需求台账、按里面的数提议检查,Bot 之后每一轮都在「你在这件事里的话」里看得到(原来只在返工那一次转给它:2026-10-04 退回《一拳超人》时说的「一集时长20分钟,不是这么短的视频,而且要有剧情走向」没进台账,返工出来又是一段 27 秒的片子);POST /v1/messages/:id/control 的 note 只跟退回走,别的按钮带它会被拒。原来退回只是一个按钮,Bot 只被告知「用户把交付退回重做了」,要自己猜哪里不对(2026-10-04)。手机上这两个按钮原来按不了:手机可用的按钮清单写死在中继路由里,没跟上后来加的卡片(2026-10-04 起改为按协议里的同一份清单)。局面里的任务清单不列作废的任务(这一轮自己的除外),已通过的写「X做的」,搁置的不写谁在做——原来负责人拆活后作废的开事任务在 Bot 眼里还是「搁置;设计师在做」,已通过的宣传语是「已通过;文案在做」(2026-10-04)。卡片上的文件不超过 6 个时一个一个列出(图片带缩略图),不再像普通消息那样收成一个文件夹;多个文件收成文件夹时,文件夹名写它们实际所在的那一层(比如任务文件夹),不是一律的「work」(2026-10-04 真模型跑出来的卡片写的是「work · 3 个文件」,海报要先点开文件夹才看得到)。

等了很久才出的卡片(2026-10-11 起不再贴卡片,这一条不再有):Bot 还在干活时卡片先不出,等它停下才出;出卡时离交上来已经超过 10 分钟、而这个 Bot 之后又在这件事里发了别的文件的,卡片第一行写明这是几点交的那一版,之后又发了几个文件(最近的叫什么),那些不在这次放行里。IG MV 那件事里,00:39 交的 2D 八强成片的卡片等了三个小时才出,正好出在 Bot 刚发的 3D 样镜下面,放行按在了旧的那一版上。

放行记在你名下:你在卡片上按的、或说出来的放行,工作记录里记成你的(submission.approved 的 by: user,说出来的还带你那句话的 message_id;任务阶段的变化记 source: user);2026-10-10 之前一律记成应用自己放行(by: no_reviewer),分不出哪些是你按的,看历史时以卡片上记下的按键为准。

卡片发在哪:放行/退回(2026-10-11 起不再贴)、等你认的条目、能力天花板、反思提议这几种关于某个 Bot 的活的卡片,发在你最近说这件事的会话里——群,或你和这个 Bot 的私聊,不会发进你和这件事另一个 Bot 的私聊——那里你不在了或已归档就往前找,都没有才发在这件事所在的会话。你挑毛病转回返工不出卡片,对话里也不写结果,流程图上那句话是一张「返工」决定卡。原来都发在这件事所在的会话:2026-10-04 一件在群里开、上午在你和视频导演的私聊里接着做的事,Bot 在私聊里请你拍板,卡片却落在群里。你在和做这份活的 Bot 的私聊里退回、转回返工或回答天花板卡片时,它就在这条私聊里接着改(排着的活一般回到它最初所在的会话去跑;委派在委派的会话里):原来在你和文案的私聊里转回返工,文案回到开这件事的群里改,新版也发在群里(2026-10-04 真模型跑)。

5 级起,另一个 Bot 用 review({submission_id?, verdicts, outcome, note?}) 给一份交付下结论;只写一句「通过」不推进任何东西。任务设了审查者时只有它能审;没设时只有规划所在会话里的 Bot 能审;生产者从来不能审自己的。审查只认已交付、审查中的任务。不给 submission_id 时取它这张任务、这个规划、它负责审的任务、它所在会话的规划里最新一份待审的。交付通过检查、任务有审查者时,审查者的工作项里排一条请它审的话(source = review,优先级 2)并立即派发。

  • 必查条目是作用到这件事的生效要求里你说过两次以上的、类别关于画面的(画面、镜头、角色、颜色这类)。它们要判 pass 并带依据才能放行,判 unknown、n/a、不判或不带依据都不行;其余可以判 n/a。

  • 放行前应用重跑检查,以下任一成立就拒绝放行、什么都不改,把原因逐条退回给审查者(review.refused):门禁没过;必查条目缺 pass 或缺依据;画面类判了 pass,而本段在这次交付之后没用 read_file 读过这件事文件夹里的图片(每段每个路径记一条 artifact.viewed,不占命令记录的 80 行,也不算「跑过命令」)。没确认的按你的话加的检查不在其中:它从不挡放行。

  • 等你:审查者和生产者同一个模型,又对你说过两次以上的条目判 pass,而那条要求的原话上没有一条你确认过的、量出来通过的检查、你也没认可过,这次放行等你(review.awaiting_user)——一条没确认的提议通过了也不算,读错的数可能正好让错的片子通过:拒绝放行,原因里写着应用量到了什么;这份交付等你的话(2026-10-11 起;之前是一张放行 / 退回卡,带着审查者的结论,列出这几条和量到了什么),审查者的结论和这几条跟着它存着:你说可以就算这几条做到了,审查者的通过随之生效;挑毛病送回返工。一份交付只这一张卡(2026-10-07 起;之前先出一张只问这几条的卡——[确认这条检查][算它做到了][不再要这条]——按完常常还要再按一张放行卡)。球在你手里;等你的时候不叫生产者,不让它按一个你没确认的数返工,这份交付也不接受别的审查。你不表态、改在看板上把那条要求设成不再适用,或者在流程图上确认那条检查、它量出来通过:卡片只因为这几条才等你时(你确认过的检查撑着其余的),监督器下一拍放行;确认的检查量出来不过,下一拍把交付退回生产者。同模型的审查不论结果都标 same_model。

  • 打回总会记下:任务和分件转返工,生产者的工作项被叫醒,读到审查的说明。放行:任务和分件已通过,生产者下次醒来读到(不叫醒它);规划可能随之交付——除非这份交付是一段话或整理跳的读法(谁都没真正做过),或者是没有你写的或确认过的检查撑着的文件、而审查者和生产者同一个模型(或模型不明)或没在适用的要求上给依据:这些时候审查者判通过也不直接放行,交付转去等你的话,带着这条判断(见监督器)。

  • F-f 那次:「约 2 分钟」你说过两次;审片员和导演同一个模型,对着 107 秒的母带判它通过、review(approve)。应用重跑 ffprobe 得 107.00 秒——那条提议没确认,不挡——但同模型的 pass 没有通过的检查撑着,放行等你:拒绝的原因里写着「107.00 秒,要时长 108–132 秒」,导演什么都没收到。你说哪里不对(转回返工),或者在流程图上确认这条检查:它成为门禁,量出来不过,下一拍母带退回给导演,这次针对的是你确认过的数。

  • 你的投诉直接转回返工(2026-10-09 起,ADR 0070):你的一句话归到(行的归属或你自己改归,不算 Bot 替它选的)一张已交付、审查中或已通过的任务或它的分件上——或者只归到规划、而这个规划里已交付、审查中或已通过的任务只有一张、做它的 Bot 还在(没归档、没删除),就算归到这一张;有好几张时猜不出说的是哪张,不动——并且读句(模型)读出有分句在挑毛病(原样摘出的分句:指出毛病、不满意、要重做或从头再做、说之前的作废都算;夸奖、「别重做」「不用从头再做」、问句、条件、说别的时候或版本、已经解决的事都不算),这张任务就当场转回返工:转的是这句话归到的分件(没归到分件就是整张任务),不从分句里找镜号;还在等你放行的那一版作废、它的卡片收起,放行过当前交付的审查各记一次漏判(review.miss),已交付的规划回到进行中,做它的 Bot 被叫醒、读到你的原话——你按停止停下的它在这件事上的活,和卡片上按退回时一样随之解除,这句话说给的是别的 Bot 也一样。对话里你那句话下面什么都不写,流程图上它是一张「返工」决定卡。读错了这里没有撤销:任务留在返工,这次照样算一次你退回,审查的漏判也记着;要它照原样交回来,跟做它的 Bot 说。2026-10-14 之前那句话下面写着「已转回返工:……」和「撤销」,撤销在还没有新交付、任务还在返工时把一切放回原样,漏判也不再算,叫做的 Bot 返工的那条还没读就作废,读过了就补一句不叫醒它的说明;一句话转回了几张任务时,撤销只还原最后一张。这个撤销随那行字一起不显示了;更早的投诉返工卡片(应用自己的一条)上的撤销照样能按。读句读不了(退回词表)时什么都不转;只带批注、书记员为它记了一条分件级条目、只是回复了带文件的那条消息,都不再算投诉。这句话照常叫醒它叫醒的 Bot(群里有负责人就是负责人),那一轮的局面里写明「叫醒这一轮的那句话读成了对已交出的 02「…」的意见,已经转回返工:应用已带着这句话告诉做它的 Bot。别另派人改它」;原来负责人不知道,可能另派人改,活做两遍(2026-10-04)。以前先出一张卡片问「你说「…」——要把它转回返工吗?」[转回返工][不用],那是应用在问你刚说过的话;那时留下、还没按的卡片照旧能按。放行仍然只在卡片上按:打字永远不算放行(2026-10-11 起不再是这样:放行也按你的话,见上面「放行靠你的话」)。

  • 校准记录:审查者的局面里列着它在这个会话里被你推翻的放行(最新五条,带你的原话和时间),再审同类问题时要更严。

  • 能力天花板:一份交付没过(检查、审查打回、你在卡片上退回,或你挑毛病把它转回返工)时,它覆盖的每个分件(没有分件就是整张任务,只数不带分件的交付)自你上次在天花板卡片上作答以来,同一条要求连续 3 次没过、你连续退回 3 次,或没过的交付超过 6 次,就卡住:分件转「卡住」,不再收新交付(submit 拿到 ceiling_reached),有分件卡着时不带分件的交付也不收,球在你手里,监督器不再叫醒生产者,这次失败只告诉它应用在问你;会话里出一张卡片——「换一种做法」「改方案绕开它」「放宽这条要求」(卡在某条要求上才有;按下就是你的确认,这条要求在这件事里不再要)「就用现在的」「忽略,接着做」。前三个和「忽略」把它送回返工、告诉生产者你选了什么(「忽略」不给新方向,只让它照之前说的接着做),计数从这一刻重来;「就用现在的」把分件记为通过,任务的分件都通过或作废时任务通过。任务以别的方式收口(通过、你在看板上改了状态)时,还在问的卡片写明原因、收起按钮。你退回不必挂在某条要求上:退回、挑毛病转回返工各算一次「你退回」,连着 3 次卡片写「你连续退回了 3 次」,没有「放宽这条要求」;撤销那次转回返工,它就不算,它带出的卡片也收起。原来只数检查和审查:2026-10 MV 的第 09 张任务被你退回 8 次,一次也没挂要求,连续 3 次从没成立,交到第 7 次才停(2026-10-11)。被新版本替掉的交付照旧不算。

  • 看图判定只作参考:衔接检查把图片交给模型判(视频抽帧、图片)时,这次结果只作参考——交付的检查里写「看图判定,只作参考」,不挡放行、也不撑起放行,规划级的也不挡规划交付。叫停这件事时不看图判定;当天看图判定花到 $5 就不再判,那次检查记为没判。Bot 的局面里它也标着「看图判定,只作参考」。纯文字的衔接核对照旧。

回避:把漏判当成对 Bot 的惩罚计分, 你在卡片上点「退回」也记漏判, 撤销投诉后还留着漏判

能力天花板(Capability ceiling)

引擎 5 级起,一个分件(没有分件就是整张任务)自你上次在天花板卡片上作答以来,同一条要求连续 3 次交付没过、你连续退回 3 次(卡片上退回或说话挑毛病转回返工都算,不用挂在哪条要求上),或者没过的交付超过 6 次,就停下来问你:分件转「卡住」,不再收新交付,球在你手里,监督器不叫醒生产者;卡片上是「换一种做法」「改方案绕开它」「放宽这条要求」(按下即确认不再要这条)、「就用现在的」和「忽略,接着做」(不给新方向,照之前说的接着做)。细节见行为说明·审查。

行为细节

放行靠你的话(2026-10-11 起,ADR 0084):要你放行的交付不出卡片,等你一句话。读你的话的那一次(见读句)同时看到你说话的地方正等你表态的交付——这件事的会话里的;私聊里只有这个 Bot 交的;最新 6 份——由它说出这句话放行了哪几份。认可(「可以」「不错」「就这样」),拿它往下用或叫做下一步,在私聊里没提它就说起了别的事,都算放行;挑毛病是返工(见下面「你的投诉直接转回返工」),要改它、给它加东西是 Bot 去做新的一版,问它本身的情况、只问进度、叫停、继续、只应一声或说要先看看、群里对别的 Bot 说的话都不算;样片只有明确认可或叫它往下做才算。你又说了这件事、做它的 Bot 正为这句话干活时,那份旧交付不算在内,新的一版交上来就等新的。放行照卡片上的规矩办:门禁重跑,没过就退回,还没跑完先等它跑完;没东西撑着的条目算做到了,审查者的「通过」随之生效;记成你的(submission.approved,by: user,带你那句话的 message_id),流程图上那句话是一张「放行」决定卡。对话里你那句话下面什么都不写,没有撤销:读错了就说哪里不对,它转回返工。2026-10-14 之前那句话下面写着「已放行:……」(或「检查没过,已退回:……」「等检查跑完再放行:……」):放行、返工是应用替你做的判断,不用在对话里再说一遍。检查没过退回的,那句话在流程图上不是决定卡:那张任务回到返工、写着没过的检查,做它的 Bot 也会收到。读句读不了时什么都不放行。下面关于放行卡片的几段,说的是 2026-10-11 之前贴出的卡片:它们照样能按;你的话放行了它对应的交付时,卡片写「已放行。」收起按钮。

放行卡片:要你放行或退回的卡片上挂着这份交付的文件,点开就能看,再按「放行」「退回」。应用发的卡片上,前 5 个文件各是一张小卡片,图标按扩展名(视频、图片、JSON、Markdown……,图片显示缩略图);后面总跟着一个和 Bot 消息末尾一样的文件入口,写着「N 个文件」,点开在聊天旁边的预览里列出这张卡的全部文件。点一张小卡片,文件像图片一样铺在整个应用上面打开:只有这一个文件,不带文件树,可以照常批注;Esc、点空白处、右上角的关闭或手机的返回键收起,有没保存的修改先问你(2026-10-06,原来卡片把文件全部列出、都是同一个文件图标,点开进的是聊天旁边的预览)。文字说清交了什么、为什么要你定——审查者和做的 Bot 用同一个模型(同一个模型审自己的活不算数)、审查者没在你的要求上给依据、或者没有审查者也没有你确认过的检查。原来卡片只在文字里写一串路径,文件打不开,原因写成「一份没有你确认过的检查撑着的交付」「(fixture,和生产者同模型)」(2026-10-03)。按「退回」先在卡片下面打开一个框问哪里要改(可以不写),「确认退回」才退:写了的话原话转给做的 Bot(它被叫醒返工时读到「要改的地方,原话:「…」」),卡片上写「已退回:「…」」;这句话也算你在这件事里的原话,和你在提问卡片上的回答一样:记进需求台账、按里面的数提议检查,Bot 之后每一轮都在「你在这件事里的话」里看得到(原来只在返工那一次转给它:2026-10-04 退回《一拳超人》时说的「一集时长20分钟,不是这么短的视频,而且要有剧情走向」没进台账,返工出来又是一段 27 秒的片子);POST /v1/messages/:id/control 的 note 只跟退回走,别的按钮带它会被拒。原来退回只是一个按钮,Bot 只被告知「用户把交付退回重做了」,要自己猜哪里不对(2026-10-04)。手机上这两个按钮原来按不了:手机可用的按钮清单写死在中继路由里,没跟上后来加的卡片(2026-10-04 起改为按协议里的同一份清单)。局面里的任务清单不列作废的任务(这一轮自己的除外),已通过的写「X做的」,搁置的不写谁在做——原来负责人拆活后作废的开事任务在 Bot 眼里还是「搁置;设计师在做」,已通过的宣传语是「已通过;文案在做」(2026-10-04)。卡片上的文件不超过 6 个时一个一个列出(图片带缩略图),不再像普通消息那样收成一个文件夹;多个文件收成文件夹时,文件夹名写它们实际所在的那一层(比如任务文件夹),不是一律的「work」(2026-10-04 真模型跑出来的卡片写的是「work · 3 个文件」,海报要先点开文件夹才看得到)。

等了很久才出的卡片(2026-10-11 起不再贴卡片,这一条不再有):Bot 还在干活时卡片先不出,等它停下才出;出卡时离交上来已经超过 10 分钟、而这个 Bot 之后又在这件事里发了别的文件的,卡片第一行写明这是几点交的那一版,之后又发了几个文件(最近的叫什么),那些不在这次放行里。IG MV 那件事里,00:39 交的 2D 八强成片的卡片等了三个小时才出,正好出在 Bot 刚发的 3D 样镜下面,放行按在了旧的那一版上。

放行记在你名下:你在卡片上按的、或说出来的放行,工作记录里记成你的(submission.approved 的 by: user,说出来的还带你那句话的 message_id;任务阶段的变化记 source: user);2026-10-10 之前一律记成应用自己放行(by: no_reviewer),分不出哪些是你按的,看历史时以卡片上记下的按键为准。

卡片发在哪:放行/退回(2026-10-11 起不再贴)、等你认的条目、能力天花板、反思提议这几种关于某个 Bot 的活的卡片,发在你最近说这件事的会话里——群,或你和这个 Bot 的私聊,不会发进你和这件事另一个 Bot 的私聊——那里你不在了或已归档就往前找,都没有才发在这件事所在的会话。你挑毛病转回返工不出卡片,对话里也不写结果,流程图上那句话是一张「返工」决定卡。原来都发在这件事所在的会话:2026-10-04 一件在群里开、上午在你和视频导演的私聊里接着做的事,Bot 在私聊里请你拍板,卡片却落在群里。你在和做这份活的 Bot 的私聊里退回、转回返工或回答天花板卡片时,它就在这条私聊里接着改(排着的活一般回到它最初所在的会话去跑;委派在委派的会话里):原来在你和文案的私聊里转回返工,文案回到开这件事的群里改,新版也发在群里(2026-10-04 真模型跑)。

5 级起,另一个 Bot 用 review({submission_id?, verdicts, outcome, note?}) 给一份交付下结论;只写一句「通过」不推进任何东西。任务设了审查者时只有它能审;没设时只有规划所在会话里的 Bot 能审;生产者从来不能审自己的。审查只认已交付、审查中的任务。不给 submission_id 时取它这张任务、这个规划、它负责审的任务、它所在会话的规划里最新一份待审的。交付通过检查、任务有审查者时,审查者的工作项里排一条请它审的话(source = review,优先级 2)并立即派发。

  • 必查条目是作用到这件事的生效要求里你说过两次以上的、类别关于画面的(画面、镜头、角色、颜色这类)。它们要判 pass 并带依据才能放行,判 unknown、n/a、不判或不带依据都不行;其余可以判 n/a。

  • 放行前应用重跑检查,以下任一成立就拒绝放行、什么都不改,把原因逐条退回给审查者(review.refused):门禁没过;必查条目缺 pass 或缺依据;画面类判了 pass,而本段在这次交付之后没用 read_file 读过这件事文件夹里的图片(每段每个路径记一条 artifact.viewed,不占命令记录的 80 行,也不算「跑过命令」)。没确认的按你的话加的检查不在其中:它从不挡放行。

  • 等你:审查者和生产者同一个模型,又对你说过两次以上的条目判 pass,而那条要求的原话上没有一条你确认过的、量出来通过的检查、你也没认可过,这次放行等你(review.awaiting_user)——一条没确认的提议通过了也不算,读错的数可能正好让错的片子通过:拒绝放行,原因里写着应用量到了什么;这份交付等你的话(2026-10-11 起;之前是一张放行 / 退回卡,带着审查者的结论,列出这几条和量到了什么),审查者的结论和这几条跟着它存着:你说可以就算这几条做到了,审查者的通过随之生效;挑毛病送回返工。一份交付只这一张卡(2026-10-07 起;之前先出一张只问这几条的卡——[确认这条检查][算它做到了][不再要这条]——按完常常还要再按一张放行卡)。球在你手里;等你的时候不叫生产者,不让它按一个你没确认的数返工,这份交付也不接受别的审查。你不表态、改在看板上把那条要求设成不再适用,或者在流程图上确认那条检查、它量出来通过:卡片只因为这几条才等你时(你确认过的检查撑着其余的),监督器下一拍放行;确认的检查量出来不过,下一拍把交付退回生产者。同模型的审查不论结果都标 same_model。

  • 打回总会记下:任务和分件转返工,生产者的工作项被叫醒,读到审查的说明。放行:任务和分件已通过,生产者下次醒来读到(不叫醒它);规划可能随之交付——除非这份交付是一段话或整理跳的读法(谁都没真正做过),或者是没有你写的或确认过的检查撑着的文件、而审查者和生产者同一个模型(或模型不明)或没在适用的要求上给依据:这些时候审查者判通过也不直接放行,交付转去等你的话,带着这条判断(见监督器)。

  • F-f 那次:「约 2 分钟」你说过两次;审片员和导演同一个模型,对着 107 秒的母带判它通过、review(approve)。应用重跑 ffprobe 得 107.00 秒——那条提议没确认,不挡——但同模型的 pass 没有通过的检查撑着,放行等你:拒绝的原因里写着「107.00 秒,要时长 108–132 秒」,导演什么都没收到。你说哪里不对(转回返工),或者在流程图上确认这条检查:它成为门禁,量出来不过,下一拍母带退回给导演,这次针对的是你确认过的数。

  • 你的投诉直接转回返工(2026-10-09 起,ADR 0070):你的一句话归到(行的归属或你自己改归,不算 Bot 替它选的)一张已交付、审查中或已通过的任务或它的分件上——或者只归到规划、而这个规划里已交付、审查中或已通过的任务只有一张、做它的 Bot 还在(没归档、没删除),就算归到这一张;有好几张时猜不出说的是哪张,不动——并且读句(模型)读出有分句在挑毛病(原样摘出的分句:指出毛病、不满意、要重做或从头再做、说之前的作废都算;夸奖、「别重做」「不用从头再做」、问句、条件、说别的时候或版本、已经解决的事都不算),这张任务就当场转回返工:转的是这句话归到的分件(没归到分件就是整张任务),不从分句里找镜号;还在等你放行的那一版作废、它的卡片收起,放行过当前交付的审查各记一次漏判(review.miss),已交付的规划回到进行中,做它的 Bot 被叫醒、读到你的原话——你按停止停下的它在这件事上的活,和卡片上按退回时一样随之解除,这句话说给的是别的 Bot 也一样。对话里你那句话下面什么都不写,流程图上它是一张「返工」决定卡。读错了这里没有撤销:任务留在返工,这次照样算一次你退回,审查的漏判也记着;要它照原样交回来,跟做它的 Bot 说。2026-10-14 之前那句话下面写着「已转回返工:……」和「撤销」,撤销在还没有新交付、任务还在返工时把一切放回原样,漏判也不再算,叫做的 Bot 返工的那条还没读就作废,读过了就补一句不叫醒它的说明;一句话转回了几张任务时,撤销只还原最后一张。这个撤销随那行字一起不显示了;更早的投诉返工卡片(应用自己的一条)上的撤销照样能按。读句读不了(退回词表)时什么都不转;只带批注、书记员为它记了一条分件级条目、只是回复了带文件的那条消息,都不再算投诉。这句话照常叫醒它叫醒的 Bot(群里有负责人就是负责人),那一轮的局面里写明「叫醒这一轮的那句话读成了对已交出的 02「…」的意见,已经转回返工:应用已带着这句话告诉做它的 Bot。别另派人改它」;原来负责人不知道,可能另派人改,活做两遍(2026-10-04)。以前先出一张卡片问「你说「…」——要把它转回返工吗?」[转回返工][不用],那是应用在问你刚说过的话;那时留下、还没按的卡片照旧能按。放行仍然只在卡片上按:打字永远不算放行(2026-10-11 起不再是这样:放行也按你的话,见上面「放行靠你的话」)。

  • 校准记录:审查者的局面里列着它在这个会话里被你推翻的放行(最新五条,带你的原话和时间),再审同类问题时要更严。

  • 能力天花板:一份交付没过(检查、审查打回、你在卡片上退回,或你挑毛病把它转回返工)时,它覆盖的每个分件(没有分件就是整张任务,只数不带分件的交付)自你上次在天花板卡片上作答以来,同一条要求连续 3 次没过、你连续退回 3 次,或没过的交付超过 6 次,就卡住:分件转「卡住」,不再收新交付(submit 拿到 ceiling_reached),有分件卡着时不带分件的交付也不收,球在你手里,监督器不再叫醒生产者,这次失败只告诉它应用在问你;会话里出一张卡片——「换一种做法」「改方案绕开它」「放宽这条要求」(卡在某条要求上才有;按下就是你的确认,这条要求在这件事里不再要)「就用现在的」「忽略,接着做」。前三个和「忽略」把它送回返工、告诉生产者你选了什么(「忽略」不给新方向,只让它照之前说的接着做),计数从这一刻重来;「就用现在的」把分件记为通过,任务的分件都通过或作废时任务通过。任务以别的方式收口(通过、你在看板上改了状态)时,还在问的卡片写明原因、收起按钮。你退回不必挂在某条要求上:退回、挑毛病转回返工各算一次「你退回」,连着 3 次卡片写「你连续退回了 3 次」,没有「放宽这条要求」;撤销那次转回返工,它就不算,它带出的卡片也收起。原来只数检查和审查:2026-10 MV 的第 09 张任务被你退回 8 次,一次也没挂要求,连续 3 次从没成立,交到第 7 次才停(2026-10-11)。被新版本替掉的交付照旧不算。

  • 看图判定只作参考:衔接检查把图片交给模型判(视频抽帧、图片)时,这次结果只作参考——交付的检查里写「看图判定,只作参考」,不挡放行、也不撑起放行,规划级的也不挡规划交付。叫停这件事时不看图判定;当天看图判定花到 $5 就不再判,那次检查记为没判。Bot 的局面里它也标着「看图判定,只作参考」。纯文字的衔接核对照旧。

回避:卡住后让 Bot 照原样再试, 不问你就放宽要求, 把卡住当成规划搁置

外部作业(External job)

引擎 6 级起,媒体服务器接下的一次渲染(成对的 submit_<x> / check_<x>,如 submit_video / check_video):提交时登记,守护进程自己按间隔去查,Bot 再查读到的是应用最后查到的状态,不打到服务器;完成、失败或三小时没完成时,叫醒提交它和查过它的 Bot。半小时内参数相同的提交返回同一个作业;分件有作业在跑或结果没交出去时,要说明理由才能再提交。细节见行为说明·外部作业。

行为细节

6 级起(ADR 0047),媒体服务器上成对的 submit_<x> / check_<x>(如 westlake-cpa 的 submit_video / check_video)由应用接管等待:

  • 提交:拿到作业 id 就登记,Bot 读到「作业已登记,应用自己去查,完成后会叫你」。服务器的回答是 JSON 的从 JSON 里读;写成 key: value 行的也认(grok-imagine 就这样答:request_id: …,行末括号里的提示不算),以前这种回答一个作业也登记不上,Bot 只能在自己那一轮里一遍遍去查。半小时内同一个服务器、工具、参数的提交直接返回已经开的作业(deduped),不再发给服务器,不看归属。提示词只点到一个分件号时,这个分件有作业在跑、或有完成却没交出去的结果,再提交被拒(job_pending);确实要重交,带上 resubmit_reason 说明理由(只记在作业上,不发给服务器)。
  • 查询:Bot 查一个登记过的作业,读到的是应用最后查到的状态(cached),不打到服务器,它也记为等待方。
  • 轮询:守护进程每 15 秒的那一拍里问到期的作业,不在任何一轮里,间隔 30 秒、1、2、4 分钟,之后每 5 分钟。完成或失败时,提交它和查过它的 Bot 都在各自的会话里被叫醒、读到结果(地址、时长、花费;写成行的回答整段原话带过去,grok-imagine 那句「url 是临时的,尽快下载」也在里面);三小时还没完成算丢失,同样告诉它们。作业在跑时,监督器认定球在作业轮询器手里,不把做它的 Bot 叫回来;Bot 在整件事上、没落到任务上时提交的作业,也算在它负责的任务上。
  • 回看:6 级起 Bot 自己约的回看最短 5 分钟,每件活每小时最多 6 个,备注点名了一个正在轮询的作业就被拒。约的那一轮所在的任务在等你——你的回答(问题、工作卡在你这里)、你一句话放行、能力天花板卡片——时也被拒(ball_is_yours),先约好、到点时任务在等你的那个作废,不叫醒(工作日志 check_back.voided):你一开口它自然会醒。叫停不在此列,被叫停盖住的回看照旧挂起、解除后恢复。原来视频导演在 MV 上约了 22 次回看,13 次醒来什么都没做、平均也跑了 53 跳,多是「看看用户对 vN 的意见」(2026-10-08 到 10-11)。别的任务照常能约。

回避:让 Bot 自己约一分钟的回看去轮询, 同样的参数交两次, 把作业当成 Bot 的一轮

质量事件(Quality event)

引擎 8 级起,工作日志里表示「出了问题」的一条事件按它的类型直接归的类:execution(检查没过、打回、退回、投诉、命令超时)、unclear(要求在交付之后才出现)、model(复读、拒答、写到上限)、pipeline(渲染失败、卡在能力天花板)、review_miss(被你推翻的放行)、orchestration(卡住、出错,只给维护者看)。不问模型「是不是模型不行」;你可以在流程图卡片上把一轮记为模型问题。完工复盘读它们找根因,写进记忆的是做法,不是事件本身。细节见行为说明·质量事件与教训。

行为细节

8 级起(ADR 0050),不再事后开模型调用复盘一条链、把结论写进记忆;唯一的例外是你接受的一件事交付之后的完工复盘(ADR 0062),它是做过这件事的 Bot 检查自己的做法,不评价模型:

  • 质量事件:工作日志里表示出了问题的事件,按类型直接归类——检查没过、审查打回、你退回、投诉返工、命令超时是 execution(检查在交付之后才定的、要求在交付之后才第一次说的是 unclear);复读、拒答、写到上限、不完整是 model;渲染失败、卡在能力天花板是 pipeline;被你推翻的放行是 review_miss;卡住、出错、叫停后仍有副作用是 orchestration。每条带着它说的 Bot 和模型。清空历史不删它们,只断开来源。
  • 记为模型问题:流程图卡片的「模型选择」里可以把这一轮记成模型的问题(再按一次撤回),它只进模型报表。卡片也写着这一轮为什么跑在这个模型上。
  • 报表:GET /v1/quality/report 按 Bot × 模型 × 规划类型给出交付、通过、打回、退回、检查没过、投诉、失败形状、误放行和每个通过的交付花了多少。
  • 教训:递归搜索(grep -r、rg、find…)跑满超时被杀,就把这一类调用(程序、位置;搜索词和引号里的内容不算)记成这个工作区的教训,所有 Bot 共用;渲染、构建跑得久不算。之后这类命令在一轮里第一次出现时先不跑,告诉 Bot 上次怎样、怎么缩小范围;同一轮里原样再调就放行;放行后又超时,就改成拦下,从此不跑。缩小到下一级目录是另一类调用。设置里的「教训」页可以看、在警告和拦下之间切换、停用、恢复。
  • 反思(ADR 0051):引擎里能关的一步,通用引擎默认不跑。只在误放行、能力天花板之后跑,同一 Bot 在同一张任务上一天一次,每天两美元、二十次封顶,叫停时等到解除再跑。当事的 Bot(审查者或生产者)用它自己的模型(工具 → 分工里给「反思」选了模型的,用那个,思考档取 high)读这张任务的工作日志、要求和审查结论,只能提一条清单项(审查前、交付前或生成前)或一条对文件的检查提议(exists、contains、matches;不提命令),或者不提。提议出一张卡片「采用 / 不要」(发在哪同放行卡片),检查提议原样写出它查什么:采用的清单项进这个 Bot 的局面块;采用的检查加到这张任务上,没过会打回,但不算你写的,不能替你担保没人审的放行,在板上改过一次才算。
  • 项目技能(ADR 0052):Bot 资料页「技能」里的「项目共享技能」卡上,你可以把这个 Bot 的一条技能共享给所有 Bot(再确认一次)。共享的是那一刻的副本,每个 Bot 的技能目录里都看得到、能读、改不了;原 Bot 之后改了,标「共享后又改过」,按「更新共享副本」先看现在的正文、再确认才换。同时最多开 20 条,可以停用、停止共享;原 Bot 删掉后副本还在,标「来自已删除的 Bot」。
  • 质量报表:花费页底部的「质量(近 7 天)」表,按 Bot × 模型 × 规划类型列交付、通过、打回、投诉、回复失败、误放行和每次通过的花费。
  • 完工复盘(ADR 0062):引擎里能关的一步,三套内置引擎都开着(通用从 2026-10-14 起)。一件事交付(每张任务都放行了)、又安静满 30 分钟之后——放行后紧跟一句投诉会让它重开,复盘等下一次交付——在里面交过东西的 Bot 各复盘一次(交得最多的前三个),7 天内的交付才算,日程的不算,叫停罩着时等解除。这个 Bot 在这件事里什么都没出错(交付没被退回、打回或检查没过,没有投诉返工,没有交付后才说的要求,没有渲染丢失、搜索超时,也没有哪张任务交了不止一次)就记一笔跳过、不调模型;重开后又交付,只看上次复盘之后又出的问题。它用自己的模型(Claude Agent 运行方式的 Bot 走端点;工具 → 分工里给「完工复盘」选了模型的,用那个,思考档取 high)读这件事的记录:你的原话、每次交付和它的结局(你退回时的话、审查结论、没过的检查、它自己的交付说明)、放行后的投诉、需求台账(说过几次、是不是交付后才说)、它的质量事件和反复失败的工具调用、它的全部记忆和技能、项目技能和清单项,以及它以前的复盘写了什么、哪些被你撤销了;不读转录。它答出踩的坑、让你返工的做法、下次照做的(各至多 5 条),对这件事检验过的旧结论下判断(仍然成立、又犯了、已不成立),和几处改动:记、改写或合并记忆(至多 3 条),删掉记忆(至多 3 条),改自己的一条技能或新建一条(至多 2 处、新建至多 1 条)。应用逐处核对后写入,一处被拒不连累别的:记忆照工具的规矩(主题 40 字、正文 160 字、满 20 条要先删或并掉一条);你停用的、项目技能、别的 Bot 的都不改;技能只能在某段原文后补一句、末尾追加、或改正一句本身错了的话,原有反引号里的名字、文件名、链接和环境变量一个都不能丢,整段改写的整处不写。回答被截断或不是一个完整的 JSON 对象,一处都不写。不发消息、不出卡片、不发通知:流程图侧栏的「完工复盘」里列出谁复盘的、总结、三张清单、改动(能展开看原来和现在,技能只列改了的行,没写进去的写明为什么),每处改动一个「撤销」——只在它还是复盘写下的样子时才撤得回,之后又被改过的就算新的了。复盘写的记忆在 Bot 资料页标「完工复盘《…》写的」,被 Bot 在一轮里重写或被你改了文字,这个标就去掉。每天两美元、12 次封顶,花费单列为「完工复盘」(记在整理下)。
  • 链不再复盘,你的回复也不再算作选路反馈。

回避:事后让模型判断该不该换模型, 把停工算成模型的问题, 把质量事件写进记忆

教训(Lesson)

引擎 8 级起,应用从一次失败里学到、自己检查的规则,有两种。一种是:递归搜索跑满超时被杀后,这一类调用先警告一次,Bot 坚持再跑又超时就拦下,所有 Bot 共用。另一种来自收窄的反思:误放行或卡在能力天花板之后,当事的 Bot 提一条清单项或一条检查,你在卡片上采用才生效。设置的「教训」页里能看、切换、停用。和记忆不同:命令的教训由应用在调用前执行;清单项读进 Bot 的局面块,采用的检查由应用自己跑。细节见行为说明·质量事件与教训。

行为细节

8 级起(ADR 0050),不再事后开模型调用复盘一条链、把结论写进记忆;唯一的例外是你接受的一件事交付之后的完工复盘(ADR 0062),它是做过这件事的 Bot 检查自己的做法,不评价模型:

  • 质量事件:工作日志里表示出了问题的事件,按类型直接归类——检查没过、审查打回、你退回、投诉返工、命令超时是 execution(检查在交付之后才定的、要求在交付之后才第一次说的是 unclear);复读、拒答、写到上限、不完整是 model;渲染失败、卡在能力天花板是 pipeline;被你推翻的放行是 review_miss;卡住、出错、叫停后仍有副作用是 orchestration。每条带着它说的 Bot 和模型。清空历史不删它们,只断开来源。
  • 记为模型问题:流程图卡片的「模型选择」里可以把这一轮记成模型的问题(再按一次撤回),它只进模型报表。卡片也写着这一轮为什么跑在这个模型上。
  • 报表:GET /v1/quality/report 按 Bot × 模型 × 规划类型给出交付、通过、打回、退回、检查没过、投诉、失败形状、误放行和每个通过的交付花了多少。
  • 教训:递归搜索(grep -r、rg、find…)跑满超时被杀,就把这一类调用(程序、位置;搜索词和引号里的内容不算)记成这个工作区的教训,所有 Bot 共用;渲染、构建跑得久不算。之后这类命令在一轮里第一次出现时先不跑,告诉 Bot 上次怎样、怎么缩小范围;同一轮里原样再调就放行;放行后又超时,就改成拦下,从此不跑。缩小到下一级目录是另一类调用。设置里的「教训」页可以看、在警告和拦下之间切换、停用、恢复。
  • 反思(ADR 0051):引擎里能关的一步,通用引擎默认不跑。只在误放行、能力天花板之后跑,同一 Bot 在同一张任务上一天一次,每天两美元、二十次封顶,叫停时等到解除再跑。当事的 Bot(审查者或生产者)用它自己的模型(工具 → 分工里给「反思」选了模型的,用那个,思考档取 high)读这张任务的工作日志、要求和审查结论,只能提一条清单项(审查前、交付前或生成前)或一条对文件的检查提议(exists、contains、matches;不提命令),或者不提。提议出一张卡片「采用 / 不要」(发在哪同放行卡片),检查提议原样写出它查什么:采用的清单项进这个 Bot 的局面块;采用的检查加到这张任务上,没过会打回,但不算你写的,不能替你担保没人审的放行,在板上改过一次才算。
  • 项目技能(ADR 0052):Bot 资料页「技能」里的「项目共享技能」卡上,你可以把这个 Bot 的一条技能共享给所有 Bot(再确认一次)。共享的是那一刻的副本,每个 Bot 的技能目录里都看得到、能读、改不了;原 Bot 之后改了,标「共享后又改过」,按「更新共享副本」先看现在的正文、再确认才换。同时最多开 20 条,可以停用、停止共享;原 Bot 删掉后副本还在,标「来自已删除的 Bot」。
  • 质量报表:花费页底部的「质量(近 7 天)」表,按 Bot × 模型 × 规划类型列交付、通过、打回、投诉、回复失败、误放行和每次通过的花费。
  • 完工复盘(ADR 0062):引擎里能关的一步,三套内置引擎都开着(通用从 2026-10-14 起)。一件事交付(每张任务都放行了)、又安静满 30 分钟之后——放行后紧跟一句投诉会让它重开,复盘等下一次交付——在里面交过东西的 Bot 各复盘一次(交得最多的前三个),7 天内的交付才算,日程的不算,叫停罩着时等解除。这个 Bot 在这件事里什么都没出错(交付没被退回、打回或检查没过,没有投诉返工,没有交付后才说的要求,没有渲染丢失、搜索超时,也没有哪张任务交了不止一次)就记一笔跳过、不调模型;重开后又交付,只看上次复盘之后又出的问题。它用自己的模型(Claude Agent 运行方式的 Bot 走端点;工具 → 分工里给「完工复盘」选了模型的,用那个,思考档取 high)读这件事的记录:你的原话、每次交付和它的结局(你退回时的话、审查结论、没过的检查、它自己的交付说明)、放行后的投诉、需求台账(说过几次、是不是交付后才说)、它的质量事件和反复失败的工具调用、它的全部记忆和技能、项目技能和清单项,以及它以前的复盘写了什么、哪些被你撤销了;不读转录。它答出踩的坑、让你返工的做法、下次照做的(各至多 5 条),对这件事检验过的旧结论下判断(仍然成立、又犯了、已不成立),和几处改动:记、改写或合并记忆(至多 3 条),删掉记忆(至多 3 条),改自己的一条技能或新建一条(至多 2 处、新建至多 1 条)。应用逐处核对后写入,一处被拒不连累别的:记忆照工具的规矩(主题 40 字、正文 160 字、满 20 条要先删或并掉一条);你停用的、项目技能、别的 Bot 的都不改;技能只能在某段原文后补一句、末尾追加、或改正一句本身错了的话,原有反引号里的名字、文件名、链接和环境变量一个都不能丢,整段改写的整处不写。回答被截断或不是一个完整的 JSON 对象,一处都不写。不发消息、不出卡片、不发通知:流程图侧栏的「完工复盘」里列出谁复盘的、总结、三张清单、改动(能展开看原来和现在,技能只列改了的行,没写进去的写明为什么),每处改动一个「撤销」——只在它还是复盘写下的样子时才撤得回,之后又被改过的就算新的了。复盘写的记忆在 Bot 资料页标「完工复盘《…》写的」,被 Bot 在一轮里重写或被你改了文字,这个标就去掉。每天两美元、12 次封顶,花费单列为「完工复盘」(记在整理下)。
  • 链不再复盘,你的回复也不再算作选路反馈。

回避:把「别这样搜」写进记忆了事, 同一类命令一超时再超时, 用模型写检测器

完工复盘(Retrospective)

引擎 8 级起,你接受的一件事交付、又安静了半小时之后,在里面交过东西的 Bot 各回看一次:用它自己的模型(工具 → 分工里给「完工复盘」选了的,用那个)读这件事的记录(你的原话、每次交付和它的结局、放行后的投诉、需求台账、它出过的问题,以及它现有的记忆和技能),不读转录;写下踩了哪些坑、哪些做法让你返工、下次照做什么,再把结论改进进它自己的记忆和技能——同一主题覆盖、讲一回事的合并、错了的改掉或删掉,技能只在原文后补一句、末尾追加或改正一句,原有的命令和名字一个不丢。应用逐条核对后写入,每处留着它替换掉的原文。不发消息、不出卡片、不问你:流程图侧栏「完工复盘」里列着,每处改动能撤销。它在这件事里什么都没出错的不复盘,日程不复盘;它修订 ADR 0050 停掉事后复盘的那一条,但不复盘链、不问模型的事。它是引擎里能关的一步,三套内置引擎都开着(ADR 0085;通用从 2026-10-14 起)。细节见行为说明·质量事件与教训和 ADR 0062。

行为细节

8 级起(ADR 0050),不再事后开模型调用复盘一条链、把结论写进记忆;唯一的例外是你接受的一件事交付之后的完工复盘(ADR 0062),它是做过这件事的 Bot 检查自己的做法,不评价模型:

  • 质量事件:工作日志里表示出了问题的事件,按类型直接归类——检查没过、审查打回、你退回、投诉返工、命令超时是 execution(检查在交付之后才定的、要求在交付之后才第一次说的是 unclear);复读、拒答、写到上限、不完整是 model;渲染失败、卡在能力天花板是 pipeline;被你推翻的放行是 review_miss;卡住、出错、叫停后仍有副作用是 orchestration。每条带着它说的 Bot 和模型。清空历史不删它们,只断开来源。
  • 记为模型问题:流程图卡片的「模型选择」里可以把这一轮记成模型的问题(再按一次撤回),它只进模型报表。卡片也写着这一轮为什么跑在这个模型上。
  • 报表:GET /v1/quality/report 按 Bot × 模型 × 规划类型给出交付、通过、打回、退回、检查没过、投诉、失败形状、误放行和每个通过的交付花了多少。
  • 教训:递归搜索(grep -r、rg、find…)跑满超时被杀,就把这一类调用(程序、位置;搜索词和引号里的内容不算)记成这个工作区的教训,所有 Bot 共用;渲染、构建跑得久不算。之后这类命令在一轮里第一次出现时先不跑,告诉 Bot 上次怎样、怎么缩小范围;同一轮里原样再调就放行;放行后又超时,就改成拦下,从此不跑。缩小到下一级目录是另一类调用。设置里的「教训」页可以看、在警告和拦下之间切换、停用、恢复。
  • 反思(ADR 0051):引擎里能关的一步,通用引擎默认不跑。只在误放行、能力天花板之后跑,同一 Bot 在同一张任务上一天一次,每天两美元、二十次封顶,叫停时等到解除再跑。当事的 Bot(审查者或生产者)用它自己的模型(工具 → 分工里给「反思」选了模型的,用那个,思考档取 high)读这张任务的工作日志、要求和审查结论,只能提一条清单项(审查前、交付前或生成前)或一条对文件的检查提议(exists、contains、matches;不提命令),或者不提。提议出一张卡片「采用 / 不要」(发在哪同放行卡片),检查提议原样写出它查什么:采用的清单项进这个 Bot 的局面块;采用的检查加到这张任务上,没过会打回,但不算你写的,不能替你担保没人审的放行,在板上改过一次才算。
  • 项目技能(ADR 0052):Bot 资料页「技能」里的「项目共享技能」卡上,你可以把这个 Bot 的一条技能共享给所有 Bot(再确认一次)。共享的是那一刻的副本,每个 Bot 的技能目录里都看得到、能读、改不了;原 Bot 之后改了,标「共享后又改过」,按「更新共享副本」先看现在的正文、再确认才换。同时最多开 20 条,可以停用、停止共享;原 Bot 删掉后副本还在,标「来自已删除的 Bot」。
  • 质量报表:花费页底部的「质量(近 7 天)」表,按 Bot × 模型 × 规划类型列交付、通过、打回、投诉、回复失败、误放行和每次通过的花费。
  • 完工复盘(ADR 0062):引擎里能关的一步,三套内置引擎都开着(通用从 2026-10-14 起)。一件事交付(每张任务都放行了)、又安静满 30 分钟之后——放行后紧跟一句投诉会让它重开,复盘等下一次交付——在里面交过东西的 Bot 各复盘一次(交得最多的前三个),7 天内的交付才算,日程的不算,叫停罩着时等解除。这个 Bot 在这件事里什么都没出错(交付没被退回、打回或检查没过,没有投诉返工,没有交付后才说的要求,没有渲染丢失、搜索超时,也没有哪张任务交了不止一次)就记一笔跳过、不调模型;重开后又交付,只看上次复盘之后又出的问题。它用自己的模型(Claude Agent 运行方式的 Bot 走端点;工具 → 分工里给「完工复盘」选了模型的,用那个,思考档取 high)读这件事的记录:你的原话、每次交付和它的结局(你退回时的话、审查结论、没过的检查、它自己的交付说明)、放行后的投诉、需求台账(说过几次、是不是交付后才说)、它的质量事件和反复失败的工具调用、它的全部记忆和技能、项目技能和清单项,以及它以前的复盘写了什么、哪些被你撤销了;不读转录。它答出踩的坑、让你返工的做法、下次照做的(各至多 5 条),对这件事检验过的旧结论下判断(仍然成立、又犯了、已不成立),和几处改动:记、改写或合并记忆(至多 3 条),删掉记忆(至多 3 条),改自己的一条技能或新建一条(至多 2 处、新建至多 1 条)。应用逐处核对后写入,一处被拒不连累别的:记忆照工具的规矩(主题 40 字、正文 160 字、满 20 条要先删或并掉一条);你停用的、项目技能、别的 Bot 的都不改;技能只能在某段原文后补一句、末尾追加、或改正一句本身错了的话,原有反引号里的名字、文件名、链接和环境变量一个都不能丢,整段改写的整处不写。回答被截断或不是一个完整的 JSON 对象,一处都不写。不发消息、不出卡片、不发通知:流程图侧栏的「完工复盘」里列出谁复盘的、总结、三张清单、改动(能展开看原来和现在,技能只列改了的行,没写进去的写明为什么),每处改动一个「撤销」——只在它还是复盘写下的样子时才撤得回,之后又被改过的就算新的了。复盘写的记忆在 Bot 资料页标「完工复盘《…》写的」,被 Bot 在一轮里重写或被你改了文字,这个标就去掉。每天两美元、12 次封顶,花费单列为「完工复盘」(记在整理下)。
  • 链不再复盘,你的回复也不再算作选路反馈。

回避:每轮都复盘, 读转录做摘要, 把需求台账抄进记忆, 整段改写技能, 复盘之后出卡片问你, 问模型是不是模型不行, 复盘别的 Bot 的记忆

工作项(Work item)

一个 Bot 在一个规划及其可选任务上的一份工作,即「Bot × 规划 × 任务」;没有规划时,桌面工作项属于「Bot × 会话」。工作项是工作身份,轮次是它的一段执行,同一 Bot 在同一规划上不能同时执行两段。细节见行为说明·工作项。

行为细节

工作身份是「Bot × 规划 × 可选任务」,没有规划的桌面工作项是「Bot × 会话」。新工作路径给每一段执行绑定工作项;工作项不是轮次,任务也不是工作项。同一个工作项最多一段活执行(I1),同一个 Bot 在同一规划上也最多一段(I1b),包括正在执行、等批准和等提问回答的轮。规划级和任务级工作项不能绕过第二道限制;别的 Bot 在同一规划上仍可各做自己的工作。

同一 Bot 正在做这件事时,后来归到这件事的消息送进已有段的持久收件箱,不因为来自另一个会话、不同任务或用户在群里点名就改道或开副本。你在别的会话里对它说的话(点名它、群里交给它或判它下场、在它的私聊里)也这样送进去,但收件那一行标「对你说的」,带上那个会话的 id(inbox_items.reply_in):那边没有别人替它回,它用 send_message 带上这个 id 在那边回答,这不结束手上这一段。只因为说的是同一件事才转来的话不标,那边有人回应。原来一律不标、还告诉它「那边会有人回应」,你在群里 @ 一个正在私聊里做这件事的 Bot,它读到了却不回(2026-10-14 的「@创意导演 你呢」)。不同规划才开自己的段,受名额和叫停限制。当前名额口径:每个 Bot 全局默认最多两段工作;桌面不占工作名额,每个 Bot × 会话最多一个活桌面段,没有「每个 Bot 全局仅一个桌面」的约束。代码读取 bots.parallel_limit 中有效的正整数,缺省/无效值回到 2;本次没有新增调整它的界面。超过工作名额的收件和工作项落库为排队,会话回「排在第 N 位」;有名额后,调度器按优先级和收件顺序尝试开启,没有正在跑的目标也能从冷队列开启。目标仍被叫停或规划休眠就不启动。清空转录不自动恢复工作;用户明确恢复使目标重新符合准入后,来源消息已清空的排队项可用原正文快照建只给 Bot 的系统触发,再次过名额与叫停闸。这不是重启后的自动监督续跑。

段结束后的状态:一段结束(正常收尾、Stop、中断、失败),它的工作项不再停在 running:2 级没有结束契约,3 级起契约没看到的结束(Stop、没走 end_turn 的收住)也一样,由引擎在段结束时、它没读的收件处理完之后改:桌面的关闭,规划上的转 idle,等这件事的下一句、排队或监督器接手;还有没读的话就是 queued。4 级里被切断的(中断、失败)照旧是 needs_attention。守护进程意外退出后,下次启动把上一进程留下的 running 一并这样处理(4 级只处理桌面,规划上的交给监督器按最后一段怎么结束的来修)。

继续不按会话限一段:2 级起,中断或失败那一段的「继续」只受同一件事一段(I1b,桌面是同一会话的桌面)和工作名额约束;同一会话里这个 Bot 正在做另一件事时照样能继续,不再回 bot already has a live turn;同一件事已有活段时回 409 already_working。

等你回答时打字:2 级起,你的一句话送到一段正在等你回答提问(waiting_ask)的工作,而且就在它提问的会话里、不带文件,就当作你对这个提问的回答(你自己写的,不是选项),这一段接着做;不进收件、不让那一段卡着。带文件的、别处说的、Bot 说的,照常进收件。

work_on 选择的规划已经被这个 Bot 的另一段执行占用时,把本段实际触发消息(不只是文字摘要)送给那一段,本段以 merged 结束。任务身份仍然可以分别记录,但不能据此同时做两遍同一规划。未读收件被新段接收时会保留正文快照和处置记录;纠正已读归属不会把旧段的历史改写掉。

回避:把工作项当消息或轮次, 每个会话各做一遍同一件事, 用任务归属正确代替规划级唯一执行

桌面段(Desk segment)

Bot 尚未选定要做哪件事的一段执行,可以阅读、回答和询问;选择工作归属必须先于对那件事的实际动作。引用和读法都没把这句话放到哪件事上时才有它;读成新事的,它第一次有副作用的调用就为这句话新开一件事,除非它先选了别的;读成当场做完的(提问、查询、改设置、小操作),它的调用不开事。它不同于被叫停后只能回答的只读段,后者不能转成工作。细节见行为说明·桌面段。

行为细节

引用没有决定归属、读法也没有放下这句话时(读成新事、看不出是哪件、或没读成,见归属),被叫 Bot 自己开一段 mode=desk:这是该段的第一跳,不是整理员的旁路猜测。它在这个会话的桌面段还开着时,下一句同样没归属的话(点名、负责人、@everyone、判断下场、私聊里的分叉都一样)由这一段听进,在下一跳读到;不会再开第二个桌面段(同一个工作项),也就不会因唯一约束被拒、把话丢掉。那一段没读就结束了,这句话开下一段桌面、作为它的触发,不在收件里留着排队。候选 id 集合在准入时捕获,和读法看到的是同一份(会话的候选加上触发那句之前六句所在的事);桌面提示逐个展示这份集合里的规划 id/名字、最后活动时间、最多 3 条最近产物路径,以及最近一句未抹掉的用户原话(显示截到 300 字符;没有产物或原话时不列那一项)。这些说明可随每跳读取最新数据,不重新计算或扩充可选 id;候选已经不可用时标明不可用,不替换成新候选;work_on 只能选这份候选里的规划,或引用本会话中真实的用户消息新开一件事;不写引用({new:{title}})就是开启这一段的那句——Bot 看不到消息 id,原来要它填 quote_message_id 它只能猜:2026-10-14 读句没读成,通识查 Stripe 的一次 curl 在三件事之间被拒,接着猜了个 id 新开一件又被拒,两次退回用尽,「Payoneer + Stripe 能通吗」下面只剩桌面那句截停。写了 id 而那不是这个会话里你的话,照旧拒绝、算一次退回。候选后来增多不让旧段悄悄选上新规划。

选定前只读:读文件、列目录、无副作用的查询和标为 readOnlyHint 的 MCP 工具,外加回复、ask_user、work_on、end_turn。第一次要求有副作用的调用时,先完成归属,后执行——除非这句话读成了当场做完的事:

  • 读成当场做完(ADR 0057):不论几个候选,局面写明应用读出这句话是当场做完、在回复里说清楚就行的事(问题、查询、改设置、小操作);副作用照常执行(叫停时照样拒绝,要批准的照样出卡,命令在工作区根目录跑),不开事,回复按 answered 收尾。做下去发现要交出成果的,Bot 先用 work_on({new:{title}}) 自己开一件。要不要开事由读法判断,不看调用的是哪个工具:2026-10-08「你能根据已经配置的模型补一下它们的上下文大小配置吗」在 update_endpoint 时被开成了一件事,窗口改好了、Bot 也说了,任务却一直待做,十分钟后监督把 Bot 叫回来,它又说了一遍同样的话,第二次没有进展的结束让这件事停下并发了提示。没读成的照下面的规则。
  • 0 个候选:只有用户请求能自动新开规划,并给自己建一个产出任务;再执行调用。2026-10-06 起不再贴「新开:…」卡片:这件新事在你那句话的流程里看得到。新事的标题去掉原话里点的 Bot 名(「@Alpha 做一个 logo」开成「做一个 logo」),只有名字时保留原样。Bot 或系统行不能靠这条兜底自造新事。
  • 读成新事(ADR 0057):不论几个候选,局面写明应用读出这句话是一件新的活、不是其中哪件;第一次有副作用的调用就像 0 个候选一样为它新开一件事,除非 Bot 先用 work_on 选了某件。读法自己从不开事:只回答、只聊天时不留下一件事。
  • 1 个候选:局面先写明默认归到哪件事;无关就先 work_on({plan:{new:{title}}}) 拆出。这次调用绑定后才执行。
  • 2 个以上候选:拒绝调用,列出候选,也写明可以用 {new:{title}} 为你这句话新开一件,等 work_on 或向你确认;不能先写文件或跑命令再补归属。

选定不等于已有工作名额:工作名额已经占满时(默认两段),桌面仍能回答,但它把第三件事选成工作后只入持久队列,本桌面段收住、请求的副作用不执行;等有名额再开始,不会把桌面豁免变成第三段工作。中断的工作按「继续」时同样受名额限制,可先排队,本次准入段记 end_reason=queued,实际工作稍后才开启。

work_on 可以指定该规划里的任务(或新建任务),也能用 also 追加这个 Bot 的、仍打开且在候选里的工作项归属。这一段已经在做的那件事不用在候选里:桌面段用 plan_items 拆活时就开出了这件事、绑了上去,接着用 work_on 去做自己的第一张任务;原来这一步被当成「不在本轮候选里」拒掉,结束时又被要求接着做,负责人自己的那份怎么都开不了工(2026-10-04 的走查)。从整件事往下选到它的一张任务,是这一段自己的步骤、不是对你那句话的读法:已经归到整件事的话仍归整件事,不挪到那张任务上(原来负责人一开始画海报,你那句「竖版海报和三句宣传语」就只标着竖版海报)。锁定或用户纠正的目标不能由 Bot 丢掉;默认目标可以在第一次动作前拆到引用用户原话的新规划。归属退回预算为桌面段两次,耗尽以 needs_attention 收住、贴出「这句话需要先选归属,尚未执行有副作用的工具」,同一跳后面的副作用也不执行;段一旦绑定就不再花这个预算。

工作目录(I8):公开约束是每段最多一次变化,完成归属后才允许副作用;典型是桌面无目录 → 任务目录。默认归错的新请求在尚未动手时可拆出一次,但不能把它当成工作中反复换目录的许可。工作段已经绑定到别的目录、写过文件或跑过调用,不能靠 work_on 换事继续写。同一件事里的另一张任务例外:一段还什么都没做(没写文件、没跑命令、目录没用过),可以用 work_on 换到这件事的另一张任务上,比如负责人被叫醒得知宣传语已通过、接着做自己的海报;原来它换不过去,只能等监督器几分钟后另开一段(2026-10-03)。从整件事这一层落到它自己的某张任务上也不算换目录,做过事也可以:之前做的都在这件事里,任务目录在它下面。2026-10-04 用真模型跑,叫停后你说「宣传语改成英文的,海报改横版」,这句归到整件事,负责人那一段就开在整件事这一层,海报做好了却交不上——没绑任务不能 submit,做过事又不能 work_on 到任务 01,最后放弃,这件事没交付。换到别的事、或从一张任务换到另一张,做过事后仍然不行。开在整件事这一层的工作段,往这件事里它自己(owner)的某张任务的文件夹里写文件时,应用直接把它绑到那张任务上(work.bound,by write),所以段末会照那张任务自动交付、它的义务也按那张任务算:同一次真跑里,负责人被宣传语通过叫醒在整件事这一层,把海报画进 03 的文件夹,却以 nothing_new 收尾,什么都没交上来。要你批准才跑的命令写的也算(原来只有直接跑的才算:2026-10-04 负责人用你批准的 python3 画出海报,这一段一直挂在整件事上,submit 被要求先绑定任务,它最后放弃了);另外,整件事这一层的一段 submit 交的文件全都在它自己某张任务的文件夹里时,也先绑到那张任务再交——文件是工具(比如生成图片的 MCP)或别的命令写的、应用没看见写,也照样交得上。中断后的「继续」保留桌面模式、捕获的候选和已用的目录变化次数,仍过归属和叫停闸;它不会自动变成可写的普通工作段。被叫停后回答你的 readonly 段不是桌面段,不能用 work_on 接手工作。

新开卡片操作:2026-10-06 起不再贴这张卡(ADR 0058 补记),之前贴出、还在的照样按下面说的能按。原来 2 级的新事显示一张持久的「新开:…」卡,记录开启段和引用的用户消息,带「撤销」「并入…」;因工作名额已满而排队的新事也可以有卡,不因此多开第三段工作。新事仍是 active 或 delivered 时可操作,快速交完也不让按钮失效;用户已接受或新事已作废时,旧卡返回 409 plan_changed,应走另一个明确的人类操作,不借旧卡重开。按钮成功操作一次,再按不重复执行。

「撤销」先在新规划上明确建叫停、停掉在跑的执行,再记 abandoned;不是把过去的执行抹掉。文件、旧轮的执行记录、原话正文和需求保留,引用消息仍归在这件已作废的事上,不自动清理或删除;解除叫停也不会把 abandoned 自动改回 active。已经开始的写文件、命令、MCP 等副作用只能如实标为保留,外部已发生的操作不承诺撤销;停止之后不再放行后续副作用。

「并入」同样先停下并作废新事,但只把卡片引用的那条用户消息中指向新规划的归属改到卡上提供的、同一项目(主会话)的 active/delivered 已有规划;那句话的其他归属保留,原话正文不抹掉。它走消息改归的收件/出处纠正规则,不改旧轮的规划或工作目录,不搬产物,不合并整个规划,也不解除目标规划的叫停。引用消息已经改归过而不再指向新事时,拒绝为 409 attribution_changed;目标不在卡上、不是同项目或已不符合阶段时拒绝。

新开卡的「并入」改归引用的那句话,同时停止/作废这件新事;2026-10-14 起这是唯一还会改归一句话的用户动作(手动改归属已去掉,见归属)。卡片调用沿用本机及远端的 POST /v1/messages/:id/control:{action:"undo_plan"} 或 {action:"merge_plan",task_id}。专项验证已覆盖运行中停止、保留文件、快速交付后操作、排队卡片、改归及过期保护;这不代表完整 P4b 阶段验收或后续 P4e 提交审查已完成。

回避:另一个 Bot, 开轮前的旁路整理, 未归属就先动手, 用桌面段绕过叫停

归属(Attribution)

一条消息与它所涉及的规划、任务或分件之间的关系,可以有多个目标,也可以未定或不归到任何事。先看这句话自己指着的(卡片上选的、批注、引用回复、路径、绑定的工作),没有时由模型读它在说哪件事(ADR 0057),读不出的交给 Bot 在桌面段选。归属是应用自己定的:会话里不显示,也不能手动改,在这句话的流程里看(ADR 0089);归错了用话来改,比如引用对的那件事里的一句。归属不是消息的发送地点,也不是把整个规划迁移到另一件事。细节见行为说明·归属。

行为细节

message_filings 保存一条消息的全部目标(规划、可选任务、可选分件)和来源;旧的 messages.task_id/ticket_id 只投影第一个主目标,不再代表全部。filed 是有目标,undetermined 是还没判定,none 是你明确不归或应用的控制行等不参加归属。你的话只是可能是叫停(带按钮的 possible_control:读句读成叫停、旁边还有别的话,如「先停,把第三镜换成夜景」,或读成两样都有)照常归属:引用、路径和读法都照读,在做这件事的段照常听进。读成继续的话(单说「继续」也是)同样照常归属:它解除哪些叫停,看它归在哪件事(见叫停)。同一句可以同时涉及几件事,也可以在同一任务里涉及几个分件;多归属不把同一 Bot 的规划执行唯一约束放宽。

先读这句话自己指着的东西(锁定信号),按以下顺序,指向不同目标时累积,去重后都保留:

顺序 来源 性质
1 卡片上明确选的目标 锁定
2 已发出的批注,按目标产物路径及交付消息/轮继承 锁定
3 引用回复,继承被引消息的全部归属 锁定
4 附件或正文路径落在已有规划/任务目录下 锁定
5 已有工作项或叫醒记录的绑定;Bot 输出用自己的当前工作项 锁定;3 级显式委派绑定已接入,不等于未来作业/提交工具已生效

这几条都是引用(选的、批的、引的、写出的路径、绑定的工作),不是对这句话意思的猜测。一条都没有时,这句话在说哪件事由模型读(ADR 0057,见读句的「读归属」):读成在说其中某几件的,归到那里(默认,可改,可带任务和分件,记成 filed_by = reader);读成和这些事都无关的(一件新事、闲聊、别的问题)、看不出是哪件的、没有模型或读不成的,都先不归,由被叫醒的 Bot 在桌面段选。没有「只剩一件就归它」「群里只有一件就归它」「紧接在 Bot 那句之后就归那件」这类默认,也不看这句话怎么开头、带了什么编号——2026-10-02、10-03 三次把新要求粘到旧事上的,都是这类默认(「制作《一拳超人》动画」被归到了「让审片员回复视频导演…」上)。

读法看到的事:当前会话、Bot↔Bot 线程的来源会话里的非休眠 active/delivered 规划,目标 Bot(没指定时是会话里的 Bot)未关闭工作项所在的规划和它近 24 小时执行过的规划;别的会话里的规划只能经这两条进来,Bot 只是那个群的成员不算——你私聊里的一句话不会归到它从没碰过的群规划上。这句之前六句所在的事,只要没验收或作废,也在里面——日程的常驻规划、休眠的事也算:日报交出来三分钟后你说「标题跟 LOGO 没有对齐」,读法看得到今天这次日报,也看得到日报是三分钟前说的(2026-10-03 那次规则 6 把它归到了三天前的地址任务上)。桌面段准入时抓的是同一份候选,读法选得到的 Bot 也选得到。显式引用、批注已验收或休眠的规划时仍可选它。

分件只有负责人用 plan_items 声明的(和你在看板上加的)。一句话的分件来自读法(只记它要改、挑毛病或问到的那几个,只是夸一句的不算)或它的引用(批注的文件正是某个分件当前的文件);文件名不造出、也不认出分件,话里的镜号也不按格式去对。只补身份和关联产物,不把分件推进到已通过。

归属是应用自己的事(ADR 0089,2026-10-14):会话里不显示一句话归在哪,也不能手动改——消息下面没有归属标签,菜单里没有「改归属…」,没有改归属的弹窗,也没有「新开一件事」。要看归在哪,用这句话菜单里的「这件事的流程」:归到某件事的,打开那件事的流程图,选中这句话和它的任务;没归到任何事的,打开它自己的流程(读成了什么、叫醒了谁)。流程里「读归属」那一步写出读到的事和任务的名字,按现在的名字(「归到:宣传片 › 剪辑」,几件时「归到:宣传片、海报」,任务和事同名只写一次;有一件名字查不到时只写「归到 N 件事」),步骤详情里是模型的原始回答;锁定信号定下的归属没有这一步,这句话就画在那件事的流程里。归错了用话来改:引用回复对的那件事里的一句(引用继承被引消息的全部归属),或者停下再说一遍;同一种读错反复出现,在分工页调「读归属」的提示词。GET /v1/messages/:id/attribution 只读:列出工作区里的事和任务(可含未接触或休眠的规划,读取不会叫醒它),给 Bot 关于某件事的提问卡写名字用,会话里有这种提问时才请求;改归属的 PATCH 已经去掉,本机和远端都是 404。

改归(2026-10-14 起只有旧的「新开:…」卡上的「并入」会做,见桌面段)可以改锁定关系,记录 attribution.changed。尚未读的排队/held 收件改到新工作项,按目标现有叫停保留 held;已经读过的收件及原执行段不改,给真正读过它的 Bot 另留「这句改归到…」的纠正收件,新目标没有活段也可排队。多目标分别留收件;明确不归使未读收件 superseded,不回滚已做的事。纠正不解除叫停、不搬文件、不改旧轮的工作目录。还在跑的、读过这句话的那一段,如果它做的那件事已经不在这句话的归属里(或它还在桌面上没选事),下一跳会读到一条应用提示:这句话被改归到哪件事、那里会另开一段做、这一段别再按它动手——原来它不知道,会在错的那件事里接着把它做完(2026-10-03)。

持久原话也是多值:同一份原话通过 user_quote_filings 关联全部目标,清空转录之后副目标仍能读到它,不只保留旧标量主目标。从这句话提取的需求出处随纠正移动;当前台账条目仍是单一作用域,按主目标重挂,不据此宣称一条要求已经自动扇出成几套独立审查义务。改一句发出去的话不改它的归属,改动另存的原话跟着这句的归属走;读过这句的 Bot 收到的「你改了这句」和改归的纠正收件一样,在改字的那一次直接写进收件,不经过叫醒(见原话)。

回避:一句只能归一件事, 未定等于没有工作, 改归等于改写已执行的历史, 改归等于搬文件, 只剩一件就归它, 看开头的字猜是不是新事, 按话里的编号对分件, 归属标签, 手动改归属

群负责人(Group lead)

由你确认的、接收这个群里未点名消息的 Bot;可以由交接记录提出建议,但建议本身不是任命。某件事在群里已有在场负责人时,优先由那件事的负责人接收。细节见行为说明·群负责人。

行为细节

2 级群里没点名的用户消息先给这件事在场的负责人,再给你已经确认的群负责人;这两者都没有时,沿用旧群的参与判断(仍是原有各 Bot 的判断,不宣称已改成一次判全体;它跑在 Bot 自己的模型上,工具 → 分工里给「判断下场」选了模型的,用那个)。点名/@everyone 照常决定收件人,同事在同一规划上已开段时听进那一段,不因此改道。负责人被叫停也不换一个人偷偷继续。这样默认给到负责人(或在场正在做事的那个 Bot)的一句话,归到了另一个还能接活的 Bot 的任务上时,它从整件事这一层开始:可以把那张任务派出去,或者接着做自己的任务,但不会顶着别人的任务干活;你点名它、或在和它的私聊里说,才照这句话的任务。原来 2026-10-04 真模型跑,叫停后你说「宣传语改成英文的,海报改横版」,读成了文案的宣传语任务,负责人那一轮就挂在这张任务上,画的海报被当成宣传语交了上去,还顶掉了文案刚交的英文宣传语。

近 7 天的交接记录只提出建议:数的是在执行段中真实发给另一个成员的点名交接(含全员点名),及从该群开出的 Bot↔Bot 私聊的第一条真实发言;普通闲聊、用户的点名、空私聊、后续对话不当交接数。只建议仍在场、未归档未删除的 Bot;证据为空或第一名并列就不建议。你确认才写入 session_participants.is_lead,Bot 没有任命工具;可重新指定在场 Bot,或用 null 清掉。

本机和远端白名单有 GET /v1/sessions/:id/lead、PUT /v1/sessions/:id/lead {bot_id,confirmed:true};群设置的成员列表里,每位在场 Bot 一行就是入口:「设为负责人」一次点击即确认(换人直接点另一位),当前负责人带「负责人」徽章,行上的「取消负责人」清掉;已归档的 Bot 不提供设置,但它若是当前负责人仍可取消。建议只作为提示出现在对应成员行(「建议:近 7 天有 N 次交接」),不占聊天流、也无需关闭;没人点它就什么都不变。确认记录 group_lead.confirmed,不因为统计第一名变了自动换负责人。

回避:统计第一名自动任命, Bot 自封负责人, 负责人替你解除叫停

原话(User quote)

你写下的话的原样副本,与聊天转录分开保存,可以同时关联它涉及的多件事。清空转录不抹掉原话,只有你明确要求抹掉才清空正文;模型的转述不能替代它。你改了一句发出去的话,改动的那几小句另存一份,原来的照留(ADR 0063)。细节见行为说明·原话。

行为细节

P4b 补充:2 级消息的原话跟随全部归属,不仅是主目标(见归属);user_quote_filings 把同一份原文关联到几件事,清空转录不丢副目标。下面关于「被轮次或整理跳归档」的说法只适用于旧路径;2 级归属来自确定性信号和桌面选择。台账条目的数值替代仍遵守 ADR 0042:只提议,用户确认才替换,不采用设计草稿里的自动数值覆盖。

你说过的话,按收到时的原样另存一份,和转录分开。存的是:你发的每句话(文件投递那个会话除外,那里没有 Bot);你对 Bot 提问的回答(选中的选项和你自己写的话);一批批注发出时你另外写的那句(只点了名、没写别的就没有)和每条批注本身;你在流程图上亲手写的内容——目标和任务说明里你改动的那几小句(留着没动的不算,那可能是整理跳写的)、新加的每条验收和规则(只拖动状态不算)。每条都在写下它的同一步落库:那句话没发出去,它也不存。一条最多 2000 码点,更长的留下开头和结尾,中间标出省了多少。它归在所属的规划和任务下:你的话落地之后才被归档(被它开出的那一轮,或被整理跳),原话跟着归档走,之后改归到别处也跟着改,旧版本写的归档也一样;批注归在它批的那次交付所在的规划和任务下;提问的回答归在提问的那件事下;流程图上写的归在那个规划(或任务)下,不属于哪个会话。

清空会话历史时,转录和轮次照删,原话都留着,只把指向那条消息的 id 置空;删除群时连「在哪个会话说的」也置空。两者都可以要求一并抹掉(清空历史或删除群的确认框里勾上「同时抹掉在这里说过的话」,不勾就不抹;请求里是 erase_quotes,本机和远端接口都认):这个会话里说过的原话正文清空、标成已抹掉,行还在,站在这些话上的需求清掉文字、改成不再适用;流程图上写的不在任何会话里,不受影响。这个会话的规划怎么样见规划。

升级到这一版后第一次打开数据库时,转录里还在的你的话、回答和发出的批注各补存一次,归档照转录里的;之前清空掉的已经没了。之后每条随写随存,不再补;这期间共用数据目录的旧版本写下的话不会补进来。

一轮只要是在一件事里干活——群里、私聊里、Bot↔Bot 私聊里、回看醒来、日程到点,都一样——局面里就固定有一段「用户在这件事里的话」:归在这件事下、没抹掉的原话里最早 4 句和最新 6 句,原文照录(一句最多 400 码点,超出的截断加「…」),每句写明什么时候(本机时间,月-日 时:分)、在哪说的(群名、谁和谁的私聊、回答提问、批注,或在流程图写),中间省掉的写「中间还有 N 条」,不到 10 句就全列。它读的是原话,不是转录,所以会话清空了、Bot↔Bot 私聊里一句你的话都没有、离开转录窗四十句开外,Bot 读到的都一样。这件事的第一轮不列:那一轮的触发就是这句要求。被叫停扣着的一轮只读到叫停那一刻为止的:叫停之后你说的话、由它们记下的要求,解除以后才进它的局面,免得一轮不能动手的轮先读到一条新吩咐。

改一句发出去的话(ADR 0063):你写的普通话发出去以后还能改——气泡上的「编辑」(悬停条、右键或长按菜单),或输入框为空时按 ↑ 改最近一句;气泡原地变成编辑框,Enter 保存、Shift+Enter 换行、Esc 取消,输入法选字的回车不算保存。Bot 的话、你对提问的回答(一次提问只答一次)、批注合成的那条、应用当场办掉的叫停不能改(撤销后交回给 Bot 的那句又能改);归档的会话、Bot↔Bot 私聊、Bot 已删的私聊里也不能。没有时间限制。改过的话时间旁标「已编辑」,点开列出之前的版本;这份历史跟着转录走,清空会话就没了。原话只增不改:改动的那几小句(和流程图编辑一样,留着没动的不算)另存一条,指向这句的第一条原话、归在这句所在的事上;只删了字就不另存,旧字还在。书记员按先后读这句的每条原话、各读一次,所以只读到改动的部分;按你的话加的检查把一句话的几条原话算一个出处,没改的数不会被算成说了两次。旧原话上的台账条目不动:改了数字的生成一条待你确认的替代,生效检查的数变了出替换卡,删掉的字所在的条目照样生效。2026-10-10 起,每次改动(只删了字的也算)书记员都再读一遍:给它看改前改后两版,和这句话早先的字记下、你没在别的话里再说过、还在台账里的条目,它读出哪几条被你改掉了,那几条在要点「你的要求」最前面单列「你改掉了的字」,各带「不再适用」(待确认的是「不是要求」)和「留着」;你不按,它们照样生效。谁知道你改了:还没读到这句的 Bot,收件里的字直接换成新版,它只读到新版;已经读到的(读过这句的收件、以它开出的轮)各收到一条你的话「你改了这句。现在是:「…」(原来是:「…」)」,在干活的就在下一步读到,轮已结束的排进它在这件事上的工作、开新一轮来读;你按停止停下的,这次改动就算你下一句话:停止随之解除,它开新一轮照改后的话接着做;要你自己解除的叫停(「停下所有 Bot」、流程图、工具菜单)覆盖时扣着、解除后送到;它要在 end_turn 里处置这一条。叫停下的只读答复轮不算读过:解除时这句原样交回,已是新字。改过的话不当叫停或继续办,不重新判投诉,不改归属,不叫醒新点名的人;没人收到过的话(群里都旁观了)改了也不叫醒谁。Bot 的转录里改过的话标「(发出后改过)」,局面的「用户在这件事里的话」把改动写成「在X改了一句」。

撤回、直接插入还没读到的话(ADR 0069):你的话还没有任何 Bot 读到时——在干活的 Bot 的收件箱里排着,或被叫停扣着——气泡下面有一行说它在哪等:「排队中 · 它下一步读到」(它正在干活)、「排队中 · 轮到时读到」(等它下一轮或空出手)、「叫停中 · 解除后读到」,读到了就没了。旁边两个按钮。「撤回」:每个收件箱里的副本都不再送,这句从此不进任何 Bot 的转录,原话一并抹掉(由它记下的台账条目作废),只为它排着的工作退回空闲;转录里这句变成「你撤回了这句话 · 重新编辑」,输入框空着时字直接放回去,「重新编辑」把字接在已经打的后面;撤回的话不能再改、也不会被改归,要说就重新发。已经被读到、开过轮的话撤不回,下面会说一声,可以改它。「直接插入」(排着的;被你按的停止扣着的也行——停止随之解除,Bot 马上开一轮读它;要你自己解除的叫停扣着的不行,这句下面会说):Claude Code 跑的 Bot 被中断——和在 Claude Code 里按 Esc 一样,正在跑的命令停掉——然后这一轮在等的话按顺序马上送进去,告诉它这一步是为这几句停的、被打断没跑完的要重跑就重跑;被打断那一步自己的结束不当回复也不当失败。应用自己跑的 Bot 切掉正在进行的那次模型调用,这一跳还没跑的工具调用推迟,已经在跑的命令跑完,下一跳一开始就读到。这会儿没有能打断的一步(它在收尾,或这一轮已经结束)时,下面说「这会儿没有能打断的一步,它下一步就读到」。停止解除时,它扣着的话都交回给 Bot 去读。按停止之后在交付卡上「退回」,也解除那个 Bot 在这件事上的停止,它带着你写的返工。接口是 POST /v1/messages/:id/withdraw 和 POST /v1/messages/:id/insert,手机上也有。Claude Code 跑的一轮在一批调用后读到的话,段结束时不再为它多开一轮。

回避:转录是唯一来源, 清空聊天就删原话, 模型摘要替代原话, 多归属只保留主归属的原话, 改一句话就改写它的原话

需求台账(Requirements ledger)

你对这件事提过的要求,一条一条记着,每条都站在你的原话上:引文就是原话里的一段,另有编号(R-12)、转述、类别、作用于哪里(一个任务、这件事、这件事所在的会话里的每件事,或每一件同类的事)、你说过几次、在几件事里说过。只增不删:条目只会被新增、被再提一次;离开「生效」只有一条路:你自己操作;你更晚的话给同一个数(时长、分辨率、画幅、帧率)换了新值也只生成一条待你确认的替代,旧条目照样生效。唯一的真删除是你的彻底删除。写进来的有:书记员从你的话里记的(书记员是引擎里的一步,通用和代码引擎默认不跑),它什么都没记下时应用兜底留下的投诉原话(待确认,不当门禁),你在流程图上写的规则和验收(新加一行记一条;删掉一行它就不再适用于这件事,别的事也没拿着这句话时整条不再适用),以及升级时一次导入的旧规则(你写的和你原话里找得到的照样生效,其余标成「旧规则(出处未核实)」,只作参考);模型给出的其他改动同样只生成待你确认的替代;每条的引文都由库核对是它那句原话里的一段。你说以后每件事都要这样的(「以后每部片都要」「这个系列一直用」),书记员读出来,就作用于这件事所在的会话,同一个会话里新开的事从第一轮就继承,写明继承自哪件事;不适用的可以对这件事单独点「不适用这件事」。只说这件事的,就算听起来是通用的工艺或观感,也只管这件事(2026-10-10 起;此前视频的事里这类要求一律扩到会话)。旧规则不出卡片问你是不是你说的,在流程图「未核实」一组里逐条确认;同一类要求在几件事里都提过,也不出卡片问要不要升为常设。每一轮的局面和流程图上都列着它:Bot 读到的就是你看到的这张单子。清空会话不动它。细节见行为说明·需求台账。

行为细节

你对一件事提过的要求,一条一条记着,和规划的要点分开。每条都站在你的原话上:引文是原话里的一段(最多 300 码点),旁边是转述、类别、正反(要这样 / 不能这样)、作用于哪里——一个任务、这件事,或者这件事所在的会话(那个会话里以后的每件事都适用)——和你说过几次、每次是哪句原话。你给的数(时长、分辨率、画幅、帧率,连同「约」「以上」「以内」)由应用按固定规则从引文里读出来记在条目上,引文里只读得出一个数时才记。说的是画面里的某一刻、某一段或某个位置(「第 3 秒」「12 秒处」「前 3 秒」「logo 放在 3 秒」「字幕定在 5 秒」)、一个范围(「3-5 分钟」「一两分钟」)、多久内回复或做完(「5 分钟内回复我」「限你 3 分钟弄完」「给你 10 分钟」)、别的事要花多久(「等 5 分钟」「渲染要 20 分钟」「3 分钟前」「半小时左右能好吗」「预计 30 分钟出片」)、字数(「2k 字」)或你说不要的(「不要 4K」「不是 3 分钟」)的,不算数;数前面紧挨着「剪成」「改成」「控制在」这类词的,后面跟着什么都算(「剪成 90 秒发给我」是 90 秒),「压在 90 秒以内」「时长定在 90 秒」也算。比例要这句话里有「画幅」「比例」「屏」这类词才读,跟在「比分」后面的不读(「比分 2:1」);单说「24 帧」是帧数,帧率要写成「帧率 N」「N fps」或「每秒 N 帧」;「90s 港风」「80s 复古」是年代。「不要超过 3 分钟」「不能少于 2 分钟」「至少要 2 分钟」按最多、最少读,「能不能改成 90 秒」「要不要 4K」是在问,不是说不要;没说比例时,竖屏、横屏也算画幅(横幅、竖幅常是标语,不算);单写的「分」「m」只在紧跟着秒数(「1分30秒」「2m30s」)或跟在片长、时长后面时算分钟。

条目的状态有生效、待确认、被取代、不再适用、不是要求、旧规则(出处未核实)。只增不删:条目只会被新增、被再提一次。离开生效只有一条路:你自己操作。你更晚的一句话给同一个数换了新值(先说「约 2 分钟」,后来说「改成 3 分钟」)也一样:书记员只能提一条待确认的替代,指回旧的,旧条目照样生效,等你确认;模型给出的其他改动同样只生成待确认的替代。数据库守着两条:条目的引文必须是它出处那句原话里的一段(同样折叠后比),谁写的都一样,对不上或那句原话已被抹掉就写不进去;替代要站在比旧条目更晚的原话上才能把旧条目改成被取代(留给以后你确认替代的那条路)。删除只有你的彻底删除一种。

眼下写进来的有两种:书记员从你的话里记的(见书记员),和兜底捕获。兜底捕获:书记员对一句话什么都没记下(没配模型、调用失败、答不成补丁、说没有要求,或者给的每一条都没通过核对),而这句话是在这件事交过东西之后说的(归在它下面的 Bot 的话带过文件,或者你说这句话时有任务在待验收、已完成;这句话的归档或它叫醒的轮随后把任务打回进行中,也照样算),又带着质量或否定的词(太假、不对、跳跃、穿帮、反了、太短、重做、不行、有问题、错乱……),应用就把这句原话整句(截到 300 码点)记成一条待确认的条目,归在这句话的任务下(没有就归这件事),不当门禁。

你在流程图上改规则或验收,就是在改台账:新加的一行记成这件事的一条生效条目,站在流程图替它存下的那句原话上(同样的话已经是对这件事整体生效的条目——这件事自己的、会话的或常设的;只管一个任务的不算——就算你又说了一次,已有的待确认条目或旧规则就当你确认了它,你设成不适用这件事的就又适用);删掉的一行,对这件事生效、同样的话的条目都放下,不管最初是哪件事记下的:这件事自己的就不再适用,只是出处未核实的旧规则就记成不是要求;作用于整个会话或常设的,别的事还拿着这句话时(它的流程图上有这一行、你在那件事里说过它、它最初就是那件事记下的,或者是你自己点了「对这个会话都适用」「升为常设」;设成不适用的那件事不算),只对这件事「不适用」,别的事照旧(导入时同一个会话里几件事共用的那一条、你这一行只是又说了一次的会话条目,都是这样);没有别的事拿着它,你删掉的就是它的最后一处,它和这件事自己的一样不再适用或记成不是要求,同一个会话里之后的事不会再继承它,也不会再问你它是不是你说的。每一步(新加、再说一次、确认、恢复、不再适用、不是要求、不适用这件事)都在工作记录里写明是你改的哪一版。之后你在话里改它(「机械臂改成右手」),和别的条目一样记成一条待确认的替代:流程图上写的条目没有类别,书记员给的改动对不对得上类别看不出来,就不丢。

作用于哪里:书记员点了某个任务的落到那个任务;书记员读出你说以后每件事都这样的(「以后都这样」「每部片都要」「这个系列一直用」),落到这件事所在的会话;其余落到这件事,就算听起来是通用的工艺或观感。2026-10-10 之前,视频的事里(交过视频文件、或调过视频工具)讲工艺、观感取舍和同一系列设定的要求,不管书记员怎么读都扩到会话:IG MV 那件事的 19 条(「要还原真实的比赛镜头」「对手的形象」「完全看不出来英雄角色」)就这样出现在同一个私聊里「Connect to ACE Studio」的要点里,也进了那些事里 Bot 的局面。已经扩出去的旧条目不迁移,看板上的「不适用这件事」照样能按事收窄;要让下一件事继承,说一句「以后都这样」,或在看板上点「对这个会话都适用」。只说「一致」「统一」「风格」「节奏」「字体」「画质」的不算工艺(「这次数据要和上个月一致」只管这一件),要连着说是什么一致才算(「画风统一」「色调一致」);取舍也是这样,「色调偏冷」是这一部片子(或这个系列)的取舍,不是工艺。一条要求属于哪一类,看书记员记它时标的性质(工艺、观感取舍、系列设定、其他;见读句),没标的旧条目才按上面这些词判断。落到会话的条目,这个会话里新开的事从第一轮就适用,写明「继承自」哪件事;某一条不适合这件事,在它的流程图上点「不适用这件事」,只对这件事去掉,别的事照旧,点「恢复」再回来。设成不适用这件事的条目,你在这件事里又说了它的原话,书记员把它算成你又说了一次,它就又适用这件事,不另记一条。这件事自己的条目可以点「对这个会话都适用」扩大出去。同一类工艺要求你在同一个会话的两件以上视频的事里都提过,也不再出卡片问要不要升为常设(2026-10-04 起):作用于会话的条目,这个会话里新开的事本来就继承,问的只是要不要再扩到别的会话,不是要你定的事。之前出过的卡片「「背景连贯」这类要求你在 2 件事里都提过:「背景要连贯」。要不要以后每个视频都照这条?」(原话不一样时一条一条问)照样能按:「升为常设」只把此刻还符合当时条件的条目升上去——作用于这个会话或它的某件事、还生效、是工艺类、属于卡片那一类的;某个任务的、别的会话的、时长这类数、取舍(EP01 色调偏冷、EP02 色调要暖)、同一系列的设定(左手只是这个系列的)都不升。升为常设的条目对每一件视频的事都适用(没交过视频的事还读不到它)。

升级到这一版后第一次打开数据库时,每个规划要点里已有的规则和验收一次导入台账:你在流程图上亲手写的照样生效(有流程图存下的原话就站在上面);在这件事你的原话里找得到的(同样折叠后比)生效,站在那句原话上;其余的——多半是整理跳写的——记成「旧规则(出处未核实)」,只作参考、不当门禁。视频的事里的工艺类、取舍和同一系列不变的设定导入到那个会话,其余(包括不是视频的事里的这些)留在原规划;同一个会话里几件事都有同一条的,只记一条(一件事里的一行和它继承的会话条目是同样的话,也算那一条)。之后不再导入。这些旧规则不出卡片问你是不是你说的(2026-10-04 起):它们只作参考,要用就在流程图「旧规则」一组里逐条确认。之前这件事第一次有你的话归进来时,会出一张卡片「这件事有 N 条台账之前的旧规则,没找到你说过它们的原话:……这些是你说的吗?」,附「都是」(全部改成生效)「逐条看」(打开流程图,每条有自己的按钮);2026-10-03 那张一直没人按。已经出过的卡片照样能按。卡片点名的旧规则一条都不再是出处未核实之后(在流程图上确认、标成不是要求,或者改要点时带掉;谁改的都一样),没按过的卡片就写「已在流程图上逐条处理」,不再有按钮,这时手机上旧页面再按「都是」也什么都不做;按过「都是」的卡片照旧写它按过什么。

Bot 在哪读到它:每一轮的局面里都有「用户要求」一段,列这件事适用的生效条目(设成不适用这件事的不列):先按适用范围由近到远(这一轮的任务、这件事、别的任务、会话、常设),再按你说过的次数、最近说的时间排;说过两次以上的全部列出,其余最多 20 行、2000 码点,超出的写「还有 N 条」。每行是「R-31|「前三镜背景严重跳跃」(转述:前三镜背景要连贯)|用户已说 7 次(跨 3 个规划)|适用:任务 01 Shot 01–03|挂检查:时长 108–132 秒(待用户确认)」:编号、你的原话、转述、说过几次和在几件事里说过(一次的不写)、适用到哪(继承的写明继承自哪件事)、同一个数上按你的话加的检查(生效或待确认)。待你确认的替代和投诉原话单独一段「待用户确认的取代或建议(还没生效,不要当要求执行)」,出处未核实的旧规则单独一段「旧规则(出处未核实,只作参考)」,各最多 10 行。

流程图上「要点」里有一块「你的要求」,列同一张单子:这件事自己的、按来源的规划分组的继承条目、待你确认的、旧规则(出处未核实)、不适用这件事的。每条有编号、你的原话、转述、出处(你说的、你的回答、你的批注、你在流程图写的、旧规则、整句记下的投诉原话;还在转录里的点一下跳回那句话)、说过几次、适用到哪,和它此刻能按的按钮:待确认的和旧规则「确认」「不是要求」,继承来的「不适用这件事」,设成不适用的「恢复」,这件事自己的「不再适用」(在流程图规则、验收里写的那几行不给这个按钮,删掉那一行就是)和「对这个会话都适用」。每条两行:原话和说过几次(两次以上是琥珀色徽标),下面一行是转述、出处、适用到哪和按钮;这件事自己的先列说得最多的 10 条,其余点「再显示 N 条」(选中一个任务时全列)。生效条目的按钮在鼠标指上那一条时才出现,触屏上一直在;待你确认的条目在目标下面的「要留意」里也有一句,点一下滚到它们那里。本机接口是 POST /v1/requirements/:id/action,远端白名单里也有;已经变了状态的条目再按回 409。

清空会话不动台账,删群时作用于那个会话的条目只是不再记着会话;抹掉原话时,站在它上面的条目清掉文字、改成不再适用(见原话)。

回避:让模型整份重写需求, 让 Bot 直接写台账, 把 Bot 的话记成你的要求, 模型说取代就删掉旧条目, 清空聊天时连需求一起删, 找不到出处的引文也收, 类别对不上就把你的改动丢掉, 你改掉的字悄悄留着不问

书记员(Scribe)

你的一句话归到一件事之后(到的时候,或之后才归上:桌面段为它开新事、work_on、你改归;每句只读一次),或者你回答了 Bot 的提问,在后台调一次书记员的模型(没选就是默认模型)、无工具的短调用,读这句话和这件事已有的要求,给需求台账提一份补丁:新增、再提一次、改动。不挡任何一轮,也不发言。补丁逐条核对,引文在你这句话里找不到的那一条丢掉,其余照收;没配模型或调用失败时什么都不记,只剩兜底。每次的原始答案都记在工作记录里。问进度的话不经过它;引擎级别到了叫停这一级后,只是叫停或继续的话也不经过它。它是引擎里能关的一步:视频引擎开着,通用和代码默认关着,关着时只剩兜底(ADR 0085)。细节见行为说明·书记员。

行为细节

书记员是引擎里能关的一步:视频引擎开着,通用和代码引擎默认关着;关着时只有你挑已交付成果毛病的那句照旧作为待确认条目留下(和书记员什么都没记下时的兜底一样)。

你的一句话归到一件事之后(它开的轮都开了、要判断的都判完了;到的时候没归上、之后才归上的——桌面段为它开新事、work_on 选定、你改归——在归上的那一刻),或者你回答了 Bot 的提问,应用在后台调一次书记员的模型(工具 → 分工里选的,没选就是默认端点的默认模型;选了的,思考档取 low):无工具,答案最多 800 token,60 秒。它读的是你这句话(回答时连同那个问题)、在哪个会话说的、这件事的目标和任务清单、这件事已有的生效条目(这件事的、它的任务的、它所在会话的和常设的,最多 60 条,每条带编号和类别),给台账提一份补丁:新增哪些、哪些是你再说一次、哪些被你改了。没有删除,也不交整份列表,没提到的条目原样留着。它不挡任何一轮:你的话照常叫醒 Bot、开轮,它在旁边记;每句只读一次(之前读过的,再归一次也不再读);一句一句按顺序来,退出或更新时还没记的就不记了。它从不读 Bot 的话。问进度的话由应用自己回答,不经过它;引擎级别到了叫停这一级后,只是叫停或继续的话也不经过它,在这一级之前它们照常整理,也照常送到它这里。

补丁逐条核对:每一条的引文都要在你这句话里找得到(两边去掉空白、标点和符号,全半角折叠后比),记下的是你原话里的那一段;新增和待确认的替代至少要有 4 个字(同样折叠后数;整句不到 4 个字就要整句),一个字、两个字的引文说明不了要求,条目就只剩转述了,只说一个时长、分辨率、画幅或帧率的引文例外(「90 秒」「4K」「16:9」,长句里的「片长 2 分钟」也照收);再提和改动只能指它看过、此刻仍生效的条目;新增的落到它点的那个任务(只点了一个时;这句话本来归在某个任务下、它没点也算),书记员读出以后每件事都这样的落到会话(见需求台账),其余落到这件事;同样的话已经是这里的一条生效条目,而且它管的不比新的窄,就算再提一次(你设成不适用这件事的也是,它随之又适用这件事):某个任务的条目只对同一个任务的新增算,对整件事或整个会话的新增另记一条,不然那句话只挂在一个任务上,下一件事什么也继承不到;一句话最多新增 8 条。改动一律只记成待确认的替代,旧条目照样生效:给旧条目的那一项换了新数的(「改成 3 分钟」对「约 2 分钟」),不看类别;给回旧条目同一个数(「还是约 2 分钟吧」)只算再提一次;其余的,类别和旧条目相同的照记;类别不同的,也记成待确认的替代,用书记员给的类别(2026-10-10 之前整条丢掉,连同新话一起:IG MV 那件事「改成基于英雄联盟地图 + 英雄模型 + 真人模型的形式来还原」就这样没记下,被它替换的「原创风格化角色」一直生效),除非同一份答案里这几个字已经给同类的旧条目提过替代——那时再指向别的类,算书记员指错了,不记;旧条目没有类别的(你在流程图上写的、导入的旧规则)看不出不同,照记。没通过的每一条都丢掉并在工作记录里写明原因,同一份补丁里的其他条照收。所以不管模型答什么,生效的条目一条也不会少。

没配默认模型、调用失败、答案截断或读不成补丁、说没有要求、或者一条都没落地时,这句话只走兜底捕获。每一次的原始答案都原样记进工作记录。花费记成「整理」这一类、用途是书记员,在花费视图里单列一行「书记员」(归「其他」),归这句话所在的会话,不归哪个 Bot。一句发出去又被你改过的话,改动的那几小句另存一条原话,书记员按先后读这句的每条原话、各读一次,所以只读改动的部分(ADR 0063)。

回避:书记员挡着开轮, 书记员删条目或交整份列表, 读 Bot 的话, 校验失败就整份作废, 用 Bot 的模型

读句(Line reading)

应用在照一句话办事之前,先用一次无工具的短调用读懂它(ADR 0055):你的话读是不是要 Bot 停下或继续、是不是只问进度、哪几句在对已交付的成果挑毛病,没有引用时另读一次它在说哪件事(ADR 0057,两次一起发出;这一项读不了不退回词表,交给 Bot 在桌面段选);Bot 的话读是不是说着「还在做 / 稍后给」、是不是声称测过、是不是只说没事可做或只有一句状态,问你的话是不是只在请你点头才接着做(这一项没有词表:读不了就照常问你)。叫停、继续和转回返工只按读句的读法执行,读不了时一样都不执行(ADR 0070);别的读出来的只是理解:退不退回、出不出卡,仍由原来的规则定,摘出的句子必须是原话里的字。每句只读一次,用的是工具 → 分工里「读句」选的模型,没选就跟默认模型,思考档用最轻的;没配模型、出错、超过 20 秒或读不懂时退回旧的固定词表,工作记录里注明。你的话要等读完才叫醒 Bot,叫停也等读完才照办(读成纯叫停的插到前面还在读的话之前),所以读句模型要选快的。花费单列为「读句」。细节见行为说明·读句。

行为细节

应用照一句话办事之前,先用一次无工具的短调用把它读懂(ADR 0055,reader.ts)。叫停、继续和转回返工只按读句的读法执行,读不了时一样都不执行(2026-10-09 起,ADR 0070);别的读出来的只是理解,退不退回、出不出卡,仍按各自原来的规则。

读你的话:读这句话、它回复的那句和之前三句,回答五件事——是不是要 Bot 现在停下或继续(停、继续、两样都有、都不是);是不是除了这个指令就没别的;是不是只在问进度;哪几个分句在对已交付的成果「现在这样」不满意(原样摘出);你说话的地方正等你表态的交付(有的话一并给它看,带编号)里,这句话放行了哪几份(2026-10-11 起,ADR 0084)。用在:

  • 控制句:只看读句,固定规则不再先读、不再照办(2026-10-09 起,ADR 0070)。只是叫停的(「停下」「先别搞了,收手吧」,说它还没停的「你没停」也是),按规则定的范围建叫停(@ 名、「你」「你们」「所有 Bot」「这件事」),回执上能撤销;读成继续的(单说「继续」,或「继续做第二集,……」这样带着别的话的)不由应用照办:先归属,再解除挡着它说给的 Bot 做这件事的叫停,然后像普通的话一样交给 Bot(见叫停);叫停旁边还有别的话、或两样都有的,只挂按钮、照常交给 Bot;读成不是控制的,按钮也不挂。问停没停、能不能停(「停了吗」「怎么还在跑」「能停么」)是给 Bot 的话。被你撤销后重新交给 Bot 的那句话不再读控制。
  • 只问进度:应用不再回答(进度行 2026-10-09 去掉了),这句照常交给 Bot,由它自己答;归属读成新的一件事时按当场做完算,Bot 为它查东西、跑命令都不开事(「怎么样了」曾被开成一件同名的事,自己跑了 79 段)。
  • 挑毛病:读出的分句是不是在挑已交付、审查中或已通过的成果的毛病,决定要不要直接转回返工(见审查);转哪几个分件,看这句话归在哪几个分件上(见下面的读归属),不从分句里按格式找镜号;书记员什么都没记时的兜底捕获也看它。词表读出的不转。
  • 放行:读出的编号对上它看到的交付才算,对不上的丢掉;同一份既挑毛病又放行的,按挑毛病(见审查「放行靠你的话」)。词表不读这一项:读不了就什么都不放行。

读归属(ADR 0057):你的话没有引用(卡片上选的、批注、引用回复、附件或写出的路径、绑定的工作)时,和上面那次一起发出另一次读:这句话、在哪说的、之前六句(谁说的、多久以前、各归在哪件事),以及它可能在说的事——会话的候选加上那几句所在的事,每件带名字、目标、阶段、开在哪、最后动静、任务(状态、谁在做、声明过的分件)、最近交出的文件、你最近对它说的一句。回答是其中哪几件(可带任务和分件,用它看到的编号)、一件新的活(要交给你一个东西,或要做很久、过后要跟进)、当场做完的事(问候、闲聊、提问、查询、改应用里的设置、一次性的小操作,回复本身就是结果),还是看不出是哪件。没有开着的事时也读,只在新的活和当场做完之间选。回答按它看到的编号核对,对不上的丢掉;读成哪几件就归过去(默认,可改),其余的都交给 Bot 在桌面段选。读成新的活的会记下来:桌面段第一次有副作用的调用就为它新开一件事;读成当场做完的也记下来:它的副作用不开事。这一项没有词表:读不了就交给桌面段,不按开头的字、话里的编号去猜。

读 Bot 的话:读这条消息,连同它这一段在回的话(叫醒它的那句,除非是它自己的,和它这一段读到的来信),回答:先判断这条是不是(大部分)在翻译、转述、改写、润色或总结它在回的话(restates),再摘它自己说「还在做 / 马上做 / 稍后给」的那一句(原样摘出;属于译文、转述的句子不算,只摘它在这些之外另外说的);是不是声称跑过、测过并通过;是不是只说这轮没事可做、不用回复;是不是只有一句应答、完成、在等或「我看看」;问用户的话是不是只在请用户点头才接着做他要的事(确认做到一半的东西、问能不能开始下一步;要用户给只有他有的东西、在几个方案里拿主意、说清做不下去的障碍都不算)。最后这一项没有词表顶替:没配模型、读不出时照常问你。用在:收尾自检的许诺和「测过」;结束契约看本段最后一句话决定要不要以 promised_later 退回;send_message 和纯文字收尾是不是「无事可做」(空的、太长、带问号、@ 了人、带路径或代码的先按形状排除,不读);end_turn(done, answer) 交的一段话是不是只有一句状态;end_turn(blocked) 的 needs_from_user 和 ask_user 的问句是不是只在请你点头(见工作提问卡)。

手艺类要求不另读:书记员提新条目时多标一项性质(工艺、观感选择、系列设定、其他),记在台账上,会话级默认和「升为常设」看它;没标的旧条目仍按词表。

核对:回答必须是 JSON,控制只能是那四个值之一;摘出的分句和句子必须是原话里的字(空格、标点、全半角不计),找不到的分句丢掉,一个都找不到就整句算一条;找不到的「还在做」退回词表找到的那句,再不行用整条消息的开头。读出的「还在做」那句(词表找到的也一样)在它回的话里一字不差地出现、而且至少 20 个字(同样不计空格、标点)时,是那句话自己的,不算 Bot 许诺:2026-10-08 你在私聊里给专业翻译官一段英文,它把原文放在译文上面,模型把原文里的「The community-site search is still running. Once it's back, I'll compare the two…」读成了它的许诺,这一轮被退回一次(它又空转了 3 分钟),结束后私聊里还多了一行叫你 @ 它。「结论随后」这种几个字的共同说法不算照搬。截断的、读不懂的都不算。

读不了:没配模型、调用出错、超过 20 秒(等并发名额的时间也算)、回答读不懂、守护进程在收尾时,按原来的固定词表读,工作记录里注明原因——词表读出的叫停、继续、挑毛病一样都不执行,这句照常交给 Bot(要立刻停,按输入框的停止按钮);读归属没有词表,这句话留给桌面段。词表不再为补漏扩词。

快慢和花费:你的话要等读完才叫醒 Bot,叫停也要等读完才照办,读的时候要被叫醒的 Bot 显示在想;读意思和读归属一起发出,等的是慢的那次。读句走自己的并发名额,不排在 Bot 长时间的流式输出后面;思考档用模型目录里最轻的一档;用的是工具 → 分工里「读句」选的模型,没选就跟默认模型。那里也能选 Claude Agent 的 Claude 模型(Claude Code 自己 /model 列出的那些,haiku 排在最前,最快):读句就在你本机的 Claude Code 上跑一次没有工具、只有一轮的调用,用你选的那个 Claude 账号(列出的账号多于一个时可选),花的是那个 Claude 套餐的额度,花费页记作「Claude Agent」、价格是估算;不占 Bot 的 Claude Agent 名额,自己最多同时两次。实测 haiku 读一句 3–5 秒,其中起 claude 约 1–2 秒,比 deepseek 一类慢。Claude Code 没装或那个账号没登录时,这一读记作 claude_unavailable,出错记作 claude_failed,都按词表读;Claude Code 自己说了出错原因的(比如「You've hit your session limit · resets 11:10pm」,套餐这一时段的额度用完了),流程里那一步的原始回答就是这句话。只有你能选 Claude 模型来读句:Bot 改读句模型只能改成端点的模型或跟默认;有读句在用的账号要先换掉才能从列表里移除。手机上和电脑上一样能选(经中继问本机的 Claude Code,ADR 0061 2026-10-10 补记)。每句只读一次:你的话按消息、Bot 的话按文本和它在回的话缓存(一段里用到它的地方带的都是同一份,共用一次读法)。每次读都记工作记录 reader.answer(读的是什么——你的话、Bot 的话、归属 filing——、模型、失败原因、读法、原始回答),花费记作 organize、用途 reader,花费页单列「读句」。

连发和改过的话:同一会话里连发的几句一句一句归属、送出:后一句等前一句读完、归好、送到(见轮次);读意思不等,一到达就读,读成纯叫停的插到前面。改过的话不再读句:读句和归属的缓存清掉,之后读到它的按新字读。

仍按规则的:叫停、继续对谁生效(「你」是谁、「所有 Bot」、「这件事」)——不执行任何东西;从你的话里读数(时长、分辨率、画幅、帧率);第一次打开新版本时导入旧规则;正在干活的 Bot 收到一句话时是当提问还是改动;端点的拒答文案。

回避:往词表里加词补漏, 让读句直接改状态, 摘出的句子不在原话里也照用, 读不了就当没说过(不退回词表), 按词表的读法叫停、继续或转回返工

整理跳(Organizer)

替会话记录规划要点和任务交接的后台整理,不是干活的 Bot,也不是用户要求的来源。新工作项路径不用它来判断消息归属,旧迁移兼容路径及静下来后的交接整理仍有保留。细节见行为说明·整理跳。

行为细节

版本边界:engine_level >= 2 不调用 organizeMessage,也不靠 resolveTurnTask 的继承/兜底新建或 ownOpenTicket 决定新段归属。消息的确定性信号或 Bot 的桌面选择替代了这次开轮前猜测;没有信号不悄悄 openTask。级别 0/1 仍走这些旧路径,相关函数、消息模式提示词和运行记录没有物理删除。静下来 30 秒后的 settle 仍只记交接,P4c/P4e 替代其推进和交付判断之前不宣称整理员全部退场;规则和验收仍由原话/台账与用户确认守住(ADR 0042)。

以下是仍保留的旧消息路径及 settle 细节;开轮前 message 模式仅适用于 0/1 级:

替会话整理规划和任务的一次无工具短调用,跑在工具 → 分工里「整理器」选的模型上,没选就跑在默认端点的默认模型上(选了的,思考档取 high)。两个时机:你的消息进会话之后、开轮之前,判这条消息是接着当前规划(continue)、换了一件事(new)、回到以前那件(resume),还是在说在场 Bot 正在别的会话推进的那件事(join:比如你在私聊里跟它说它在群里做的那件事;那件事开在别的会话时留在那里,这个会话的当前规划不变),更新要点和任务,并标出这条消息说的是哪个任务——消息盖上规划和任务后,它开的每一轮(点名、判断下场、分叉)都落在同一处;规划的活轮全部结束、静下来 30 秒之后再整理一次(你 Stop 掉的那一轮不引起这次整理:Stop 是要它停下,整理之后的叫回会让它接着做;同一个规划里前一轮结束后已经排着、还没开始的整理,和规划停下后等着到点再看一眼的那次,也随这次 Stop 取消,已经在跑的整理跑完也不再叫回谁,别的规划不受影响),把这几轮交出的东西归到任务上、更新任务状态、谁在做和进展。它看的是当前规划的要点和任务(每个任务附上落在它目录里、被引用过的文件)、上一版之后发生的事(谁说了什么、交出了什么、经过,以及这些轮真正跑过的命令和退出码)、这个会话之前推进过的规划、在场 Bot 正在别处推进的事(完整要点、任务、开在哪、谁在哪做、这个会话之前归到它的几句)和已有的类别标签;按类别找的同类先例已经删掉,它不再读。它还看这件事里你说过的每一句:上一版之后那些之外更早的话和你对提问的回答(同一句只算一次;太多时留最早几句和最近的,总长有上限),以及目标和任务说明是不是你在流程图里亲手写的(这些也算你的话,清理时不动)。每一行都标着是你说的、Bot 说的还是应用的提示,提问的回答算你的话。它不写验收和规则:提示词不要这两样,答案里写了也不落,新开的规划这两样是空的,已有的规划保持原样,也就是你在流程图上写的和之前的整理留下的;你的话里的要求由书记员记进需求台账(见书记员)。Bot 说的决定不写进目标和任务说明,分三种放:它给自己定的暂停、冻结、不再重试、只做一部分,写进流程与分工并写明是谁定的,因此停着的写进卡住、写明等什么能解开;要你给东西(授权、密钥、确认花钱)才能往下做的,写进卡住、写明要你做什么;做法上的约束(不覆盖原文件、交付放哪个目录)写进流程与分工。你说继续推进、不要停下来,Bot 自己定的暂停和冻结不管写在流程与分工、进展还是任务说明里都撤掉,因此停着的挪回待做,但等你给东西的那种要你给了才撤,做法上的约束也不撤。只在你发消息那一次、看得到你说过的全部话时,它才把被 Bot 收窄的目标按你的话放回去。进展里的待做只写还没做的事,已经交出、只等你看的不算。任务说明写要交出什么,不写进展。规划静下来之后那次整理只记交接:交出了什么、任务到了哪一步、谁在做、进展和做法、做完没有,以及它提的检查;目标、类别和已有任务的标题、说明原样不动(空的说明可以补上),也不把规划搁置,答案里改了应用也退回,每退回一项写一行日志。这不看上一版之后你说没说过话:你的话在说的那一刻已经归档,要求也交给了书记员,静下来的这一次没有新依据。这次整理的调用期间规划被改过(你的话被归进来,或你自己改了),这次什么都不落。Bot 说「已完成」「测试通过」不算依据:标待验收要有这个任务交出的文件,标已完成还要有跑过的记录。几个人各做一块、合起来才能用时,另开一个「联调并给出启动方式」的任务。它判规划做完时还有待做或进行中的任务,规划就不算做完:这次的其它改动照收,规划仍是进行中(你在流程图里手动标完不受这个限制)。失败即不改:没配默认模型、端点拒绝、答得不成形、库拒绝这次改动,规划照旧,轮照开。判成回到以前那件或在说别处那件事,而读到答案时那件事已经不在可选的里面(比如它在别处的那一轮在这次调用期间结束了),也什么都不落,这条消息照原样留着:答案是照那件事写的,落到当前规划上会盖掉当前规划的要点,会话没有当前规划时照着它另开一个,就是一份没人要的副本。点的那件就是这个会话的当前规划时例外:那只是换了个说法的 continue,照 continue 落下。整理的这几秒里没有轮,但这条消息要叫醒的 Bot(私聊那一位;群里点到的,没点名就是在场的每一位)已经在它下面显示思考中,列表、顶栏里也是;整理完各自交给自己的轮或判断,中间不断档。花费单列一类「整理」,归决策路由,不归任何 Bot。

交接结果(2026-10-10):整理跳看每个任务的阶段(已交付、审查中、返工、已通过、作废),和它最近一次交付的结局——谁定的(你、审查者还是应用)、你退回时的原话、是不是正等你放行——还看上一版之后的每次放行、退回,以及你一句话把任务打回返工(带上那句话)。你的退回比 Bot 的话和检查都算数:返工的、最近一次被你退回的任务,进展里不写通过、合格或「对照样片通过」,你要改的写进待做;照样片检查过了只说明和样片对得上,不等于你放行;之后又交出来、正等你看的,也不写成通过。它读的经过里,一轮没说话的写「这一轮没说话」,只交了文件的写「只交出 N 个文件」,不再把叫醒它的那句话当成它说的。此前它只看任务状态,你在卡片上的退回只记在工作记录和一条只给 Bot 看的提示里,它都看不到:一件事的进展四次把你刚退回的样镜写成「对照样片通过」。流程图上 Bot 卡片的文字也取这一轮最后一段有字的话:一段回复常以只带文件的一段收尾,卡片以前取了那一段,成了空白。流程图上也画出你的决定:你对 Bot 提问的回答(写着问的是什么)、你在卡片上按的放行和退回(退回带你的原话;按了放行但检查没过的,写着结果),以及你一句话把任务打回返工,都是一张「你」的卡,挂在它回应的那一轮下面,标着「回答」「放行」「退回」「转回返工」;「只看要紧的」也留着它们。此前流程图只画叫醒了一轮的那几句话,IG MV 那件事的 4 次回答和 14 次放行、退回都不在图上。

回避:所有消息都要先等整理, 把保留的兼容代码说成已删除, 整理跳改写用户要求, 凭 Bot 自称判验收通过, 把你退回的交付写成通过, 把照样片检查过了当成你放行

整理跳的运行记录(Organizer run log)

整理跳真调了模型的每一次,落地与否都记一行:读到的原始答案、解出的决定、能选的候选(能 resume/join 的规划、能改的验收检查,调用发起时读到的那份)和答案实际选中的那些(模型自己写的,校验之前——校验时发现点的目标已经不够格,决定会退回 continue,这里仍然留着它本来点的是谁;resume/join 的目标只在决定写的正是 resume/join 时才算点了。写下的决定没照样生效时——目标不够格、没给目标、决定不是那四种之一、settle 写了 continue 以外的——都附一句为什么)、校验那一刻重新读到的候选集合(跟前面那份候选对比,能看出候选集合是不是在调用途中变了)、有没有落地、没落地的原因、一次干净落地里仍被按住没改的那些(比如 settle 把已搁置的规划说成进行中、settle 只记交接时按住的字段、任务还开着不让规划标完成)、这次的花费在花费账本里的哪一行。GET /v1/debug/organizer-runs?task_id= 按规划查,只在本机,不进远端白名单,手机读不到;Bot 能经本机记录查到它(ADR 0065);每个会话只留最新一批,清空历史或删群连这份记录一起清(不像花费账本,那是故意留着的)。窗口自己拉起源码守护进程时,它的 stderr 才改写进数据目录下的 daemon-dev.stderr.log(按大小滚动一份旧的,只在每次拉起时检查一次)——pnpm dev 平时那个守护进程是 pnpm 自己的子进程,不受影响;原来窗口没控制台时这份输出等于直接扔进 /dev/null,tauri dev 下则本来就看得见、只是挪进了文件。

回避:当成给你看的界面, 进主转录, 进远端白名单, 装好的版本也写这份 stderr 文件(只有源码跑的开发态守护进程), pnpm dev 的守护进程也写这份 stderr 文件(它不经过这段代码)

回看(Check-back)

Bot 给自己约的一次性定时提醒,记着何时回来、核对什么及原来的工作归属;不是等另一个 Bot 交回的事件等待。不同工作项的提醒不应互相替换,叫停能挂起它,清空或删除则可使它作废;6 级起不能拿它等你回话——任务在等你(你的回答、你一句话放行、天花板卡片)时约不上,在等你时到点的作废、不叫醒,你一开口自然会叫醒它。细节见行为说明·回看。

回避:委派结果靠定时猜, 不同工作项互相替换提醒, 定时回看就是监督器, 定时回看等你回话

0–2 级旧兼容行为:以下按会话替换及旧静默叫回的长说明保留为迁移参考,不是 3 级的等待规则;3 级按工作项/键去重,见上面的行为说明。
Bot 给自己约的一次性叫醒:多少分钟后(一分钟到七天)、回看时核对什么、没动静怎么办。到点后守护进程在同一个会话插一条「回看:<备注>」的系统行叫醒这个 Bot。这一行是它给自己的提醒,只有被叫醒的那一轮读得到、流程图画出它叫醒自己;会话里不显示,别的 Bot、整理跳、搜索和未读都看不到,就像人不会把自己的备忘念给大家听。那一轮沿用约它那一轮的规划和任务,只在里面干活,不改它的状态,也不把它换成会话的当前规划;局面里有这件事的要点、任务清单、已交出的文件和经过;群里、没有你的私聊里,它已有活轮就听进那一轮;你在的私聊里,它已有一轮在做这件事就听进那一轮,免得两轮同时把一件事做两遍、写同一批文件,否则另开一轮,和你再发一句一样。用在交接出去之后、或在等一个不由自己掌控的结果时,让交出去的活有人回头核对,而不是靠对方记得点名回来。一个 Bot 在一个会话里同时只有一次待回看,再约就是替换;局面块会标出自己待回看的那一次。约它的那一轮被 Stop(引擎级别到了叫停这一级后改为挂起,你在这件事上再说话时恢复)、会话清空或删除、Bot 删除都作废;被叫停覆盖只是挂起,解除后恢复;Bot 离开了群或被归档,到点只消掉不叫醒。守护进程睡过去或重启后,到期未响的补响一次。不进日程图,不是事件触发。应用也会替 Bot 约一次:它开的 Bot↔Bot 私聊静下来(最后一轮结束约 10 秒后,里面没有活轮也没有待回看),就在开这条私聊的那个会话立刻叫醒它,回看行里写着和谁谈的、最后一句是谁说的什么(对方一句没回就说没回),让它先在那里交代结果;这同样替换它在那里原来的待回看。私聊里自上次叫回以来没有新的话就不再叫;从这种回看开出去的私聊,对方一句没回也不再叫回,免得两个 Bot 对着沉默来回空转。私聊里的轮被 Stop 或因重启中断时不叫回,那是你要接手的事。规划也一样:一个规划静下来(整理完、没有活轮、里面也没有待回看;你 Stop 掉的轮不算让它静下来),却还有待做或进行中的任务,应用就替第一个没收口的任务的那个 Bot(没人就替最后在这个规划里说话的 Bot)约一次立刻响的回看,列出还没收口的任务、点出它那一个,这一轮落在它那个任务的目录里。群里的规划没搁置的任务不止一个、没有待做或进行中的、有交出或做完的(待验收或已完成),要点的进展里却还记着待做或卡住的,也算停下:卡住的也算,Bot 自己定的冻结就记在那里,别人不会替它解开。等这个规划十分钟没有动静、会话里你也十分钟没说话,应用替最后在这个规划里说话的 Bot 约一次(它在这个会话已有别的规划的待回看就先不约,等那次到点、再静满十分钟后再看),先说接下来有用的是什么——待验收的照验收核对、附上跑过的命令和结果,不替别人宣布通过,自己交的也不自己判;还没做的点名交给接得了的 Bot;卡住的,局面里记着谁定的暂停、冻结;要你拿主意或只有你给得了的直接问你——再列出待验收的任务,这一轮落在规划目录;待做和卡住的是哪些,局面的进展里有,不重抄。私聊里、没搁置的任务只有一个、或进展里没有待做也没有卡住的,不叫:那多半是交了东西在等你看。叫回开出的那一轮只是把这个 Bot 在这件事里已经说过的话再说一遍(去掉格式后相同,或只改了少量英文冠词和「run longer / be longer」这类措辞,又不带新文件;数字、否定、代码、链接和路径保留比较),什么也不发就结束。叫回之后没有任务变成待验收或已完成(只改任务说明不算),也没有验收检查头一回通过,就不再叫 Bot,只给你一条通知「这件事停下了……」,会话里不发这条回顾,由你决定叫谁;你没在这个规划里说话、也没回答它的提问时,一个规划叫回的次数不超过它的任务数加验收检查数,也不超过五次,到了也这样收住。只在有你的会话里这样做。群里被叫回的 Bot 已有活轮时,回看和点名一样听进那一轮。

行为细节

回看是 Bot 给自己的定时提醒,不是委派的事件等待。现有 check_back(after_minutes,note) 仍是一分钟到七天;3 级没有借本次改名启用设计里的 wait_for(minutes>=5) 或外部作业轮询。到期给被叫醒的 Bot 一条私有触发,挂在原工作规划/任务,不由提醒本身改规划阶段,叫停挂起、用户解除后才允许响。

3 级范围变化:timer 替换/恢复按精确工作项和去重键,不再「一个 Bot 一个会话只能留一次」,并且不覆盖 delegation_wait。0–2 级仍按旧会话范围去重;各级别都不按 due 扫描触发委派等待。0–3 级旧群/私聊静默后的 plan_nudge/report_back 仍在;4 级起它们不再运行,之前订下、还没响的在到点时作废,由监督器按持球者叫醒。排队派发时 Bot 自己约的回看和日程排在最后(优先级 4,你的话 1、委派结果 2、监督器叫醒和委派请求 3)。

回避:轮询, 每几分钟一次的自我叫醒, 进日程图, 事件触发, 中央调度替 Bot 派活, 旧级别同一会话重复叠回看(3 级不同工作项不在此限制内), 规划停下了却一遍遍叫同一个 Bot

上面应用替 Bot 约的两种(私聊静下来的叫回、规划叫回)只在 0–3 级;4 级起由监督器接替,之前订下还没响的在到点时作废。

监督器(Supervisor)

引擎 4 级起,守护进程每 15 秒一拍检查没收口的工作:等待的对象不在了的、被中断或失败了的、没人推的任务,按库里的记录叫醒持球者或从断的地方接着做,有次数上限;用完或不能自己做(结果不明的外部调用、你按了「先放着」)就在你在场的会话里留一行、发一条通知;它会自己接着做的,那一轮失败或被重启打断都不另发通知、不出卡片。它不调模型、不靠进程里的计时器,重启不丢期限;重启后按原因(正常停下、意外退出、开发版重启)决定续跑。细节见行为说明·监督器。

行为细节

4 级起(ADR 0045),调度器每 15 秒一拍,在到期回看之前跑一次监督器,一次写入里做三件事;3 级及以下什么都不做。每次叫回或续跑记一条已触发的 check_backs(kind = supervisor,wait_spec 写原因、第几次、进展周期或重启),修复、重启和通知记工作记录 supervisor.*;时间都按库里的记录算,重启不丢期限、不重复叫醒。委派的回复和取消、你对提问卡的回答、排进收件的话照旧在各自那次写入里排队并立即派发,不等这一拍。

  • I6 核对:工作项是 waiting,等的对象却不在了(委派被取消、对方工作项已关闭、回看没了),转「需要处理」(supervisor.wait_invalid),同一拍里给它排一条只给 Bot 看的说明「这一等不再成立」。被叫停覆盖的等待算有效等待。
  • 排着收件的空闲工作:工作项空闲、却有排着等叫醒它的收件时,转回排队(supervisor.requeued),派发器就会发它。只有排队的工作会被派发,而排着的收件又让监督器以为它有事可做、不去叫回,两边会一直互相等。一段执行结束时也一样:这一段跑着的时候又排进来的收件(它没读到的)是这件工作的下一步,工作项留在排队,不转空闲。原来 2026-10-04 真模型跑,文案正审海报时负责人交了新一版,新的审查请求排在同一个工作项上,文案那一段随后以 nothing_new 结束、把工作项设成空闲,新一版就一直没人审。一段执行换到别的工作项上(work_on 换到一张任务、写文件时绑到一张任务)时,原来那个工作项上还排着收件的,不关掉、留成空闲,照上面转回排队;关掉的工作项上的收件谁都不会再发,监督器也不再把它算成排着的收件。原来 2026-10-09 IG MV 的三条视频作业结果排在视频导演这件事整体的工作项上,8 秒后它写文件绑到一张任务、那个工作项被关掉,三条结果就一直排着没人读;监督器又把它们当成导演在这件事上排着的收件,此后再没叫它去做这件事的任何一张任务——2026-10-13 它一段交一张、交完就停,每一张都要你开口才接着做。
  • 需要处理的工作:执行段被中断(重启、排空)、失败(同模型重试一次仍失败、卡住超时、运行时出错)、结束契约两次退回用尽,或等待失效,工作项转 needs_attention(中断和失败在写下终态的同一次写入里;运行中却没有活段、最后一段是中断或失败的,在这一拍补上;运行中没有活段、最后一段是别的结束——Stop 之后你用按钮解除了叫停、契约没看到的收尾——而且没被叫停覆盖的,这一拍转 idle,下面的叫回就能找到它)。监督器接着做:有那一段自己的「中断」或失败行就照它的「继续」做——同一个会话、同样受叫停和名额管,那一行记为已接着做,对应通知解决;没有就排一条只给 Bot 看的说明,写着上一段怎么了、最后一步、这是第几次。每个工作项每小时最多 3 次,之后在你在场的会话里留一行、发一条通知,不再自己续。它会接着做的,那一轮失败时不另发「本轮未完成」通知(2026-10-04 起):重试用完、或最后一步结果不明时,它自己这一行和通知才告诉你;它不接的失败(没挂在它照看的事上的轮、3 级及以下)照旧发。引擎没能照那一行接着做(会话已归档、这件事已经在别处做着)时,这次续跑记 supervisor.pickup_refused 并作废,不算一次尝试、不占每小时预算,下一拍改为排一条说明叫醒,不再从那一行续;同一会话里这个 Bot 在做另一件事不再算拒绝(见工作项)。叫停覆盖、任务已收口、球在另一个委派接收方手里时不续;被重启打断的先按重启原因(见中断)。这件工作上排着收件不是不续的理由(需要处理的工作不会被派发,原来 2026-10-04 真模型跑,审查请求排在一个刚失败的工作项上,两边就一直互相等);接着做的那一段会一起读到这些收件。
  • 没人推的任务:任务没收口、持球者是它的 owner、规划负责人或未回复委派的接收方,而那个 Bot 在这件事上没有活段、没有有效等待、没有排着的收件,在这件事的哪张任务上都没有被中断或失败、还没接上的工作(一个 Bot 在一件事上同时只有一个活段,被切断的那份先接:重启的通知写着不自己接着做、等你按「继续」或你按了「先放着」时,原来两分钟后它会被叫去做同一件事的下一张,2026-10-04 它就这样在下一张任务名下重画了被切断那张的画面),规划 active、没休眠、不是日程的,依赖的任务都已完成——静过门槛就叫醒它,说明里只写事实(哪张任务、静了多久、它是 owner/负责人/欠哪项请求的回复)和结束契约的选择。门槛默认 2 分钟,从这件事最后的动静(归到它的话、它的执行段活动、工作记录)算;在你在场的会话里,这件事的最后一条是 Bot 说的、晚于你在这件事里的最后一句时为 10 分钟,从这件事最后的动静和你在那个会话的最后一句两者中较晚的算——不判断是不是问句。每个进展周期最多叫 2 次,之后就停下不再叫:只记在工作记录里(supervisor.notice,每个周期一次),不贴行、不发通知,你对它说话就接着做(2026-11-11 起,ADR 0109;之前在你在场的会话里留一行「这件事停下了」并发一条通知,一件事开着几张任务时一张一条)。它最近结束的一轮是没找到 Agent、没登录或用量用完的失败时,在它有一轮以别的方式结束之前不叫回它,也不续跑它的工作:这几种失败只有你能解决,叫了也是一开工就同样失败(2026-11-10 视频导演用量用完后,20 分钟里被叫回四个场次各两次,私聊里连着十条同样的失败)。
  • 进展只认工作记录:任务阶段变化(看板、整理和观察到的工作都记 ticket.stage_changed)、检查第一次通过(check.first_passed,模型判的衔接检查要连续两次通过才算)、任务目录下内容哈希新的产物(执行段结束时对写过的文件流式算 SHA-256,记 artifact.changed;保留目录和单个超过 2 GB 的不算)、交付与审查(P4e 写入后)。改说明、updated_at 变了、说了话都不算。
  • 从打开那一刻起:库升到 4 级时工作记录记一条 engine.level_raised。之前就已经静下来的任务、之前就在等待或需要处理的工作,不会在第一拍里被一下子全叫醒或续跑(升级时开着几十件旧规划也一样);它们里一有新动静(你的话、看板上改任务、新的执行段),就归监督器管。被这次升级时的重启打断的活不算「之前」,按重启原因续跑。
  • 它的行:续跑用完(retry_budget)和最后一步结果不明(unknown_effect)各留一行应用的系统行,不进 Bot 的上下文,control 是 {kind: "supervisor", code, task_id, ticket_id, work_item_id, offer: []},不带按钮;附一条通知(failure,标题「停下了」)。接着做的办法写在行里:@ 它、点那一段的「继续」,或在看板上改任务。叫回两次没进展(stalled)从 2026-11-11 起不留行(见上);之前留下的旧行照样显示。
  • 副作用记录(tool_executions):write_file、delete_file、shell 和非只读的 MCP 调用动手前记开始(同一调用只开始一次,重复的不再执行、回 repeated_effect),结束记成功、被拒、失败或不明;中止时、MCP 调用发出后报错、超时、执行段结束时还没结束的都记不明。监督器把 shell 和 MCP 的不明当作「结果不明的外部调用」:那一段不自己续,留一行告诉你(重启的通知已经说了的不再说)。更早的段没有记录、只有执行记录里的 shell/MCP 运行,续跑中断的段时同样按不明处理。执行记录带着调用编号、这个调用又有自己的副作用记录的,按那条记录算,不按时间去数;这一轮记着副作用、某条带编号的运行却没有记录的,是用不着记的调用(只读的 MCP 查询、还没跑就被拒的命令),不算不明:本机 Agent(Claude Agent、Codex 等)先写执行记录、隔一两毫秒才记结束,按时间数时它跑过的每条 shell 都成了不明,2026-10-12 之前它们被打断或失败的段从来不自己续。
  • 交付(5 级起):每一拍(你的叫停之外、规划没休眠时)还处理检查过了、没有审查者、停了超过 15 秒的交付,按此刻的检查结果:这时有审查者了就交给它审(包括整理跳读成做完的那种);有门禁跑完了没过就退回生产者(排一条说明叫醒它),还没跑完就等、应用去跑它;整理跳的读法和一段话这两种交付永远不会因为检查过了就自动放行,等你一句话才动(2026-10-11 之前是一张卡片问你放行还是退回,你按了才动);文件的交付(显式或隐式)要看它身上有没有一条你写的或确认过的检查:有、且门禁都通过了,才按检查放行(整理跳写的检查没过照样退回,过了却不算撑着——它可能只查文件在不在)(submission.approved,by: no_reviewer);一条门禁都没有的,和答案、整理跳的读法一样落到卡片,卡片点开看交的文件本身。必查条目(你说过两次以上的、关于画面的)没有你确认过的、通过的检查撑着的,也要你看:列在同一张放行 / 退回卡上,带着应用量到的结果,放行就算它们做到了,球在你——一份交付只问你这一张(2026-10-07 起;之前这些要求先另出一张卡,等它时每读到一条新的再出一张,最后才是放行卡)。日程每次跑出来的交付不落到卡片:门禁都过就放行(by: routine,见交付)。一次做完的文件交付也不落到卡片(2026-10-06):这件事只有一张没作废的任务、从没有一张放行或必查要求卡片问过你,交它的这一段又是这件事开出来(或上次放行)以来唯一的一段,就直接放行(by: one_go),必查条目没东西撑着也一样(2026-10-07 起);它交上来之后才开始的段(比如你等它时说的下一句)不算。几张任务、做了几段、到过你卡片上的事照旧问你。交付等你的时候(卡贴没贴出都一样),你又对这件事说了话、做它的 Bot 正为这句话干活(为它开的或听到它的那一段还在跑、问你的还没答、在等自己的生成任务、这句话还排着),这份交付就先不问你:卡不贴,已经贴出的收起,写「你又说了这件事,等X按你说的做完再问你。」;它交了新的一版,旧的被取代,问你的是新的;做完没交新的,这一版再贴一张卡,第一句写「X这次没交新的一版。」(2026-10-07 起;只读的段、别的 Bot 在做、关于别张任务的话、你已经按了放行在等检查的都不算);听到这句话的段在这件事的哪张任务上都算,2026-10-08 起)。要你看的交付,卡片要等做它的 Bot 在这件事上停下来才贴:它在这件事上没有在跑的段(等你回答或批准的、只读的不算)、没有在等的自己的生成作业、没有刚排上要叫醒它的东西,最后一段也结束超过一拍;大活的样片只看样片那张任务本身。这期间交了新的一版,旧的就被取代、从没出过卡;推迟过的交付记一次 submission.card_deferred(2026-10-08 起,stillAtWork)。等你的卡片每一拍按此刻的事实再看:只因为必查条目才等你的那张(其余有你确认过的检查撑着),那几条不再适用了、或者确认的检查过了,就放行、不用重交,卡片写「已放行。」;别的放行/退回卡片只等你按,不会被下一拍自己翻过去——你按「放行」时如果还有门禁没跑完,应用先跑它、跑完再判:等的时候卡片写着「等检查跑完再放行…」,只留「退回」,再按一次放行不算;等的时候又加了门禁,下一拍把它也跑了再判;跑完过了写「已放行」,没过就显示退回和没过的原因。被更新的交付取代、或因为你在看板上改了状态而作废的卡片,按钮收起,写明是哪一种。审查中的任务没人推时,叫醒的是审查者;审查者判了通过也不一定直接放行——答案和整理跳的读法谁都没真正做过;文件的交付没有你写的或确认过的检查撑着、而审查者和生产者同一个模型(有一方模型没记下也按同模型算)、或者没在适用于这份交付的要求上给出依据(编一个要求编号不算),就只是一个 Bot 认了另一个 Bot 的话。这几种情况下审查者的「通过」只是把交付转去等你,卡片上带着它的结论(名字、模型、是否和生产者同模型、逐条说明);它的「打回」仍照旧送回返工。整理跳读到某张任务做完的那一拍,它的生产者还在那张任务上跑着一段、或者工作项不是空闲,这次读法被跳过——不抢在真正的交付前头,它下次再读到做完才会重试。2026-10-11 起(ADR 0084):上面说落到卡片、问你、贴卡的,都不再贴卡片、不发通知,这一拍记成等你的话(awaiting,工作记录 submission.awaiting_word,一份交付一次),审查者的结论和没东西撑着的条目跟着它存着;卡片什么时候贴、收起、再贴的那几条(stillAtWork、submission.card_deferred、「这次没交新的一版」)随之去掉。你的话放行它,和在卡片上按放行一样:门禁还没跑完先跑、没过就退回;只因为必查条目才等你的,那几条不再适用或确认的检查过了,下一拍照旧自己放行。
  • 不做的:没绑任何任务的规划级检查失败时不叫人(0–3 级的规划叫回会;绑在任务上的会让球回到 owner);外部作业的轮询(P4d),每一拍的结果里列为 unsupported(4 级还列审查者指派,5 级起由交付接上);看板上还不显示「球在:…」。

回避:定时轮询每个 Bot, 进程里的叫回计时器, 看到说明改了就算有进展, 绕过叫停续跑, 重启后把结果不明的外部调用再做一遍

持球者(Ball holder)

一张没收口的任务此刻等谁动:未回复委派的接收方;待你回答的提问、卡住或被叫停(包括它依赖的任务被叫停)、待你验收时是你;5 级起放行等你的话时是你,审查中是审查者,交出去、没有审查者时是应用(下一拍再看);否则是任务的 owner,再否则是规划负责人,都没有就是没人认领(你)。监督器只叫醒持球者。细节见行为说明·持球者。

行为细节

对每张没收口的任务按顺序推导,第一条成立的就是:

  1. 有未关闭的委派,接收方还能接活:球在接收方的工作项。要交付物的委派,接收方交上来的东西在检查或审查中(包括等你放行)时不算:球照第 5 条在审查者或你手里,放行就回复了这项委派。以前它还算接收方欠着的,等你放行的那几分钟里监督器每 3 分钟叫一次接收方「回复」这项委派,它每次都把同一份活再交一遍(2026-10-04 的走查,12 分钟交了 5 次)。
  2. 有待你回答的提问:活轮的提问卡,或 blocked 工作项留下的工作提问卡。
  3. 有 blocked 的工作项:球在你。
  4. 叫停覆盖它,或覆盖它依赖的任务:球在你(已暂停)。被扣住的工作不算停滞,也不改派。
  5. 待验收:球在你;绑在这张任务上的检查(ticket_id 是它,或路径/目录在它的文件夹下)上次跑失败的除外,那就回到 owner。5 级起换成按交付看:放行等你的话时(2026-10-11 之前是等你按卡片),球在你;审查中,球在审查者;交出去、没有审查者,球在应用(下一拍再看);返工回到 owner;从 4 级升上来、停在待验收却没有交付记录的,仍是你。
  6. 否则任务的 owner,再否则规划负责人,都没有就是「没人认领」(你)。外部作业(交给轮询器)在 P4d。

Owner 是 tickets.owner_bot_id,和 worker 一起写;升级时一次性从仍能接活的 worker 导入,没有就取这张任务上执行段最多、仍能接活的 Bot。规划负责人读出来、不写回:存了 lead_bot_id 用它,否则开出这件事的 Bot、你在这件事的群里确认的负责人(主会话的先,其余按你最近在哪说的)、规划里执行段最多的 Bot,都要还能接活、没归档。写回会改变群里没点名的话交给谁,所以不写。能接活是没归档、没删除,并且在这件事的某个会话里:规划的主会话,或你说过这件事的会话。一件事常在私聊里开出、后来到群里接着做(2026-10-03 的《一拳超人》开在你和审片员的私聊,审片员归档后在群里做):只看主会话时,群里做它的 Bot 都不算能接活,任务成了没人认领。监督器叫醒没有工作项的持球者,放在它上次做这件事的会话里(要有你在场,Bot 之间的私聊不算);没做过的,放在它在场的这件事的会话里(你最近说过它的地方优先)。原来只看你最近在哪说过:你在群里问了一句正在私聊里做的这件事,下一张任务就被叫到群里去做(2026-10-14);它的提醒发到你最近说这件事的地方,从不发到你归档或删掉的 Bot 的私聊里。

依赖(tickets.depends_on)只来自你:PATCH /v1/tickets/:id {depends_on: [...]}(本机和远端),只能是同一规划的其他任务、不能是自己、不能成环,不能新加已搁置的任务,最多 39 个;依赖没全部完成(已搁置的不算在等)时不叫醒,依赖被叫停时球在你。不管改的是谁做还是谁审,任务的做的人都不能是它的审查者。流程图的任务列表里,点中一张任务,它下面的「依赖」一栏打开勾选框来改;每张任务标题下那一行写着它要等哪些先完成。

流程图上的持球:4 级起,进行中、没休眠的规划里,每张没收口的任务下面写着球在谁那里——在某个 Bot 手里、等负责人派人、在做委派的部分、等谁审、应用下一拍放行、在等渲染结果,或者在等你(回答、卡住、叫停、验收或审批、能力天花板、没人在做);4 级时待验收的写「等你验收(在板上标完成)」,5 级起等你的话时写「等你一句话:说可以就通过,挑毛病就返工」(2026-10-11 之前有审批卡片才写「等你审批」)。搁置、完成或休眠的规划里谁也不在等,不写。依赖不能选搁置的任务(永远等不到),也不能选会成环的。

回避:叫最后说话的 Bot, 按第一个未完成任务的 worker 挑人, 被叫停时让负责人改派

收尾自检(Closing check)

一轮要把交付物交给你之前的一次核对,不让模型猜缺了什么(ADR 0037):Bot 准备发出的消息引用了工作区文件,或说自己「正在做」「结论随后」(这句话是不是在许诺、是不是声称测过,由读句读),而会话里有你、这一轮属于一件事时,守护进程在发出前按三条确定的规则看一遍:这件事有没有验收检查没过、说了「随后」有没有约回看或点名交给谁、说了「测过」这一轮有没有真跑过命令。有就退回一次,一轮只核一次,是带依据的提醒,不是闸门;说了还在做、却在什么都不欠的时候直接结束的,结束契约再退回一次,还这样结束就在会话里告诉你它停了(见行为说明·委派)。细节见行为说明·收尾自检。

行为细节

P4c 检查点:下面旧的正则/执行记录自检仍被调用,3 级新增结束义务契约不等于已经删掉「随后」或交付前检查;claimsVerification 的保留和协作私聊覆盖需在最终接替时核对。本轮不声称 Bot↔Bot 私聊已受到同一整套收尾验证,也不把这个提醒算真正 implicit submission。当前结束事实与缺口见委派。

一轮要把交付物交给你之前的一次核对。时机不变:Bot 准备发出的消息引用了工作区文件,或者说自己「正在做」「结论随后」这类还没做完的事(「正在编写」「我这边着手整理……弄好发群里」「我将按照……」这类宣布开工的话也算,场景里的「正在」——「埼玉正在超市买菜」——不算;一条消息是不是在许诺、是不是声称跑过,由读句读,读不了时按旧词表),目标会话里有你,这一轮属于一件事。从 2026-09-29 起(ADR 0037)它不再让模型猜缺了什么,而是看三条确定的规则,任何一条不满足就把一段应用提示退回给 Bot:一、这件事有验收检查(ADR 0036)没过——文件类检查当场重新判一次,这一轮刚改好的文件不会因为旧结果被退回,按你的话加的检查当场用 ffprobe 再量一次,你还没确认或还没对上文件的不看;命令类检查看最近一次运行,这一轮已经把同一条命令跑成功的不算;最多列三条,提醒改交付物、不改检查,做不到就在收尾里说明原因;只对真的交付(引用了文件)的回复看这一条。二、说了稍后还有下文,却既没有在这里约回看、也没有点名交给谁——这一轮一结束就没人会接着做,要么现在做完,要么约一次回看,要么点名交出去。三、说已经跑过、测过、验证过,而这一轮一条命令都没跑(写明「未验证」的不算)。走 send_message 的,那次调用不执行,结果是这段提示;直接回复的,提示作为一行进回路。一轮只核一次,第二次不再拦;退回不算工具错误,复盘不把它当失败;核对本身不调模型,读这条消息的那一次记在「读句」的花费里。发到没有你的 Bot↔Bot 私聊不核,没引用文件、也没说还在做的回复不核。原来用默认模型拿要点逐条对照交付物的那一步删掉了:黄金路径消融里关掉它不掉完成率、省下约四分之一的花费和时间,机器能判的验收交给验收检查去跑。

回避:每跳都核, 拦住不让发, 把退回算成工具错误, 用 Bot 自己的模型核自己, 让模型改写收尾, 把自己写的报告当执行证据

验收检查(Acceptance check)

挂在规划某一条验收上、由守护进程自己在这台 Mac 上跑的检查:一个文件在不在、文件里有没有某段文字、能不能匹配某个正则、一条命令的退出码和输出,或几个 Bot 各做的几部分合起来是否衔接一致(报告的章节、分镜或海报、幻灯片、视频的镜头:应用取出每条接缝两边的内容,交给模型按规划的规则对照)。你在流程图上加、改、删、跑;整理跳只能加改它自己的,命令只能是这件事里真跑成功过的、或你原话写过的;应用还会按你说的数自己提议,你确认了才算数(见按你的话加的检查);Bot 不能写检查。有检查没过、或定义后还没跑过时,整理跳不能把规划标成做完,规划停下时应用带着没过的检查叫回一次;你手动收口不受限。细节见行为说明·验收检查。

行为细节

规划的要点里,验收是一句句你能检查的结果;验收检查是把其中能机器判定的那几条交给守护进程自己跑,不靠 Bot 自称、也不靠模型读 Bot 的收尾。四种:文件存在(且不是空的)、文件包含某段文字(可以反过来要求不包含)、文件匹配某个正则(同样可以反过来)、一条命令(期望的退出码,默认 0,可选期望的输出,比较前去掉行尾空白和末尾空行)。文件路径和命令没写目录时都相对工作区根,和文件树看到的一样;工作区外的路径和越界的命令写不进来,跑的时候再判一次,判到区外就记「越界」、不跑,从不替你批准。命令在自己的进程组里用 /bin/sh 跑,结束或超时(默认 120 秒,最长 600 秒)时整组杀掉,环境只带终端那份白名单(不带 SSH_AUTH_SOCK,也不带守护进程自己的变量)。每次运行记下结果(通过、没过、越界、出错)、一行说明(按应用的语言写)和输出的末尾一段;一条检查最多留最近 5 次。什么时候跑:规划静下来时先跑过期的(定义后还没跑过,或者之后这件事又有轮动过),整理跳整理完再跑它刚加的;你新建或改了一条就跑那一条;流程图上「跑检查」随时跑全部。每个规划同一时间只跑一次,命令检查整台 Mac 一次一条,一段静默最多跑 15 分钟。谁能写:你在流程图上加、改、删;改了整理跳加的那条,它就归你,整理跳不能再动;整理跳在答案里可以加、改、删它自己的(每次最多新加 3 条,一个规划最多 10 条),命令只能是这件事里某一轮在那个目录跑成功(退出码 0)过的、或你在归到这件事的消息里原话写过的,你删掉的不会再被它加回来;Bot 没有写检查的工具,只在局面块和 map.md 里看得到。检查挂在验收的那一句上,按文字对应:整理跳或你改写这一句时检查跟着走,这一句删掉了,检查就列在「对不上验收条目的检查」里,照跑照算。结果回到哪里:流程图每条验收后面挂着检查的结果,点开看说明、最近一次和输出;整理跳读得到每条检查的最近结果,有没过的(或定义后还没跑过的)就不能把规划标成做完,对应的任务也不能标完成,越界和出错不算依据,写进进展的卡住里;你手动把规划标完不受这个限制。规划回看开出的轮次准备发言时,应用比较这个 Bot 在同一会话、同一规划里最近 40 条回复。去掉格式后相同的回复静默结束;至少 12 个内容词的英文回复,只改冠词或「run longer / be longer」这类措辞、其余词序相同时,也算重复。数字、否定、问号、代码、链接目标、点名和文件路径保留比较;新增内容或新交出的文件照常发出。直接回复和 send_message 使用同一个判断,普通用户消息触发的回复照常发出,已有记录保留。规划静下来时,还有任务没收口或有检查没过,应用叫回一次,叫回的话里带着最多 3 条没过的检查和输出末尾,提醒修交付物而不是改检查;再叫之前要有进展(有任务交出或收口,或者有一条在上次叫回前就有的检查第一次通过),没有就发一次通知「这件事停下了」,会话里不留这条回顾;你最近一句话之后叫回的次数不超过任务数加检查数。每一轮的局面块里列着这件事的检查和结果。

衔接一致(continuity)是第五种,给几个 Bot 分头做、合起来才是一件交付的活:每个 Bot 只审自己那一块,接缝上的问题谁也看不见。各部分按顺序来自三处之一:一条列出各部分的命令(一行一个,最准);一个通配路径(全部匹配按自然顺序排,C2 在 C10 前面;只有全是视频、又没给命令时,才当成反复重剪的成片,取最新的那个);或一份文件切开——Markdown 和纯文本按一、二级标题切,HTML 按 h1、h2 切,视频按场景检测找剪切点(画面相近的镜头之间会漏判,实测 11 个交界只找到 6 个)。每条接缝取两边的证据:视频取前一镜尾帧和后一镜首帧、图片直接用两张图,并排拼成一张图存在规划目录的 checks/<检查>/(保留目录,不算产物),要能看图的模型;文字取前一部分末尾和后一部分开头各约 700 字,不需要看图。文字另有一次整体检查:每部分的标题、开头和里面带单位的数字、专有名词合成一份摘要,看同一个对象在所有部分里是不是同一种说法和口径。判的是看图判定的模型(工具 → 分工里选的,没选就是默认端点的默认模型;要看图的那几次,选的端点模型没标「能看图」时改用默认模型,选的是 Claude 模型就一律用它),提示里写着这条验收、规划的规则和一张通用清单:与规则一致;前后接得上(缺的过渡要点名);同一对象前后一致(人物、产品和专有名词、术语、数字与单位、方位与方向);风格一致(画面看画风、渲染、配色、角色设定,文字看语气、格式、编号);重复或遗漏(看不出来就不要判)。图片和视频的接缝两侧几乎一样是好事,说明接得严丝合缝。它只答 JSON,读不出来重问一次。每条接缝和整体都没问题才算通过;不通过时说明写「N 处衔接里 K 处有问题:02-市场分析→03-渠道对比:……」,输出逐条列出(有对照图的带上路径),最后一行是整体结果。看图或读文字的调用记成花费里单独的一类「验收检查」。代码之间的衔接不用它,用一条联调或启动命令的检查。整理跳也可以提出这种检查,但各部分必须是这件事交出过的文件,或者清单命令这件事里真跑成功过。

应用还会按你说的数自己提议一种(你确认了才算数):量视频的时长、分辨率、画幅或帧率,见按你的话加的检查。

回避:让 Bot 写或改检查, 整理跳改你加的检查, 整理跳凭空编命令, 把检查当拦你的闸门, 应用自己判规划做完, 检查没过就回退任务, 带着守护进程的环境变量跑检查, 替你批准跑工作区外的检查, 按检查结果无限叫回

按你的话加的检查(Check from your words)

你对一件事说了时长、分辨率、画幅(竖屏、横屏也算)或帧率,应用就照你的原话提议一条验收检查,量这件事最终交出的视频:你的话一归到这件事就读,按固定规则,不调模型,也不等书记员。读得很窄:一句话在问、在假设、在抱怨、在说一版已经做出来的样子或要另做一版,说的是某一镜、开头、logo、字幕这类一部分,或者前面带着「不要」,一个数也不读。你的话从来不会自己变成门禁:读出来的数只是一条提议,列在流程图上,不出卡片问你要不要(你刚说过的话,不该再问你一遍);你在另一句话里又说了同一个数,还是这一条。提议也会对上文件、当场量,结果(「未确认的检查:107.00 秒,你说的是约 2 分钟(待你确认)」)给你和 Bot 看,但不拦东西;只有你确认(在流程图上;你说过两次的要求交付时没东西撑着,问你的那张卡片上也能确认),它才成为门禁(F-f 那次:107 秒的母带量出来不过但不拦,确认一次就拦下)。5 级起它照样什么都不拦;你说过两次的要求被同模型审查判通过时,它量到的结果会写在问你的卡片上。生效的检查从不自己变:你后来把不一样的数说成目标(用「片长」「分辨率」「帧率」「画幅」这类词、或「剪成」「改成」「控制在」给成品定的数),出一张替换卡片,附「确认」「改」「不要」,旧的照样生效,直到你选——这是唯一会出卡片的时候,因为不问你,Bot 就一直被旧的数拦着;你又说一遍,卡片再发一次,写着「你已经说了 N 次」。你确认过的检查依据的原话被抹掉,它改回提议,不会悄悄删掉。抱怨从不动检查。「约 2 分钟」是 108–132 秒,「2 分钟以上」只卡下限,「90 秒以内」只卡上限,其余读到的上下各放宽一成。它量 Bot 交出的文件名里有 MASTER(母带)的视频,其次 final(成片),再其次放在 deliverables/ 下的;点了某一镜、另一版、格式或预览的名字,素材、参考目录里的都不算。流程图上能确认、能删、不能编辑。细节见行为说明·按你的话加的检查。

行为细节

你对一件事说了时长、分辨率、画幅或帧率,应用就照你的话提议一条验收检查,量这件事最终交出的视频。你的话一归到这件事(它开的轮都开了),或者你回答了提问、在流程图上改了目标、验收、规则或任务说明,应用就按需求台账那套固定规则(见需求台账)从这件事的原话里读数:不调模型,也不等书记员。流程图上改的只算你改动的那几小句(「剪一支约 60 秒的宣传片」后面加上「,加字幕」只算「加字幕」),整理跳写的、你只是留着没动的字不算你的话。读得很窄:读错只是多一条提议,漏读只是少一条。时长要带着范围词(「约」「左右」「以上」「以内」「至少」「不超过」「最多」),或者数前面紧挨着「剪成」「做成」「改成」「控制在」这类词,或者同一小句里先说了「片长」「时长」;分辨率、画幅比例、竖屏横屏本身就算,比例还要这句话里有「画幅」「比例」「屏」这类词(「比分 2:1」不算),帧率要带「帧率」「fps」或「每秒 N 帧」(单说「24 帧」是帧数,「淡出 24 帧」不算);「最长」「上限」「顶多」「别超」按不超过读,「最低」「最短」「下限」「打底」「起步」按至少读;「预算 2k」「报价 4k」「码率 8k」不是分辨率。一句话在问(带「吗」、问号、「能不能」「要不要」「怎么样」「你觉得」「试试」)、在假设(「如果」「会不会」「的话」)、在抱怨(质量或否定的词,含「短了」「有点短」「偏长」)、在说一版已经做出来的样子或中间版(「上一版」「这版」「这次」「第一版」「之前」「原来」「现在」「你交的」「只有」「才」「已经」「显示」「为什么」「怎么」「比要求的……」「粗剪」「完整版」,一小句只说「可以」「还行」,或数后面跟着「了」)、在说手上已有的文件(「我拍的是」「相机」「客户给的」「显示器」「ffprobe」),要另做一版(「横屏的也做一版」「竖版的也要」「抖音版 30 秒左右」「横屏版」),或者说的是一张图或界面(照片、海报、封面、壁纸、配图、动图、KV、界面),整句一个数也不读:「太长了,改成 2 分钟」「这版改成 90 秒」「能不能改成 90 秒?」都不读,要改就单独说一句(「片长改成 2 分钟」),或在流程图上确认。说的是作品的一部分的,哪一项都不读:它那一小句里点了某一镜、某一段、开头结尾、片头片尾、logo、字幕、口播、高潮、场景、空镜、每页每张(「开头控制在 5 秒以内」「logo 在 5 秒左右出现」「C09 做成竖屏」),或者前面的小句点了、它那一小句又没说「片长」「总长」「成片」这类说整部片子的词(「C09 这个镜头,时长 8 秒」;「加中英字幕,片长约 2 分钟」照读);「这段」「那段」「采访」也算一部分;归在某个镜头任务下的话和批注也一样(这件事自己的那张任务不算:它以这件事命名,名字在「片尾」这类词上截断也一样)。说素材、参考片、配乐、歌的那一小句(「素材 20 分钟」「像苹果那支 90 秒的广告那样」),或者前面的小句说了这些、它那一小句又没说整部片子的,只读前面紧挨着「剪成」这类词的数(「把素材剪成 90 秒」)。「不要剪成 90 秒」「别压到 60 秒以下」这种前面带着不要的,不读;「帧率 24 改成 60」「分辨率从 4K 降到 1080」只读改成的那个数,改之前的、「24 或 30」这样二选一的都不读。说不要的(「不要 4K」「别做成 16:9」)、画面里的时刻和位置(「1 分钟左右切到产品」)、年代(「90s 港风」「90s 那种感觉」)、别的事要花多久(「2 小时以内搞出来」「这个任务大概 3 小时」),读数时就不读(见需求台账)。

读到的数分两种。说成目标的:同一小句里用「片长」「时长」「总长」「成片时长」「分辨率」「帧率」「画幅」「比例」这类词说它量的是成品的哪一项(「片长约 2 分钟」「画幅 9:16」「帧率 30」),或者前面紧挨着「剪成」「做成」「改成」「控制在」「压到」「砍到」(「剪成 90 秒发给我」「做成竖屏」),而且不在说素材、参考的上下文里。其余的(「约 90 秒」「不要超过 2 分钟」「1080p 就行」「要竖屏」「片子差不多 107 秒」)只在这一项还没有说成目标的数时才成为提议。你的话从来不会自己变成门禁:读出来的数只是一条提议,列在流程图上,不出卡片问你要不要(2026-10-04 起;之前每条提议出一张「按你的话加检查:时长 108–132 秒?」,你再说一次就再发一张「你已经说了 N 次」——你刚说过的话又问你一遍);提议跟着你最后一次说成目标的数,一次都没有时跟着最后读到的数。你在另一句话里又说了同一个数(同一个数、同样的范围词;「约」和光说一个数算一样,「约 2 分钟」「2 分钟左右」「片长 120 秒」是同一个,「片长 115 秒」「片长改成 130 秒」不是;流程图上同一处改几次只算一句),还是这一条,记下次数。只有你确认(在流程图上;你说过两次的要求交付时没东西撑着,问你的必查要求卡上也能确认),它才成为门禁。F-f 那次你两次说「片长约 2 分钟」:107 秒的母带交了就量,结果写在流程图和 Bot 的局面里,但不拦;你确认一次,它就拦下 107 秒的母带。你删掉或没选的数,还有你确认一条时之前说过的其他数,你那时说过的话都不再算(不出卡片、不计次数),之后再说才算;你最后说的正是你删掉的那个,就什么都不提,更早的数不会顶上来。生效的检查从不自己变:你后来把不一样的数说成目标,新数另出一张替换卡片(写着生效中是多少、你刚说的是多少,按钮是「用新的」「改」「留原来的」),旧的这条照样生效、照样拦,直到你选;你又说一次,卡片再发一次,开头写「你已经说了 N 次」。这是提议唯一会出卡片的时候:不问你,Bot 就一直被旧的数拦着。「改」把「片长改成 」放进你的输入框,你说的数才是它的依据。选新的,旧的删掉;留原来的,新的那条删掉;又说回原来的数,替换卡片撤掉。没说成目标的数不出替换卡片。抱怨从不动检查:「上一版 107 秒太短了」「107 秒左右,短了」「你剪成 107 秒了,太短」都不读数。

怎么算:「约 2 分钟」「2 分钟左右」是 108–132 秒,「2 分钟以上」「不少于 2 分钟」只卡下限,「90 秒以内」「不要超过 90 秒」只卡上限,其余读到的(「改成 3 分钟」「片长 3 分钟」)也上下各放宽一成;分辨率按画面的短边算(1080p、1920×1080 都是 1080,4K 是 2160),帧率同样上下一成,画幅比例差 1% 以内算对,只说了竖屏(横屏)就是高大于宽(宽大于高)。每一项最多一条生效的,外加一条提议;一句话里同一项说了两个不一样的数,这句不算。

量的是这件事的最终成品:Bot 交出的文件(带在它归在这件事下、不是归在某个镜头任务或另一版任务(抖音版、竖版、预告……;以这件事命名的那张不算)下的话里、此刻还在的)里,文件名里有 MASTER 这个词(母带)的视频先于有 final 这个词(成片、终版)的,再其次是放在 deliverables/ 下的视频,同一档里取最新的;只是名字先后只在同一类地方里比:放在 deliverables/ 或这件事自己的目录(含任务目录)里的,先于放在别处的,不管名字。要整个词(master_shot_03.mp4、EP01finale.mp4 不算);文件名里点了某一镜、另一版或格式、片头片尾、预览或代理的都不算(C09_final.mp4、EP01_MASTER_9x16.mp4、EP01_30s_MASTER.mp4、EP01_douyin_MASTER.mp4、EP01_trailer_MASTER.mp4、intro_MASTER.mp4、logo_sting_final.mp4、EP01_MASTER_720p_preview.mp4、EP01_MASTER_proxy.mp4、带「竖版」「片头」「镜头」的);放在 footage/、raw/、ref/、素材/、参考/ 下的一律不算。新旧按第一次交出来的时间算,所以审片员拿上一版 EP01_MASTER_v1.mp4 来对比,检查也不会退回去量旧的。交了更新的就改量新的,上一个文件的结果不带过去。提议也会对上文件、当场量,结果写出来给你和 Bot 看:流程图上是「待确认 · 没过」,展开写着「未确认的检查:107.00 秒,你说的是时长约 2 分钟(待你确认)」,Bot 的局面块和 map.md 里也是这样一行;但它不拦任何交付、不叫回谁,整理跳照样能把规划标成做完,「检查 N/M 通过」里也不算它,这样读错了数、对错了文件,都拒收不了正常的交付(审查者要不要处理它,等交付和审查的阶段再定)。你确认之后,它当场用 ffprobe 再读一次(画面按播放时的方向算,手机竖拍、存成 1920×1080 再标了旋转 90° 的也算竖屏;读不出时长、画面大小或帧率算出错,没装 ffprobe 也算出错,都不当依据),之后和别的验收检查一样:规划静下来时跑,没过时整理跳不能把规划标成做完,应用带着它叫回做的 Bot,Bot 再把这个文件交给你时收尾自检当场再量一次。审查者放不放行,要等交付和审查(ADR 0040 P4e)才管得到。

替换卡片在这件事所在的会话里(你在的话),带三个按钮,你又说一次就再发一张写着次数的。别的变化都不出卡片,流程图上看得到:新的提议、你确认的检查第一次对上文件(换成更新的一版只重新量)、你确认过的检查依据的那句原话被抹掉——它改回提议,不会悄悄删掉;抹掉后来说的同一个数不影响它,那句话改归到别的事也不影响。提议站在的话被抹掉或改归别处,提议就去掉。按钮只能按一次,被后来的数撤掉的提议再按「确认」会被拒;卡片只给你看,不进 Bot 的转录。流程图上这些检查列在「按你的话加的检查」下面,挂在你那句话的说法(「时长约 2 分钟」)后面:提议能「确认」、能删、能重跑(对上文件之后);生效的能删、能重跑;都不能编辑,本机接口改它会被拒(derived_check),确认走 POST /v1/checks/:id/confirm。一个规划最多 10 条检查的上限不算它们。清空或删除会话时连你说的话一起抹掉,站在那些话上的提议当场去掉,你确认过的改回提议。

检查表里它记为来源是你、种类是「文件存在」,另有几列写着它量什么、站在哪句原话上、怎么对上的文件、是提议还是生效:共用数据目录的旧版本把它当成一条检查那个文件在不在的检查,还没对上文件时是一条没写路径的检查,跑出来算出错,不拦东西。

5 级起(ADR 0046)它照样什么都不挡:不挡交付,也不挡放行,你说过多少次都一样。你在台账里说过两次的要求被同模型的审查判通过、又没有通过的检查撑着时,它量到的结果写在问你的卡片上,卡片上可以直接确认它。

回避:等书记员记下才建检查, 让模型读数, 不经你确认就当门禁, 说了两次就当门禁, 为你刚说过的数出卡片问你要不要, 后来的数直接改掉生效的检查, 让抱怨改检查, 把一部分或另一版的数当成品的, 未绑定就当门禁, 把镜头或素材当成最终成品去量, 在流程图上改它的数, 把一镜的时长当整片的