Files
Agent-System-Dev/policy/delivery.md
T
weichen 252686e075 Require fresh sessions across delivery stages
Why: prevent implementation context from contaminating independent design test and review judgments

Evidence: git diff --check

Impact: requires fresh CLI sessions per stage and forbids implementation-session reuse for Review

Refs: feature/goal-first-delivery
2026-10-15 07:11:11 +00:00

25 KiB
Raw Blame History

需求、试验与迭代交付

适用:本项目的需求、修复、规范修改和其他交付任务。依据固定版本的 通用交付流程,本项目收紧为 目标、范围和交付终点一次确认;范围内连续推进;问题按是否阻塞目标分流; 先可用、再迭代完善。代码 Review 和 PR 合入由智能体完成。 本文件是阶段、决策点与连续执行的权威表述;启动、同步、命令证据和回收操作见 开发门禁。规则的执行能力见 能力矩阵。

最高优先级:目标兑现与最小充分交付

本节自写入起立即生效,并在不削弱既有授权、证据、Review、CI、合入、清理与高后果双钥匙 边界的前提下,优先于本文件其他关于阶段、编排和完善程度的解释。

先做用户要求,不把任务升级成工程项目

  • 用户明确要求的产物、范围、验收条件和交付终点是当前工作的唯一主线。基础设施、工具修复、 通用化、加固、重构、迁移和新架构只有在用户明确要求,或有可复核证据证明其直接阻塞当前 目标时才能进入当前范围。
  • Markdown、配置、提示词、链接和说明等简单修改默认走最小闭环:定位 → 修改 → 最小直接验证 → 报告。不得为此新建平台、框架、自动化系统、嵌套控制器、额外 worktree、复杂收据体系、 新 PR 模板或新的阶段审批。
  • Agent 路由、任务卡和证据工具都是交付手段,不是交付目标。候选 CLI 迟迟不产出时按配置及时 切换或按既有回退规则处理;不得转而长期建设或加固路由系统,导致用户要求的简单产物一直未交付。

最小可用即停,问题按是否阻塞分流

  • 首次达到“用户要求的产物可用、受影响系统可用、最小直接验证通过”后,立即停止新增工作并 进入交付。后续体验、结构、性能、命名、治理与文档完善是新的增量,须由用户明确要求或另行授权。
  • 只修复直接导致目标无法实现、系统不可用、明确验收失败或强制安全门禁失败的问题。高价值但 不阻塞的问题只记录事实、影响与建议归属;低影响噪音直接忽略,不创建任务、不阻塞交付。
  • Review 和 CLI 迭代只处理阻塞项。阻塞项闭合、请求产物可用且最小验证通过后循环立即结束; 不得以“更完整”“更安全但并非门禁”“更通用”或“顺手清理”为由继续循环。

验证与编排必须成比例

  • 实施阶段运行能直接证明本次修改的最小检查。完整或长耗时测试只在最终候选上运行一次,且仅限 本仓规范明确要求、真实影响面覆盖广,或最小测试不足以判断回归的情况。
  • 禁止在每个小文档、配置、提示词或 adapter 修改后重复完整套件;已经针对同一候选取得且对象 未变化的有效结果不得因记录、格式或非阻塞意见重复执行。
  • 编排成本不得超过任务本身。平凡单元最多启动一个有界 CLI 进程;主模型负责计划、范围与审查, 但角色分工不得推迟简单产物。检测到实现粒度与任务不匹配时,立即降级到最小充分做法。
  • 移除机械人工停顿不等于增加机械 Agent 停顿。真实业务取舍、授权变化、高后果操作和必须由用户 判定的验收仍请求人工;除此之外,不为计划、工具、自审或非阻塞完善反复等待。

授权、决策点与连续执行

