Skip to content

Decouple Attempt acceptance from Task completion and expose scoped Chief delivery choices #2526

Closed

Description

@zy95-12

Written-by: Codex

目标与授权边界

  • 实现/PR 目标分支:delivery/ai-centric-development-service;负责人 @zy95-12。
  • Owner 在工作会话中确认本方案并要求更新 Issue、直接开发;同步长期记忆、架构/接口文档与测试。
  • 本次只交付源码,不授权现场部署/重启、手改任务/binding/凭据、打断前端流程或付费模型测试。

已确认的问题

当前 Chief 的 close → chiefAccept → accept 将 Attempt 验收与 Task 完成耦合;缺少“认可本轮产物但整个 Task 继续”的能力。新一轮 start/rework 又会尝试沿用上一轮 publicationBinding,已合 PR 被正确拒绝。因此只加提示词或 nextActions 不能解决问题。

Owner 确认的设计

1. 分开本轮验收与整个 Task 完成

Chief 可以基于当前候选、测试、Review、provider-confirmed merge、需求与未处理输入证据验收当前 Attempt,记录交付范围/依据和剩余工作,保持原 Task 未完成;不能把 PR 已合入自动等同于业务验收。Task 全部验收条件满足时仍允许 Chief 关闭,不一概禁止 close。

下一轮由 Chief 显式决定,复用原 Task/Task-role 上下文及既有配额/执行入口,创建新 Attempt 和新发布分支;保留旧 PR/候选/验收历史,但不继承已合 PR 的发布绑定。不得通过 reopen 已完成 Task、手清 binding 或重启冒充正常流程,也不另建“切片”领域对象/额外 GitHub Issue。

基线必须是经核验的目标分支提交,并包含已合成果;不能把宿主固定仓 HEAD 自动当作最新目标分支。缺对象/权限/远端结果未知应明确反馈,不能猜测或覆盖草稿。

2. 当前事实快照及动作预检

复用现有 Chief snapshot、Store、作用域与代次/证据哈希。按 Task 复制本地相关事实,必要外部查询后复验相关版本;不混用新旧事实,不追求跨 GitHub/执行器的全局事务。快照是项目事实,不是 SDK 会话历史;详细日志/历史使用既有渐进式披露入口,不重复塞满上下文。

只给已有及本单新增动作展示 ready / blocked / unknown 与原因、缺失证据、可查询信息;ready 只表示预检通过,不是授权令牌、验收结论或穷尽全部业务选项。复用执行端约束,避免平行实现一套合法性规则引擎。执行时重新校验当前权限、需求/Task/Attempt/候选/merge/input 状态;快照过期应反馈变化并让 Chief 重读,不将普通 stale/null 统一当环境故障或强制转人工。

Chief 实际执行上下文必须含 projectFacts.tasks[].repositoryRecovery.nextActions 与 continuationOptions,不能只在提示词/文档声称存在。看板 TaskView.nextActions 是调用人的服务命令列表,不能被 Chief 误当成完整合法决策集合;TaskView.deliveryChoices 复用决策预检。即使前者仅列 chief.inspect,也不因此禁止满足前置条件的 accept-attempt / start-next。已合 PR 的 rework 拒绝不构成清 binding 的授权。补实际 Chief Job 上下文回归,避免 Personal Agent 的文字输入与宿主合法动作层脱节。

3. 推荐及自主性

推荐动作、理由和证据引用由原 Chief 推理轮次给出;宿主提供事实与预检,不另建规划 Agent/评分引擎,不硬编码“已合只能盖章→固定 Dev”。Chief 可以查询、暂缓验收、调整路线,全部条件满足时可关闭 Task。

Chief 优先自主查询、纠正和推进。确实缺权限/必要信息或需要人拍板时,才由 Chief 决定通过对应 Personal Agent 求助,必要时联系本人,作为最后兜底。失败次数/耗时只能作为现有 warning,不自动触发固定角色、人工升级或关闭。

框架可以提供建议的合法动作、依据及前置条件,Chief 保留最终选择。多次在同一事实下操作被拒,应沿用现有配置的无进展阈值与统一 warning 通道,带上最近动作、精确拒因和当前事实供 Chief 纠正;不新增固定次数转人工/固定角色流程。当前事实、历史推荐/拒因与待核验信息必须清晰区分,失效提醒不得继续作为当前阻塞,最终上下文不得前后矛盾。

4. 失败、重放和恢复

复用既有 Effects、请求回执与代次约束。重复请求不重复验收/创建 Attempt;验收提交失败不得留下有效“已验收”或启动后续。验收后重新读取当前快照再决定下一步。外部写入结果未知时先查询原操作,不能盲目重放。权限撤销、worker 退出未知仍拒绝执行;旧代次/证据不能获得放行。

