diff --git a/.task/archive/feature-conversation-handoff.md b/.task/archive/feature-conversation-handoff.md new file mode 100644 index 00000000..b10ac9ba --- /dev/null +++ b/.task/archive/feature-conversation-handoff.md @@ -0,0 +1,413 @@ +# feature/conversation-handoff 任务卡 + +任务主记录:PR #651 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/651;状态:已完成(合入前闭合);owner:weichen + +## 基线与授权 + +- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= f97917032d143188bc7faf665aff612d9814af4e +- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff(worktree);分支:feature/conversation-handoff +- 分支类型:standalone;root_target:main;immediate_target:main;accepting_requirements:false +- 需求分流:verdict=NEW;selected_initiative=无;requirement_sha256=19ad0cf4b00048ede29774b079a28c2d8e417b9363c9cbe266ce99852b2594f9;triage_receipt=/tmp/task-handoff-triage-20261020.json;receipt_sha256=2ace0e14daaab36c1418ac3ce392cdbbf6e43722ddc86663b4939c8d85f9a930 + +- 授权与交付终点:更新本仓任务交付规范,规定每轮结束时最终回复附可续作 handoff;按现行门禁完成 Review、PR、CI、合入与安全收口。不得修改共享规范子模块或增加自动化。 +- 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进) +- 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md) +- 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入) +- 人工决策点:仅限目标/范围/验收变更、重大取舍、高后果操作或无法自动判定的业务验收 +- 当前阶段:最终验证与合入;当前增量:I1(对话收尾交接块规范) +- 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位) + +## 目标与非目标 + +在 `policy/delivery.md` 定义最终回复 handoff 的最小字段、证据边界和无续办状态时的处理,并在 `AGENTS.md` 增加强制入口。共享 Development-Guidelines、模板、schema、自动化和测试不是本次范围。 + +## Agent 实施收据 + +路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。 + +| 单元 ID | 预期范围 | 配置摘要 | 角色 | 候选顺序 | attempt | CLI/模型 | 终态 | transport | fallback | 源码外收据路径 | +|---|---|---|---|---|---|---|---|---|---|---| +| conversation-handoff-rules | `AGENTS.md`, `policy/delivery.md` | 701aa8b8 | implementation | cursor, antigravity, pi | 1 | Cursor / auto | success | success (`a98f095`) | false | `/tmp/task-handoff-implementation-20261020.json` | + +## 关联方向与规划 + +- 适用状态:待核对(无适用规划时说明原因) +- 主记录路径/版本:待核对(路径按仓库根目录定位,归档后不变;只引用唯一正文) +- 对应里程碑:待核对 + +## 需求分析 + +| ID | 描述 | 项目符合度及依据 | 优先级 | 验收条件 | 依赖 | 结论 | +|---|---|---|---|---|---|---| +| R1 | 每轮用户任务结束时提供可在上下文清理后恢复工作的 handoff | 与现有任务卡为状态权威、阶段 handoff 落盘规则一致;对话 handoff 仅作恢复摘要 | 必须 | 最终回复末尾有自包含续作要点,未发生的信息不编造;无仓库与续办状态时允许一行明确不适用 | 无 | 已实现;待 CI 准入 | + +## 方案与计划 + +- 方案引用:待填写(含对象版本) +- 实施计划引用:待填写(含增量与需求 ID) +- 测试计划引用:待填写(含需求 ID 与验收条件) + +## 阶段记录 + +| 阶段 | 对象版本 | 状态 | 决策/执行者 | 时间 | 依据 | +|---|---|---|---|---|---| +| 需求拆解/评估 | f97917032d143188bc7faf665aff612d9814af4e | 完成 | 主模型;NEW,与现有 RDM initiative 不相关 | 2026-10-20 | triage receipt `/tmp/task-handoff-triage-20261020.json` | +| 方案/实施计划 | a98f095cef5ede016440d92060fa62db03b7318b | 完成 | 主模型;仅更新规范权威与入口摘要 | 2026-10-20 | 本卡目标与范围 | +| 实施与自检 | a98f095cef5ede016440d92060fa62db03b7318b | 完成 | Cursor CLI;transport 成功,host 检查 | 2026-10-20 | `/tmp/task-handoff-implementation-20261020.json`;`git show --check --format= HEAD`;`make agent-exec-validate` | +| 正式测试与验收 | 0dcaa430e0d724752aef1f55f120f419eeda9ad4 | 阻塞 | 文档直接检查通过;代码测试不适用 | 2026-10-20 | GATE CI run #4403 的 `test-pg` 失败,日志为 `TestArtifactFacadeCard` 的 anchorMessageId 不匹配;`svc-realcombo` 通过,`test` 当时 pending | +| 代码 Review | 0dcaa430e0d724752aef1f55f120f419eeda9ad4 | 通过 | 主模型审阅规范差异及链接 | 2026-10-20 | 仅涉及 `AGENTS.md`、`policy/delivery.md`;无规范缺陷 | +| 合入 | 待定 | 待执行 | agent | — | — | +| 合入核验与收口 | 待定 | 待执行 | host | — | — | + +## 探索试验与迭代 + +| 增量/试验 | 假设 | 范围 | 判断和停止条件 | 授权/决策依据 | 结果 | 变更影响 | 需重审补测 | +|---|---|---|---|---|---|---|---| +| 待定义 | — | — | — | 待核对 | NOT_RUN | 待评估 | 待评估 | + +## 同步记录 + +| 节点 | sync_base_sha | tested_head_sha | checked_at | +|---|---|---|---| +| 启动 | f97917032d143188bc7faf665aff612d9814af4e | f97917032d143188bc7faf665aff612d9814af4e | 2026-10-20T07:09:18Z | + +## 证据(Evidence) + + +| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) | +|---|---|---|---|---|---| + +## 交付调度 + +- 调度状态:持有最终窗口;调度记录:#518 comment 8266 +- entry_id:mq-dev-20261020-conversation-handoff-01;attempt_id:final-01;窗口执行者:host / weichen +- 固定候选:无(base/head、组件与相关配置引用实际尝试) +- 调度依据:policy/delivery.md#合入调度 +- 固定后证据:源码外 RECEIPT;实际结果后按授权原样导入和闭合 + +## 结果与验证 + +- 结果:增加最终回复 handoff 规范及 AGENTS 强制指针;与任务卡/持久阶段交接权威边界一致。 +- 验证:旧候选的 GATE 失败保留为历史;当前已同步权威 main 17f8bc06c110014b9101e7a33729d9f5445bd123,文档范围/字段/链接/现行规则保留、agent-exec validate 和递归组合检查均 SELF PASS(下方原始 evidence)。最终 HEAD 的 test/test-pg/svc-realcombo GATE 待运行。 +- 影响与剩余项:规范变更已就绪;Backend 修复 #226 已合入但 Dev 组合采用由独立 #653 承担。本 PR 仅规范与任务记录,须最终 HEAD 三项 CI 全绿后合入。 + +## 规划进展与下一步 + +- 本次推进/剩余:完成已授权的对话 handoff 规范;不属长期业务方案,剩余为当前候选 GATE、合入核验和安全收口。 +- 首选下一任务:完成本 PR 当前交付,无新增任务;新版运行时组合已有 PR #653,继续由原任务负责。 +- 推荐依据:待填写 +- 前置条件/待确认:待核对 +- 预期产物/验收条件:待定义 +- 重复任务核对:待核对(已有/在途任务、PR 与规划记录) +- 启动授权:未授权(建议不自动启动新任务,仍须明确授权) + +## 合入与清理 + +- Review 记录:PASS(主模型;head `0dcaa430e0d724752aef1f55f120f419eeda9ad4`;规范范围与链接审阅通过) +- 冲突记录:NOT_RUN(最新目标同步、冲突处置、组合兼容核验及复审/补测) +- CI 记录:FAIL(GATE;head `0dcaa430e0d724752aef1f55f120f419eeda9ad4`;run #4403;`test-pg` 的 `TestArtifactFacadeCard` 失败,`svc-realcombo` 通过,`test` 为 pending;[job 7138](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/4403/jobs/7138)) +- 合入记录:NOT_RUN(CI 未通过,未合入) +- 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置) + + +```json +{ + "summary_schema": 1, + "source": "SELF", + "timestamp": "2026-10-20T07:08:07.377183+00:00", + "command": "make precheck", + "exit_code": 0, + "cwd": "/home/weichen/projects/Agent-System-Dev", + "before_head": "f97917032d143188bc7faf665aff612d9814af4e", + "after_head": "f97917032d143188bc7faf665aff612d9814af4e", + "branch": "main", + "target_branch": "main", + "target_head": "f97917032d143188bc7faf665aff612d9814af4e", + "root_target": "main", + "immediate_target": "main", + "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": [ + "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev'", + "[repo] branch=main head=f97917032d", + "[remote] origin/main=f97917032d ahead=0 behind=0", + "[tree] clean submodules_drift=0 uninit=0", + "[worktrees] linked=8", + "[initiatives] local cards (not authoritative): none", + "[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)", + "[facts] policy/facts.md 6 条事实均在有效期内", + "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md", + "[R0] f97917032d(完整:f97917032d143188bc7faf665aff612d9814af4e)", + "[worktree] before-sync: recursive component checks passed", + "[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch", + "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev'" + ], + "output_sha256": "601e28fd5627afdf978a470ef2b37265fee4ff28520a4668dd8e6a19ce5553e6", + "receipt_sha256": "237e2888ced51370c2ca6ba41989e490f6e00c72bdbb74d008a15725efcaff65", + "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/237e2888ced51370c2ca6ba41989e490f6e00c72bdbb74d008a15725efcaff65.json" +} +``` + +## 闭合记录(合入前折叠) + +- 本卡在 PR #651(https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/651)合入前闭合并归档,随该 PR 一同合入。 +- 该 PR 的合并提交即本任务的落地记录。 +- 合入后无需回填,也无需单独的闭合 PR。 + +## 2026-10-20 恢复与 fail-stop 对账 + +- 用户再次明确“继续”,目标仍为 PR #651 通过必要验证并合入;已授权修复阻塞合入的 Backend 测试,禁止 host 代写。 +- 原 repair run `290c8b13f4a4a9e5d67df066754ab3fd` 的终态仍为 `scope-expansion`,没有 transport,不导入任何产物;原隔离现场保留。 +- 已只读检查唯一未跟踪诊断文件 `internal/server/zz_diag_tmp_test.go` 与实际工具事件;未发现仓库正式代码、引用或远端修改。机器本地诊断产物位于 `/tmp/ciflake-943183` 与 `~/.cache/ciflake-943183-tmp`,原执行器记录的进程及该现场写者已退出。 +- 原包把 `internal/server/**` 当作目录通配,但执行器仅按精确路径或目录前缀匹配;新单元须使用明确文件清单,不续跑原尝试、不修改执行器。 +- Backend 已登记任务工作区已保留并移至 `/home/weichen/projects/Agent-System-Backend-wt-fix-ci-pg-flaky-tests`,修复 Git 与唯一已初始化子模块的路径元数据;Dev 工作树的未跟踪嵌套工作区阻塞已消除。 +- 启动检查原始 SELF 收据:`/tmp/pr651-resume-20261020-a1.json`(SHARED_WORKSPACE_BUSY)、`/tmp/pr651-resume-20261020-a2.json`(任务卡已归档,拒绝 LOCAL_READY);不宣称通过。恢复活动卡后重新检查。 +- GATE 重新只读核验:PR #651 head `19566bfde79313dfaea31ff6f5ca918f820c1606` 仍开放;run 4404 的 test/svc-realcombo success,test-pg failure;日志 `/tmp/pr651-job7141.log`。目标 main 当前 `f1866dc3bb4537ac6446fdd26e696cb636b543ef`;#648 持有交付窗口,本任务先局部排障。 + + +```json +{ + "summary_schema": 1, + "source": "SELF", + "timestamp": "2026-10-20T08:46:38.272183+00:00", + "command": "make precheck", + "exit_code": 0, + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff", + "before_head": "f9884db84b7fb5752d50b641f09adb75303e327c", + "after_head": "f9884db84b7fb5752d50b641f09adb75303e327c", + "branch": "feature/conversation-handoff", + "target_branch": "main", + "target_head": "adbef2f49c6c252a09449496afbdb6685201993b", + "root_target": "main", + "immediate_target": "main", + "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": [ + "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff'", + "[repo] branch=feature/conversation-handoff head=f9884db84b", + "[remote] origin/main=adbef2f49c ahead=6 behind=26", + "[tree] clean submodules_drift=0 uninit=0", + "[worktrees] linked=6", + "[initiatives] local cards (not authoritative): none", + "[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)", + "[facts] policy/facts.md 6 条事实均在有效期内", + "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md", + "[target] adbef2f49c6c252a09449496afbdb6685201993b(observed; task initial baseline is reported separately)", + "[task-state] registered=/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff initial_base=f97917032d143188bc7faf665aff612d9814af4e", + "[verdict] LOCAL_READY — existing task may continue authorized local work; final delivery still requires latest-target sync and checks", + "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff'" + ], + "output_sha256": "be0eda106b0ed68d8f108a607b83c5231d1c34c744675a83995638fa5e39aa43", + "receipt_sha256": "12bb48774c59da7635b3b0cf1ef81465b5fe29475baaf880c72a1a82a0649f46", + "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/12bb48774c59da7635b3b0cf1ef81465b5fe29475baaf880c72a1a82a0649f46.json" +} +``` + +- 局部恢复已通过并导入:`/tmp/pr651-resume-20261020-a6.json`(LOCAL_READY,SELF);正式交付需新鲜同步与固定 HEAD CI。 +- 新 repair 单元:`ci-pg-async-completion-r2`;固定 Backend base `e927694818f3c0b79ec663d70ab2aa9d47d8fd8f`;工作包 `/tmp/pr651-repair-unit-r2.json`;收据目标 `/tmp/pr651-repair-r2.json`;运行中,尚无成功产物。 + + +```json +{ + "summary_schema": 1, + "source": "SELF", + "timestamp": "2026-10-20T09:09:46.106201+00:00", + "command": "cd /home/weichen/projects/Agent-System-Backend-wt-fix-ci-pg-flaky-tests && git rev-parse HEAD && GOWORK=off go vet ./... && GOWORK=off go test -count=1 ./...", + "exit_code": 0, + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff", + "before_head": "4544cd94f8ece209b32aec885a410e5eeaef968e", + "after_head": "4544cd94f8ece209b32aec885a410e5eeaef968e", + "branch": "feature/conversation-handoff", + "target_branch": "main", + "target_head": "17f8bc06c110014b9101e7a33729d9f5445bd123", + "root_target": "main", + "immediate_target": "main", + "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": [ + "ok \tagent-system-backend/internal/runtime\t1.834s", + "ok \tagent-system-backend/internal/server\t28.474s", + "ok \tagent-system-backend/internal/settings\t0.211s", + "ok \tagent-system-backend/internal/skills\t1.741s", + "ok \tagent-system-backend/internal/squadadapter\t0.158s", + "ok \tagent-system-backend/internal/store\t12.820s", + "ok \tagent-system-backend/internal/surfacesvc\t0.399s", + "ok \tagent-system-backend/internal/tools\t13.619s", + "ok \tagent-system-backend/internal/vision\t0.003s", + "ok \tagent-system-backend/internal/wfcompile\t0.050s", + "ok \tagent-system-backend/internal/workflow\t0.002s", + "ok \tagent-system-backend/pkg/extension\t0.004s", + "ok \tagent-system-backend/pkg/extension/link\t0.006s", + "ok \tagent-system-backend/pkg/identity\t0.095s", + "? \tagent-system-backend/web\t[no test files]" + ], + "output_sha256": "08769f0589e95d0b7878ce3551b931aceae5f80ad4916cc5f64bfd53ae5cfbb0", + "receipt_sha256": "d0a0fa46d65618338b88d99c72e53402449454c740fe7399d6354b7a80f5d084", + "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/d0a0fa46d65618338b88d99c72e53402449454c740fe7399d6354b7a80f5d084.json" +} +``` + + +```json +{ + "summary_schema": 1, + "source": "SELF", + "timestamp": "2026-10-20T09:13:47.514647+00:00", + "command": "cd /home/weichen/projects/Agent-System-Backend-wt-fix-ci-pg-flaky-tests && git rev-parse HEAD && git diff --check origin/main HEAD && GOWORK=off go test ./internal/server ./internal/runmgr -run \"^(TestArtifactFacadeCard|TestMockCardflowFullLoop|TestMockCardflowStreamLoop|TestBackground.*|TestProjectEvents.*|TestUnregisteredProjectEventsRetainLegacyReads)$\" -count=1", + "exit_code": 0, + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff", + "before_head": "4544cd94f8ece209b32aec885a410e5eeaef968e", + "after_head": "4544cd94f8ece209b32aec885a410e5eeaef968e", + "branch": "feature/conversation-handoff", + "target_branch": "main", + "target_head": "17f8bc06c110014b9101e7a33729d9f5445bd123", + "root_target": "main", + "immediate_target": "main", + "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": [ + "910d8e5fd20747eebc6e53b5fc0118185cb53765", + "ok \tagent-system-backend/internal/server\t6.436s", + "ok \tagent-system-backend/internal/runmgr\t0.495s" + ], + "output_sha256": "3015a2c860e2066174d3f89da874b63b403192d9aa870b0a3fa4e238f1db9e24", + "receipt_sha256": "5d2035b4cc2d543ec86a9fa19b93ed143ff6a637ab275a328827ad5ba02e7b56", + "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/5d2035b4cc2d543ec86a9fa19b93ed143ff6a637ab275a328827ad5ba02e7b56.json" +} +``` + +## Backend 修复结果与本 PR 最终范围 + +- repair r2 已通过 completed/transport:2ee469011e66b6bedcf6e9d87c8b1c026f7a8cef,仅三个测试文件;主模型审阅与独立重放通过。 +- Backend PR #226 已合入 508288fbed318ec808b1da1145417d062f9e0ce2;精确候选 910d8e5fd20747eebc6e53b5fc0118185cb53765 的 ci/vet-and-test、governance 全部 GATE success;来源 /tmp/pr651-backend-gate.json 与 /tmp/pr651-backend-merged.json。 +- 新版 Backend 同时包含尚待 Dev 组合采用的 O2 依赖,已有独立 PR #653;本规范 PR 不推进 gitlink,以免提前采用另一任务的运行时组合。#651 在最新 main 上重新验证,Backend 修复的已合入与 Dev 已采用分别记录。 +- 交付窗口 mq-dev-20261020-conversation-handoff-01 已在 #518 领取;此前 #652 已释放。当前需 task-sync、闭合任务卡、固定候选并等待三项 GATE。 +| 同步(记录前对象) | 17f8bc06c110014b9101e7a33729d9f5445bd123 | d0150787e2ba7fec94575e42c9bea2f945418c71 | 2026-10-20T09:20:53Z | + + +```json +{ + "summary_schema": 1, + "source": "SELF", + "timestamp": "2026-10-20T09:20:09.212113+00:00", + "command": "make task-sync", + "exit_code": 0, + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff", + "before_head": "0dd24cafc6024d5854957ff8f5b6ecb2c65d3c72", + "after_head": "11245d172c6841a17696a041889b8dbc4d8807a7", + "branch": "feature/conversation-handoff", + "target_branch": "main", + "target_head": "17f8bc06c110014b9101e7a33729d9f5445bd123", + "root_target": "main", + "immediate_target": "main", + "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": [ + " create mode 100644 .task/archive/feature-fast-slow-o2-i1-agent-native.md", + " create mode 100644 .task/archive/feature-fast-slow-o2-i2-backend.md", + " create mode 100644 docs/superpowers/specs/2026-10-20-fast-slow-o2-i1-review.md", + " create mode 100644 docs/superpowers/specs/2026-10-20-fast-slow-o2-i2-review.md", + "[worktree] before-update: recursive component checks passed", + "[worktree] materialize: recursive component checks passed", + "[worktree] after-sync: recursive component checks passed", + "admit: ok", + "[evidence] WARN JSON receipt line 113: recorded HEAD predates non-card changes ——关键检查须重跑并以 make evidence 重新写入", + "[evidence] WARN JSON receipt line 168: recorded HEAD predates non-card changes ——关键检查须重跑并以 make evidence 重新写入", + "[evidence] WARN JSON receipt line 210: recorded HEAD predates non-card changes ——关键检查须重跑并以 make evidence 重新写入", + "[evidence] WARN JSON receipt line 251: recorded HEAD predates non-card changes ——关键检查须重跑并以 make evidence 重新写入", + "[synced] sync_base=17f8bc06c110014b9101e7a33729d9f5445bd123 tested_head=11245d172c6841a17696a041889b8dbc4d8807a7 checked_at=2026-10-20T09:20:53Z changed=1 sync_target=main", + "[next] 跑正式验收(make test 等),证据写入任务卡", + "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff'" + ], + "output_sha256": "447fa8d3b023bd473ca8076ad32b77ac406c86f6ff097e032b1c602e7a4649c6", + "receipt_sha256": "faa7ddd69578d19c3c5280c5633868612431065be8ad6d74c37f15eca7642427", + "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/faa7ddd69578d19c3c5280c5633868612431065be8ad6d74c37f15eca7642427.json" +} +``` + + +```json +{ + "summary_schema": 1, + "source": "SELF", + "timestamp": "2026-10-20T09:21:27.020003+00:00", + "command": "python3 /tmp/pr651-doc-check.py && make agent-exec-validate && make test-worktree", + "exit_code": 0, + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff", + "before_head": "11245d172c6841a17696a041889b8dbc4d8807a7", + "after_head": "11245d172c6841a17696a041889b8dbc4d8807a7", + "branch": "feature/conversation-handoff", + "target_branch": "main", + "target_head": "17f8bc06c110014b9101e7a33729d9f5445bd123", + "root_target": "main", + "immediate_target": "main", + "before_tracked_diff_sha256": "56ecb85dcdac1667ad1f575d1021a6f5306fabf593cfa8326465e9997f56c62e", + "after_tracked_diff_sha256": "56ecb85dcdac1667ad1f575d1021a6f5306fabf593cfa8326465e9997f56c62e", + "output_tail": [ + "tested Dev HEAD 11245d172c6841a17696a041889b8dbc4d8807a7", + "PASS handoff fields, authoritative links, document scope and preservation of current main policies", + "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff'", + "scripts/agent-exec validate --repo .", + "validate: ok", + "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff'", + "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff'", + "python3 scripts/check-worktree.py verify", + "[worktree] verify: recursive component checks passed", + "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff'" + ], + "output_sha256": "e7627921f53b21804805a831022ddae38dae1b31a328efabd2ad4db6a9329638", + "receipt_sha256": "3f45ddbd4927efd7848281e5575c71ad8b5b411584650f5440cd9327e0c08ace", + "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/3f45ddbd4927efd7848281e5575c71ad8b5b411584650f5440cd9327e0c08ace.json" +} +``` + +## 最终对象审阅 + +- host Review 对同步后 11245d172c6841a17696a041889b8dbc4d8807a7 完成:相对 origin/main 的业务差异只有 AGENTS.md 一行与 policy/delivery.md 新增 22 行,另有本任务记录;现行 AGENT-EXECUTION.md 与其它 policy 无回退。 +- 需求 R1 的七项 handoff 字段、无续办例外、证据权威边界和入口链接均直接复核通过。文档没有新增平台功能,不制造业务测试。真实模型行为前后量化 NOT_RUN;当前规范交付以可审条款、链接和 GATE 为依据,不声称完成行为评测。 +- main 同步原始输出、文档检查与递归组合输出均由 make evidence 原样写入本卡。最终候选固定后只保存在源码外记录,避免为回填 CI 再改变 HEAD。 + + +```json +{ + "summary_schema": 1, + "source": "SELF", + "timestamp": "2026-10-20T09:23:34.774230+00:00", + "command": "make precheck", + "exit_code": 0, + "cwd": "/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff", + "before_head": "2aad4bc2acf0cf7fb29ce5df604bcaff83c054bd", + "after_head": "2aad4bc2acf0cf7fb29ce5df604bcaff83c054bd", + "branch": "feature/conversation-handoff", + "target_branch": "main", + "target_head": "17f8bc06c110014b9101e7a33729d9f5445bd123", + "root_target": "main", + "immediate_target": "main", + "before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": [ + "make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff'", + "[repo] branch=feature/conversation-handoff head=2aad4bc2ac", + "[remote] origin/main=17f8bc06c1 ahead=11 behind=0", + "[tree] clean submodules_drift=0 uninit=0", + "[worktrees] linked=6", + "[initiatives] local cards (not authoritative): none", + "[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)", + "[facts] policy/facts.md 6 条事实均在有效期内", + "[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md", + "[R0] 17f8bc06c1(完整:17f8bc06c110014b9101e7a33729d9f5445bd123)", + "[worktree] before-sync: recursive component checks passed", + "[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch", + "make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev-wt-feature-conversation-handoff'" + ], + "output_sha256": "df04e4a972fd4f2eec24c391d8892c85698ca0f00fe9950df3d4b91c27df48a2", + "receipt_sha256": "f676ac17f42a3634b98cc3287cb7f891df70b5361970c14c4bd3dcd77a6290fa", + "receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/f676ac17f42a3634b98cc3287cb7f891df70b5361970c14c4bd3dcd77a6290fa.json" +} +``` + +## 闭合记录(合入前折叠) + +- 本卡在 PR #651(https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/651)合入前闭合并归档,随该 PR 一同合入。 +- 该 PR 的合并提交即本任务的落地记录。 +- 合入后无需回填,也无需单独的闭合 PR。 diff --git a/AGENTS.md b/AGENTS.md index 5dbbe54c..74be6f2b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -44,6 +44,7 @@ - 智能体完成 Review、解决冲突并确认当前 HEAD 必需 CI 通过后执行合入,无需另请人工操作。 - 合入后仅在已登记任务 worktree 根目录、确认所有写者退出后回收;父子仓改动与未跟踪/ignored 唯一文件先保存或处置,删除被拒时保留现场,禁止强删兜底。 - 放弃未合入工作用 `make task-finish ABANDON="--abandon <原因>"` 并记录原因,不豁免现场保护。 +- 每次结束用户任务,最终回复末尾附简短自包含的交接块,供清空上下文后续办;它只是摘要,不替代任务卡、持久交接或证据。无仓库变更也无续办状态时,写一行明确的“不适用”。字段与细则见 [对话收尾交接块](policy/delivery.md#对话收尾交接块)。 - 首次克隆后运行 `make setup` 启用本地钩子;治理脚本改动须运行 `make test-governance`(见 [持续回归](policy/governance.md#持续回归))。 - 命令与细则:[启动与恢复](policy/governance.md#启动与恢复)、[回收](policy/governance.md#回收)、[两级分支与分流](policy/delivery.md#两级分支交付模型与分流检查)、[分级门禁](policy/delivery.md#层级任务通道与分级门禁)、[合入调度](policy/delivery.md#合入调度)、[Review 与合入](policy/delivery.md#智能体-review-与-pr-合入)。 diff --git a/policy/delivery.md b/policy/delivery.md index b085efba..abf76bdd 100644 --- a/policy/delivery.md +++ b/policy/delivery.md @@ -462,3 +462,25 @@ post-merge 默认只提示,不因 pull 或 merge 自动提交、推送或创 中断或交接时记录当前有效版本、批准范围、未决假设、最新试验结论、剩余事项及下一动作。 恢复后核对现场和授权,从最早未满足的环节续办;不重做仍有效的工作,不省略失效环节。 + +### 对话收尾交接块 + +每次结束用户任务时,最终对话回复的末尾都附一个简短、自包含的交接块,让对话上下文被清空后, +新会话只读这一块和其中的链接就能续办。交接块只是对话层的摘要:权威仍然是任务卡、持久阶段交接 +(见[有界单元包、上下文与阶段交接](#有界单元包上下文与阶段交接))和 evidence 记录。交接块不替代 +这些记录或证据,不得把仅写在回复里的内容声称为已记录、已验证,不手抄命令输出,二者不一致时以 +任务记录为准。 + +交接块只写续办所需的最少字段,没有的内容不编造: + +- **目标与授权范围**:本次目标、已授权的动作与写入对象、交付终点。 +- **当前状态**:已完成、进行中、阻塞或放弃;有仓库时写仓库、分支、HEAD SHA,以及 PR 和任务卡路径。 +- **关键决定**:影响后续工作的取舍及其依据。 +- **变更文件**:路径列表,或写明无变更。 +- **验证与证据状态**:执行过的检查及结果,标注 `SELF`/`GATE`/`REPLAY`,并指向任务卡里的 evidence + 记录;没有执行的写 `NOT_RUN`,无法复核的写 `[未经证实]`。 +- **未决事项**:阻塞、待决策点、已登记的非阻塞项。 +- **下一动作**:一条明确的下一步,或明确写出“已完成,无后续”。 + +没有仓库变更、也没有续办状态的工作(例如纯问答或只读解释),只写一行明确的不适用交接,例如 +`交接:不适用(无仓库变更、无续办状态)`,不为凑齐字段而填充内容。