任务卡默认记为 goal-first。用户的直接请求在目标、允许动作、写入对象和交付终点足够明确时, 即是对该范围的执行授权;方案、审计或只读请求仍不包含业务实施,本地实施不自动包含部署、迁移或共享环境写入。 授权一旦成立,范围内的调查、需求拆解、方案选择、计划、编辑、必要缺陷修复、测试、Review、PR 合入和安全收口连续推进, 不逐阶段、逐文件、逐命令重复请求批准。阶段用于追溯和质量控制,不是默认的人工停顿点。

只有以下情况请求人工决策:

  • 目标、范围、优先级、验收条件或交付终点将发生变化;
  • 多个可行选项会造成不同的用户结果、公开契约、权限/数据语义或持续运维成本,且现有决策无法确定取舍;
  • 触及未授权共享环境、外部资源/成本、不可逆或本仓定义的高后果双钥匙操作;
  • 用户感受、业务判断、用户持有的凭据/设备或平台 owner 操作使验收无法由可复核证据自动完成。

存在决策点时,只暂停受影响部分,提交具体选项、影响和推荐;其他已授权且不受影响的工作继续。 用户沉默不补齐真实决策点,但 Agent 自审、测试进展和工具记录也不得被包装成新的人工门禁。 独立 Review、证据、平台准入和高后果双钥匙仍有效;它们保证交付质量和安全,不扩大业务授权。

需求拆解、评估、方案和计划可以共用一份任务卡。小任务只记录目标、范围、验收、关键决定和验证; 不适用的阶段标记原因后直接跳过。任务启动检查、独立工作区和收据用于准备现场,不表示业务结果已验证。

Agent 实施单元与主模型职责

产生仓库变更的实施工作拆成可独立实施的单元。任务卡默认记 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)。执行路由以根目录 AGENT-EXECUTION.md 为唯一权威;按角色声明的候选顺序在新进程与 隔离工作区中尝试外部 Agent。不得跨单元复用同一外部进程。

主模型(host)负责计划、拆解、有界单元包、强制范围、检查与审阅实际 diff、运行权威验证、 规范提交、管理 PR/CI/合入、写入证据与任务管理元数据,以及安全清理。权威验证、集成、合入与 任务卡证据所有权属于 host;worker 的局部自检不能替代任务卡证据、独立 Review、当前 HEAD 的 CI 与平台准入。

每个外部 worker 只接收一个有界单元。Worker 不得扩围、提交、推送、打开或合并 PR、派遣同伴、 改变路由或模型、部署,或清理规范 worktree。

run-everything 仅在隔离单元内取消逐步命令批准提示;不扩大用户授权范围,也不授予 worker 规范 Git、推送、PR、合入、部署或清理权威。

当前 host 仅当 scripts/agent_exec.py run 对该精确单元发出有效 host-fallback-authorized 收据后,方可直接撰写该单元的仓库变更。全部候选须已安全耗尽 (unavailable 或已精确恢复的 failed-clean)。failed-unknown、scope-expansion、无效配置、 未对账 Git 状态与安全失败均不授权回退。规划、只读调查、证据捕获、控制器/任务卡元数据与集成 操作属于 host 管理工作,不递归创建另一实施单元。

本条不重新引入逐阶段人工门禁;goal-first 的决策点、严格范围、先可用再迭代、独立 Review、 证据、平台准入与高后果双钥匙规则继续有效。

阶段会话隔离与独立 Review

为避免实施上下文、既有结论和自我辩护污染后续判断,阶段执行遵循“一个阶段/单元,一个新会话”:

  • 需求分析、方案比较、设计、计划、实施单元、测试、Review 和验收默认分别启动全新会话。主模型可持续 保存调度与任务状态,但交给 CLI 的每个阶段必须是新进程、新 conversation/thread、新 session; 不跨阶段复用实现会话。
  • Review 只有两种有效执行者:当前 host 主模型,或单独启动的全新 CLI session。实施 CLI 可以做局部 自检,但其原 session、自我总结和续聊结果不构成独立 Review。
  • 禁止评审调用使用 --continue、--resume、既有 conversation ID、session ID/文件、共享交互窗格, 或任何会恢复实施上下文的等价方式。即使使用相同 CLI 或相同模型,也必须有新的 session 身份。
  • 评审包只包含:固定目标与验收条件、适用规范、base/head、实际 diff、直接相关测试及来源明确的证据。 默认不包含实施对话、隐藏推理、中间自评、失败尝试叙述和原 session 历史;需要背景时提供最小可复核 事实或产物链接,不复制整段上下文。
  • 任务卡/收据为各阶段记录 stage、工具、模型、attempt、session ID 与 fresh_session=true。CLI 不提供 session ID 时记录 not-observable,同时记录新进程命令及未使用恢复参数的事实。无法证明独立性时, 结果只能标为作者自检 SELF,不得标为独立 Review/REPLAY。
  • 会话隔离不要求为简单任务增加新平台或复杂编排。平凡文档/配置任务仍按最小闭环执行;需要独立 Review 时只额外启动一个最小、一次性的评审 session,不复用实施 session,也不扩展任务范围。

目标优先、范围控制与问题分流

执行顺序为:

授权与安全边界 → 任务目标和系统可用 → 直接阻塞项 → 后续改进。

当前任务的完成标准是已批准的验收条件成立、目标用户链路可用,且受影响的既有关键能力没有明确回归。 完成不要求把所有邻近代码、历史欠账、工具噪音和低影响建议同时清零。先形成端到端可用、可验证的最小闭环, 再把体验、结构、性能和治理优化作为独立增量。

新发现按以下标准处理:

类别 判定 当前任务动作
阻塞项 直接导致目标无法实现、验收条件失败、系统/关键回归不可用、安全边界违反或必需门禁失败 在已授权范围内作最小充分修复;若超出范围,提交最小扩围决策
有价值非阻塞项 当前目标仍可交付,但有具体影响、复发风险或明确后续价值 只记录事实、影响和建议归属,不在当前任务修复,不阻塞交付
低影响噪音 不影响目标、可用性、安全、回归或后续决策 忽略或在当前记录中一句带过;不新建任务、不阻塞、不扩围

“影响目标”只决定问题的优先级,不自动扩大授权。“相关”、“顺手”、“重构更干净”、“以后可能用到”都不是当前实施依据。 Review 只将阻塞项列为必修;非阻塞意见标明后续建议,不得以“更完善”为由拒绝已达标且可用的当前增量。

阶段与出口

阶段 必需产物 进入下一阶段的条件
1 需求拆解 目标、用户场景、子需求、边界、非目标及待澄清问题 目标、授权范围和交付终点可执行;只有会改变结果的歧义才触发决策点
2 需求评估 价值、可行性、成本、风险、依赖、现有能力及在途任务重叠;与项目定位、模块职责和公开契约的符合度 无需用户取舍的评估由智能体结论;重大未知转入受控试验或具体决策点
3 需求表确认 稳定 ID、描述、适配依据、优先级、可判定验收条件、依赖和处理结论 当前增量与授权一致;影响实施的关键事实已核实或显式标注限制
4 方案设计 推荐方案与必要备选、职责和接口、数据与权限影响、失败恢复、待验证假设及试验结论 在已批准目标内选定最小充分方案;只有重大取舍触发人工决策
5 实施计划 关联需求的工作项、依赖顺序、责任人、文件或模块范围、测试方法与环境、完成条件及停止条件 计划足以执行且不扩大授权;远期工作保留粗粒度但不纳入当前任务
6 实施与自检 可审查变更、局部测试、计划偏差与迭代记录 当前增量达到验收条件,范围内阻塞项已闭合,非阻塞项已按价值分流
7 正式测试与验收 需求到证据映射;正常、异常、边界、回归结果及缺项 同步并固定被测对象,必需自动验证有有效证据;仅用户可判定的验收单独请求人工结论
8 代码 Review 智能体审阅者、对象版本、需求符合性、正确性、维护性、测试充分性及问题闭合记录 智能体完成必要重放、整改、补测和复审;当前版本 Review 通过,平台要求的独立批准已满足
9 合入 最新 base/head、当前 HEAD 的 CI、Review、冲突处置和合入结果 智能体再次同步,确认冲突已解决、Review 有效且 CI 全部通过,经 PR 执行合入并核验真实结果;无需另请人工合入
10 合入核验与收口 实际合入内容及组件版本、验证依据、成果保存位置、写者状态、清理清单、任务归档安排及适用规划的进展与下一步建议 证明成果已保存、所有写者已退出并且回收条件满足后,智能体安全回收并闭合任务卡;无法证明时保留现场并请求决策

各阶段默认按已授权范围连续执行;只有命中本文定义的决策点才暂停受影响部分。 阶段产物、独立 Review、验证条件和平台准入保留;移除的是机械性人工签字,不是质量证据。 正式测试和最终 Review 的顺序不限制设计阶段试验、实施期测试或提前审阅。 文本合并无冲突不证明组合兼容;合入后仍核验真实内容与被测候选是否一致。

多个就绪任务的最终验证与合入按 合入调度 的采纳状态执行。 新模式生效后,阶段 7–9 在同一目标交付窗口内完成;对象未变时各节点重复核验, 不因记录检查再创建提交或重跑有效 CI。窗口领取不代替已触发的必要决策、独立 Review 或平台准入; 未生效时继续既有同步规则。固定后的证据按 源码外收据流程 保存。

长期方向与任务衔接

用户提出大方向、长期目标或跨任务规划时,必须在项目中留存可接续的主记录,不能仅保留 在聊天、IDE 私有计划或执行者记忆中。优先更新已有相关规划;确需新文档时,沿用 过程仓的 modules/documents/docs/proposals/,并在 项目入口 提供链接。 正文只维护一处,任务卡和其他入口引用文档及版本,不复制另一份规划状态。

主记录至少包括:目标及背景、范围及成功标准、阶段或里程碑、关联方案和任务、来源、 负责人、确认状态、推进状态及更新时间。只有方向时可以先写简短目标记录,未知项标待定。 未确认的想法标“待确认”;确认依据与版本另记,不能由“已记录”推断“已批准”。 方向、范围或优先级调整时保留原决定、变更原因及批准依据,更新受影响的方案和任务引用。

启动或恢复相关任务时,先读取适用方向及规划的当前有效版本,核对本任务所属里程碑、 已有实现和在途任务。多个规划相互冲突或优先级不明时,记录冲突并提交人工决定, 不凭文档标题、日期或本地旧副本擅自选择权威。

任务完成时,如果存在适用方案或规划,必须依据实际结果更新其进展,并在任务主记录和 最终交付说明中给出下一步任务建议:

  • 说明本任务推进了哪个目标或里程碑,以及剩余差距;区分已实现、已验证、已合入和已部署。
  • 优先推荐一个下一任务,说明要解决的问题、关联规划及版本、推荐理由和优先顺序依据。
  • 写明前置条件、依赖、待确认事项、预期产物和可判定验收条件;必要时补充备选及取舍。
  • 建议前核对已有或在途任务;已有任务覆盖时引用该任务及待续办内容,避免重复安排。
  • 无适用规划或规划已经完成时如实说明;存在阻塞时列出阻塞条件,优先建议澄清、验证假设 或解除阻塞的任务,不为凑出下一步虚构工作。

进展更新和建议属于当前任务的收尾产物。跨仓更新遵循对应工作区、版本和评审要求; 更新尚未获批或合入时,任务卡保留待更新内容、负责人和下一动作,不能声称原规划已更新。 下一步建议不等于启动授权:没有覆盖该任务的明确授权,建议停留在待确认状态; 当前任务的完成或执行授权不自动扩展到新任务。

需求表与追溯

需求表以任务卡为主记录。项目符合度使用“符合 / 需调整后符合 / 不符合 / 待核实”, 附当前源码、项目约束或实测依据。处理结论使用“纳入本增量 / 后续处理 / 拒绝 / 待定”, 与符合度分开;关键依据缺失时保留待核实,不凭推测判定通过。

每个纳入实施的需求必须能追溯到:

需求 ID 与验收条件 → 方案及工作项 → 测试或审阅方法 → 当前版本结果与证据。

没有可判定验收方法的需求先澄清;待定或不符合的需求未经重新评审不得进入正式实施。 跨模块、权限、持久化、异步和恢复需求按实际风险补充真实链路及故障场景。 规范和文档任务采用差异、链接、规则一致性及相关工具行为检查,不制造无关业务测试。

设计探索循环

需求分析和设计阶段允许先试验再完善方案,无须先批准尚未能确定的完整设计。 执行试验前记录最小试验计划:待回答的问题或假设、对象和隔离环境、方法、预期判据、 允许副作用、时间或成本边界、停止条件及产物保存或处置方式。试验在已授权目标内、可逆、已隔离且不新增外部成本时直接执行; 命中决策点时再请求对应授权。

在已批准范围内可以反复尝试:

初步方案 → 核对授权与试验边界 → 原型或测试 → 分析证据 → 修订方案与计划 → 核对结果。

记录成功、失败及不确定结果,以及下一步继续探索、采用、换方案或暂停的理由。 超出范围、触及未授权共享环境、达到预算或持续无有效进展时,暂停受影响试验并提交决策。 无需强求全部未知一次消除;影响下一步的关键假设必须有结论,其余风险有责任人与处理安排。

原型标明用途和限制,不自动成为正式实现。决定复用时纳入方案、计划、代码 Review 与正式验证。 试验成功仅证明相应假设,不能替代验收;失败结果用于调整方案,不能静默降低验收标准。

实施、测试与 Review 的反馈循环

按可独立验证的增量推进;近期工作细化到可执行,后续工作根据证据逐步细化。 每轮形成“发现与证据 → 原假设或困难 → 调整及影响 → 重审和补测范围 → 决策 → 结果”。 记录放在同一任务卡,较长材料只引用文件或 PR,避免多份状态。

智能体行为面的真实验证(2026-10-09 裁定)

改动智能体行为面的 PR——提示词库、技能配方(SKILL 与 housestyle)、工具描述与 注册面、上下文组装与回放、终轮门禁与评分——须附真实模型的任务级前后对照 (modules/backend/eval/live/ 基线,或等价的最小重放集),写入任务卡并标注来源 (GATE/REPLAY/SELF)。单测与 mock 回放不覆盖模型实际行为,只能证明机制,不能 替代该对照。确无条件跑真实模型时,在任务卡显式标注 NOT_RUN 并说明原因与 补救计划;不得以“预期改善”措辞代替证据。评测材料不进仓(沿用 eval/README 口径)。

变化 执行动作与评审边界
已批准范围内的内部组织、等价实现、局部缺陷修正 当前阶段继续调整、自测并记录;满足阶段表的客观出口条件后继续
技术路线、模块职责、公开契约、数据或权限设计、外部影响,或计划的关键依赖、交付顺序和资源约束变化 先判断是否改变已批准用户结果或持续成本;否则在范围内调整并补测,是则暂停受影响部分并提交决策
目标、范围、优先级或验收条件变化 返回需求评估和需求表,取得对应批准后更新下游方案、计划和验证
影响不明 先调查;仍无法判定时提交人工决定,不自行归入细节调整

未受影响且已有授权的工作可以继续。测试或 Review 发现实现缺陷,返回实施修复; 发现设计缺陷返回方案;发现需求理解错误返回需求阶段。只重走受影响环节,并说明 未重走部分为何仍有效。新版本不能沿用已受影响的批准、测试或 Review 结论。

批准对象使用文档修订或提交标识;正式验证固定源码、组件组合与相关配置。 对 head/base、依赖、需求或契约变化重新判断证据及评审的有效性,按影响补测和复审。 阶段状态、测试状态、代码审核状态及合入状态分别记录,不以一个“完成”互相替代。

合入、清理与恢复

智能体 Review 与 PR 合入

已获实施及交付授权的任务,代码 Review 和所有 PR 合入必须由智能体执行,包括任务卡闭合 PR、 机器人和紧急通道。用户只负责已触发的必要决策及按双钥匙要求亲手调整平台保护;合入统一经智能体的 同步、Review、当前 HEAD CI 和平台准入流程完成,不由人工直接点击合入。 本条即该范围内的合入执行授权,条件满足后由智能体直接合入,无需用户再次批准或亲手点击。 用户明确限定为只读、方案、本地修改、草稿 PR 或禁止合入时,以该任务边界为准。 前序阶段的必要产物和已触发决策结论仍须齐备;合入职责不扩大需求、业务实施、部署/迁移或高后果操作授权。

智能体按以下顺序执行:

  1. 完成 Review,记录审阅者及其身份、base/head、结论、问题处置和必要重放依据。 要求独立审阅时由未参与本次实现的审阅智能体完成;平台要求的非作者批准须由符合 平台身份及权限条件的账号给出,切换智能体角色不等于非作者账号批准。
  2. 合入前以 evidence 记录 make task-sync,将最新权威目标纳入任务分支,解决全部 文本及组件冲突,检查组合兼容性。无法在已批准需求和方案内判断冲突取舍时,暂停合入 并提交具体决策;无冲突或仅文本合并成功不能代替语义兼容核验。
  3. 同步、冲突解决或整改导致 head/base 变化时,重新判断 Review 与测试的有效性,完成 受影响的复审和补测,推送新 HEAD,并等待该 HEAD 的 CI;旧版本绿色结果不能放行新版本。
  4. 核验当前待合入 HEAD 的全部必需 CI,包括本仓 CI 的测试、构建及适用的其他作业, 记录完整 SHA、运行链接、执行身份和结果(GATE)。缺检查、排队、运行中、失败、取消、 适用检查被跳过或来源无法核验时均不得合入;本地 SELF 测试不能替代 CI 通过。
  5. 再查最新 base/head、冲突状态、有效 Review、CI 及平台准入,满足后通过平台 PR 接口 执行合入。最终推进须受平台陈旧候选保护、合并队列或等价的目标分支串行与版本核验保护; 目标再前进时重新同步和核验,不绕过平台拒绝、不降低检查或批准要求。
  6. 查询真实合入结果,记录 PR、被核验 HEAD、合入 SHA、目标分支和内容/组件核对结果。 超时或断连先查询 PR 及目标状态,再决定是否重试;合入与后续清理分别记录。

本流程由智能体执行,任务卡模板和本地提示不构成平台强制门禁。平台能力按 能力矩阵 核验;分支保护变更仍由用户按双钥匙边界执行。 交付窗口覆盖普通 PR、闭合 PR、机器人及紧急通道;coordination 仍为 manual 时如实登记, 当前目标在窗口内被外部推进则建立新尝试,不继续使用旧候选的绿色结果。

清理与恢复

已授权任务的标准安全收口无需另行人工批准。仅回收本任务登记工作区,按开发门禁核对当前权威目标、 父子仓成果、未跟踪和 ignored 文件、独有提交与引用、活动 Git 操作以及所有写者退出。 无法证明成果已保存或写者已退出时保留现场并只请求该具体决策;本地删除与远端分支删除分别报告。

清理前保存任务主记录与证据。执行回收时将命令输出用 evidence 的 RECEIPT 模式保存到 待删目录之外;回收后的结果写入后续闭合记录,不能向已删除的任务卡补写收据。 任务卡须回填真实主 PR 和完成状态并归档;闭合 PR 的创建核对当前闭合授权,合入按上述 智能体 Review 与 PR 合入流程执行。 post-merge 默认只提示,不因 pull 或 merge 自动提交、推送或创建闭合 PR。

中断或交接时记录当前有效版本、批准范围、未决假设、最新试验结论、剩余事项及下一动作。 恢复后核对现场和授权,从最早未满足的环节续办;不重做仍有效的工作,不省略失效环节。