验收

  • 可实际走通 provider-confirmed merge → Chief 验收当前 Attempt → 原 Task 保持打开 → 新快照 → Chief 启动新 Attempt → 新分支/新 PR 身份与包含已合成果的核验基线。
  • 验收保留交付范围、证据、剩余工作及原历史;整个 Task 的验收/关闭仍独立受约束。
  • 已合旧 PR 的 rework/续作仍拒绝;未合 PR 的正常续作不回退。
  • Chief 快照显示 scoped ready/blocked/unknown、原因和证据来源;推荐来自 Chief,无新增固定工作流或自动升级。
  • 覆盖快照读取中变化、执行前 stale、候选/需求/merge/input 变化、目标分支推进或缺对象、权限撤销、未知退出、重复/迟到回复、保存失败与重启恢复,不重复写、不超配、不丢原上下文/草稿。
  • 更新 PROJECT/ROADMAP 长期记忆、匹配架构、操作/API/OpenAPI(如受影响)、生成补丁及 changelog;保留原上下文预算与必读规则。
  • 报告缺陷修复前失败、修复后通过、实际隔离运行时/SDK 与现场验证的不同范围。测试通过/源码合入不能冒充现场验收。

非目标与历史说明

不拆已合 PR 不可 rework 的边界;不新建 Task Store/调度器/DAG/规则平台;不清历史 binding;不与已完成 #2519 日志通道混谈。原 Issue “已合待验收只许盖章”“关整单一概非法”“勿升人工”由上述 Owner 讨论结论替代;保留原讨论作为设计演进记录。

补修:需求演进与历史 Attempt 验收

Owner 已确认实施。现场证据见 comment-6660783004;当前交付分支 056cb55 的隔离复现同样被 Current requirements changed 拒绝。

  • scoped accept-attempt 依据不可变 Attempt requirement、原候选与测试/Review/merge 证据,不要求其与当前 Task title/criteria/revision 相等;Chief 明确已完成/剩余范围。保留新旧需求版本与差异提示,不自动认可新需求完成。
  • 身份、候选与证据 SHA、权限、执行代次、幂等与未知退出等保持硬校验。Chief 读取后需求变化,回灌当前差异要求重读/确认;不把正常历史修订差异当成永久阻塞或自动转人工。
  • 实际 Chief 上下文、TaskView 及执行端规则一致,下一轮使用当前 Task requirements。整体 Task close 仍独立验收。
  • 真实 Git/Runtime 回归:Attempt rev2 → 当前 Task rev3/rev4 → scoped acceptance → 同 Task 新 Attempt 使用 rev4;旧 PR/历史保留。
  • 新需求差异显示、旧判断期间再次修订要求纠正;无代码证据/权限/退出放行。
  • 更新长期记忆、架构/API/OpenAPI、canonical patches 与测试,不提高必读预算;上下文包瘦身仍单独处理。

Activity

  1. self-assigned this
    on Nov 5, 2026
  2. zy95-12 commented on Nov 5, 2026

    @zy95-12
    CollaboratorAuthor

    Design note (room 2026-11-05 Asia/Shanghai)

    Owner direction: framework should expose as much fact as possible and leave decision to the model among legal choices.

    For this issue, nextActions should be:

    • a recommended action with reason (e.g. accept merged Attempt), plus
    • an explicit legal option set (accept / open new Attempt without old binding / reject / human / …),
    • with illegal edges marked unavailable and explained (e.g. rework of provider-confirmed merged PR),

    not a single hard-coded script that removes all model choice.

    Protocol closes illegal edges; policy/model picks among legal ones.

  3. changed the title [-]Post-merge: auto-clear waiting-acceptance / publicationBinding + pin nextActions to accept[/-] [+]Post-merge: 按事实快照给出合法选项集(先盖章收片,再新开 Dev)[/+] on Nov 5, 2026
  4. changed the title [-]Post-merge: 按事实快照给出合法选项集(先盖章收片,再新开 Dev)[/-] [+]Decouple Attempt acceptance from Task completion and expose scoped Chief delivery choices[/+] on Nov 5, 2026
  5. added a commit that references this issue on Nov 5, 2026
    a809a7a
  6. zy95-12 commented on Nov 5, 2026

    @zy95-12
    CollaboratorAuthor

    Written-by: Codex

    已通过 PR #2537 合入 delivery/ai-centric-development-service,实际合入 SHA:a809a7a53eb2fede879888b92667191e1befeaaa。已 fetch 目标分支并核验:合入树与测试提交 c0fcf9d7a916921f0b932b8140098dd34feceaaa 完全一致。

    交付范围:

    • Chief 可验收本轮 merged Attempt 并保留 Task 打开;新快照后显式选择下一轮,核验含已合成果的目标 SHA,使用新 Attempt/分支/PR 身份,保留旧记录及 Task-role 上下文。
    • 实际 Chief Job 上下文携带合法动作预检;明确区分看板服务命令 nextActions 与 Chief 决策选项。rework 拒绝不授权清 binding。
    • 同一事实下反复动作被拒,复用可配置无进展阈值与统一 warning,附最多五条精确当前失败。事实变化后旧提醒成为历史;Chief 自主选择路线,Personal Agent → 人是最后兜底。
    • 当前权限/范围/候选/证据/退出/外部写入校验、幂等、保存失败回滚、重启通知及队列失败反馈有回归看护。长期记忆、架构、API/OpenAPI、decision/changelog 与 canonical mirrors 已同步,必读预算未提高。

    验证:

    • 最终提交本地完整 npm run verify:5128/0,含 8 项实际 DSH runtime。
    • GitHub 基础 CI 42040426463,attempt2:最终提交 Node24 / tests-ok 均成功。保留了未改动群聊重启用例的首次 CI 失败及独立复跑证据;未弱化断言或 CI。
    • 实际 Git / Runtime / Store restart,以及 OS SDK-protocol fixture 子进程覆盖两轮 Dev→Tester→Reviewer 和独立 PR 身份;这是隔离协议验证,不冒充真实供应商模型或现场验收。
    • 覆盖率、红绿回归、pairing 自查及未运行项见 PR 描述;不声明独立 Verifier PASS 或全部分支100%。

    未执行现场 OpenToday 操作、部署/重启、外部 provider 写入或付费模型调用。Owner 已明确把必读上下文包瘦身留作单独工作,不纳入本单。

  7. zy95-12 commented on Nov 5, 2026

    @zy95-12
    CollaboratorAuthor

    部署含 #2537 后现场复核(OpenToday task-8cf81a8d / attempt-b573bb83):

    deliveryChoices 已出现,但 accept-attempt 仍 blocked:Current requirements changed; inspect fresh delivery facts。

    根因是 requireAttemptAcceptance 要求 Task 当前 title/criteria/revision 与 Attempt 钉死的 requirement(此处 projectTaskRevision=2)完全一致;合入后 Chief 已把 Task requirements 推到 rev3/rev4(标注已交付与剩余 MVP),revision 永久偏离 Attempt 快照,导致一经 revise 就无法再 scoped accept。

    这和「先盖章再 start-next」目标冲突。建议:scoped accept-attempt 以 Attempt requirement 快照 + delivery.{completed,remaining} 为准,或允许 Task 现行 requirements 演进后仍验收已合 Attempt;不要用整单 revision 等式卡死。

    (公开 nextActions 仍只有 chief.inspect,属调用方命令列表,预期内。)

  8. reopened this on Nov 5, 2026
  9. added a commit that references this issue on Nov 5, 2026
    80cf579
  10. zy95-12 commented on Nov 5, 2026

    @zy95-12
    CollaboratorAuthor

    Written-by: Codex

    补修已通过 PR #2549 合入 delivery/ai-centric-development-service:80cf579512237a5affd45b26658f52d784e80cda。已 fetch 并核验合入树与测试提交 1f8cff3abcaad9ccf91ebb0a7b0980c4307deae0 完全一致。

    修复了现场反馈的历史需求版本硬阻塞:scoped accept-attempt 依据 Attempt 固定需求和原候选/测试/Review/merge 证据;Task 当前需求演进仅显示版本/字段差异及原值,不要求与历史版本相等。Settlement 记录原需求与验收时当前 Task 版本;Task 保持打开,下一轮复制当前需求。父任务集成过子任务时,也按原父需求版本核对其已提交的原准入记录;准入 Effect/子任务证据缺失仍拒绝。整单关闭仍独立受约束。

    Chief 读取后需求又变化,使用已有 stale-snapshot 纠正反馈重新判断。旧拒因是历史操作结果,不构成当前合法性规则;有四条旧“版本不同”拒因时,实际 Chief Job 回归仍可合法验收并启动当前需求下一轮。权限、身份、SHA、代次、退出/外部写入、输入和幂等校验保留,无新框架/自动转人工。

    验证:

    • 最终提交完整本地 npm run verify:5167/0,包含 8 项实际 DSH runtime。
    • 最终相关回归/覆盖率运行:281/0;父任务准入及否定场景 5/0;API 10/0、原必读预算 6/0。
    • 最终提交 GitHub Test 42053449199:attempt1 Node24/tests-ok 均成功。
    • 已保留 fresh-base 真实 Git/Runtime 红绿回归、父准入红绿、覆盖率和 pairing 自查证据;不声称所有分支100%或独立 Verifier PASS。

    长期记忆、匹配架构/API/OpenAPI、decision/changelog 和 canonical mirrors 已更新。未部署/重启现场、修改 OpenToday 状态或 binding、进行外部 provider 写入或付费模型调用;隔离协议验证不冒充现场/真实供应商模型验收。必读上下文包瘦身仍单独处理。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions