Close merged task cards and add autoclose wiring (task.sh close, post-merge hook) #16

Merged
weichen merged 6 commits from feature/card-autoclose-r1 into main 2026-09-30 07:21:41 +00:00
Owner

feature/card-autoclose-r1 任务卡

任务主记录:<PR 链接,task-finish 时填写>;状态:进行中;owner:weichen

基线与授权

  • 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 69fd335dea
  • 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-card-autoclose-r1(worktree);分支:feature/card-autoclose-r1
  • 授权与交付终点:用户指示"把 11 张已合入的回填归档,并针对这种情况完善规范和 rules 还有 hooks(增加 script,合入成功后自动清理)";2026-09-30 追加授权"执行这些,不要让人工来操作,人工只负责给你提案和审核"——Agent 自主创建并合入本 PR、执行合入后回收与钩子启用。终点 = PR 合入 + task-finish 回收 + 本任务卡经新机制自动闭合。未授权:改写历史、解除/变更分支保护、删除归档引用、发布版本(双钥匙边界不变)、跨仓 guidelines 内容变更(记为后续任务)、动 inbox-r2 在途任务的现场。

目标与非目标

  • 目标:① 回填 11 张已合入卡片(状态→已完成、主记录回填 PR 链接与合并 SHA、结果栏如实标注事后回填依据)并归档至 .task/archive/;② task.sh 新增 close 子命令——检测"分支已合入 origin/main 但卡片未闭合"的任务卡,自动回填+归档,变更经 feature/card-close-* 分支+PR 进 main(main 受保护,不直推);③ 新增 post-merge 钩子(仅主检出 main 分支触发)+ task-finish 收尾接线 + precheck 报告项;④ AGENTS.md 增补卡片闭合规则。
  • 非目标:不改子仓(modules/、deps/)、不动 gitlink;不改 guidelines 仓内容;不自动合入任何 PR(闭合 PR 仍由所有者合入);不处置 delivery-mechanism 卡中记录的历史偏差。

同步记录

节点 sync_base_sha tested_head_sha checked_at
启动 69fd335dea 69fd335dea 2026-09-30T07:02:09Z
同步前验收 69fd335dea beaefb7549 2026-09-30T07:13:03Z

结果与验证

  • 结果:① 11 张已合入卡片经 task.sh close --fold 狗粮运行回填(状态→已完成(回填)、主记录 PR 链接+merge SHA、追加闭合记录)并归档 .task/archive/(commit 6f6b670;首轮暴露 PR 号正则与 URL 模板两 bug,已修并修正归档内容,commit beaefb7);② task.sh close 子命令(按合并提交检测、pending 幂等防重复闭合分支、主检出→feature/card-close-* 分支+推送、--fold 并入当前任务 PR、GITEA_TOKEN 可选自动建 PR);③ precheck 新增 [cards] 欠账报告(跳过 pending);task-finish 收尾自动触发 close;新增 post-merge 钩子(仅主检出+main 的 merge 型 pull 触发,ff-only 不触发由前两者兜底);④ Makefile task-close 目标与 setup chmod;AGENTS.md 增补闭合规则。
  • 验证(synced head=beaefb7):
    • PASS 临时真实仓库正负例矩阵 33/33(bare origin+clone+Gitea 风格合并提交):precheck 欠账报告只报已合入未闭合卡(不报未合入/已完成/pending);close 树脏拒绝、任务分支无 --fold 拒绝;主检出 close 建分支推送且内容含 PR# 回填与合规提交主题;幂等重跑无欠账且不新建分支;--fold 归档落当前任务分支且不误闭本任务卡;post-merge 钩子 merge 型 pull 自动闭合、不阻断 pull、结束后回到 main;闭合 PR 合入后主检出卡片真正移入 archive 且已完成卡不动;worktree 内 merge 不触发钩子。
    • PASS 狗粮:真实 11 卡一次识别闭合(PR#1/3/5/7/8/9/10/11/12/14/15,merge SHA 见归档卡)。
    • PASS make test(core ok;backend 13 包 ok 含 server 4.08s;frontend 9/9;ui tsc+6/6;agent-command vet+tests);PASS make task-sync(sync_base=69fd335dea tested_head=beaefb7549)。
  • 影响与剩余项:仅 Dev 仓治理面(task.sh/hooks/Makefile/AGENTS.md/.task),无子仓与 gitlink 变更。剩余:① 需 make setup 重新 chmod 启用 post-merge 钩子(主检出);② guidelines 仓 standards 层的对应条目更新(跨仓,后续任务);③ close 的自动建 PR 需 GITEA_TOKEN,缺失时打印手工链接。
# feature/card-autoclose-r1 任务卡 任务主记录:<PR 链接,task-finish 时填写>;状态:进行中;owner:weichen ## 基线与授权 - 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 69fd335deac237f5291298cb06a50bf03d11add7 - 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-card-autoclose-r1(worktree);分支:feature/card-autoclose-r1 - 授权与交付终点:用户指示"把 11 张已合入的回填归档,并针对这种情况完善规范和 rules 还有 hooks(增加 script,合入成功后自动清理)";2026-09-30 追加授权"执行这些,不要让人工来操作,人工只负责给你提案和审核"——Agent 自主创建并合入本 PR、执行合入后回收与钩子启用。终点 = PR 合入 + task-finish 回收 + 本任务卡经新机制自动闭合。未授权:改写历史、解除/变更分支保护、删除归档引用、发布版本(双钥匙边界不变)、跨仓 guidelines 内容变更(记为后续任务)、动 inbox-r2 在途任务的现场。 ## 目标与非目标 - 目标:① 回填 11 张已合入卡片(状态→已完成、主记录回填 PR 链接与合并 SHA、结果栏如实标注事后回填依据)并归档至 `.task/archive/`;② task.sh 新增 `close` 子命令——检测"分支已合入 origin/main 但卡片未闭合"的任务卡,自动回填+归档,变更经 `feature/card-close-*` 分支+PR 进 main(main 受保护,不直推);③ 新增 post-merge 钩子(仅主检出 main 分支触发)+ task-finish 收尾接线 + precheck 报告项;④ AGENTS.md 增补卡片闭合规则。 - 非目标:不改子仓(modules/*、deps/*)、不动 gitlink;不改 guidelines 仓内容;不自动合入任何 PR(闭合 PR 仍由所有者合入);不处置 delivery-mechanism 卡中记录的历史偏差。 ## 同步记录 | 节点 | sync_base_sha | tested_head_sha | checked_at | |---|---|---|---| | 启动 | 69fd335deac237f5291298cb06a50bf03d11add7 | 69fd335deac237f5291298cb06a50bf03d11add7 | 2026-09-30T07:02:09Z | | 同步前验收 | 69fd335deac237f5291298cb06a50bf03d11add7 | beaefb75492bca6282163c208f18ff8c0ac01db0 | 2026-09-30T07:13:03Z | ## 结果与验证 - 结果:① 11 张已合入卡片经 `task.sh close --fold` 狗粮运行回填(状态→已完成(回填)、主记录 PR 链接+merge SHA、追加闭合记录)并归档 `.task/archive/`(commit 6f6b670;首轮暴露 PR 号正则与 URL 模板两 bug,已修并修正归档内容,commit beaefb7);② `task.sh close` 子命令(按合并提交检测、pending 幂等防重复闭合分支、主检出→`feature/card-close-*` 分支+推送、`--fold` 并入当前任务 PR、GITEA_TOKEN 可选自动建 PR);③ precheck 新增 `[cards]` 欠账报告(跳过 pending);task-finish 收尾自动触发 close;新增 post-merge 钩子(仅主检出+main 的 merge 型 pull 触发,ff-only 不触发由前两者兜底);④ Makefile `task-close` 目标与 setup chmod;AGENTS.md 增补闭合规则。 - 验证(synced head=beaefb7): - PASS 临时真实仓库正负例矩阵 33/33(bare origin+clone+Gitea 风格合并提交):precheck 欠账报告只报已合入未闭合卡(不报未合入/已完成/pending);close 树脏拒绝、任务分支无 --fold 拒绝;主检出 close 建分支推送且内容含 PR# 回填与合规提交主题;幂等重跑无欠账且不新建分支;--fold 归档落当前任务分支且不误闭本任务卡;post-merge 钩子 merge 型 pull 自动闭合、不阻断 pull、结束后回到 main;闭合 PR 合入后主检出卡片真正移入 archive 且已完成卡不动;worktree 内 merge 不触发钩子。 - PASS 狗粮:真实 11 卡一次识别闭合(PR#1/3/5/7/8/9/10/11/12/14/15,merge SHA 见归档卡)。 - PASS `make test`(core ok;backend 13 包 ok 含 server 4.08s;frontend 9/9;ui tsc+6/6;agent-command vet+tests);PASS `make task-sync`(sync_base=69fd335dea tested_head=beaefb7549)。 - 影响与剩余项:仅 Dev 仓治理面(task.sh/hooks/Makefile/AGENTS.md/.task),无子仓与 gitlink 变更。剩余:① 需 `make setup` 重新 chmod 启用 post-merge 钩子(主检出);② guidelines 仓 standards 层的对应条目更新(跨仓,后续任务);③ close 的自动建 PR 需 GITEA_TOKEN,缺失时打印手工链接。
weichen added 6 commits 2026-09-30 07:21:35 +00:00
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: delivery-mechanism.md(PR#unknown) feature-adopt-draft9.md(PR#unknown) feature-core-cards-commands-r1.md(PR#unknown) feature-gate-hardening.md(PR#unknown) feature-hardening-batch.md(PR#unknown) feature-pin-config-surface.md(PR#unknown) feature-pin-documents-lessons.md(PR#unknown) feature-tool-adaptation-standard.md(PR#unknown) feature-ui-foundation-r0.md(PR#unknown) feature-zcode-hooks.md(PR#unknown) fix-empty-list-json.md(PR#unknown) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: 11 merged branches had left their task cards open (bookkeeping debt found on 2026-09-30); closure was manual and never triggered, so card status rotted after each merge.
Evidence: dogfood run of `task.sh close --fold` closed and archived the 11 cards (previous commit); temp-repo matrix 33/33 PASS covering detection, pending-branch idempotence, dirty/no-fold refusals, post-merge auto-close on merge-type pulls, worktree guard, and the full lifecycle (closure PR merge archives cards on main).
Impact: scripts/task.sh (+close, precheck [cards] report, finish-tail trigger), scripts/hooks/post-merge (new), Makefile (+task-close target, setup chmod), AGENTS.md rule; archive fixes correct PR links missed by the first dogfood run; no module or gitlink change.
Refs: task card feature/card-autoclose-r1
Why: the completion claim must carry precheck/task-sync/test evidence per AGENTS.md before review.
Evidence: temp-repo matrix 33/33 PASS; dogfood closed 11 real cards; make test PASS (core ok, backend 13 pkgs ok, frontend 9/9, ui 6/6, agent-command ok); task-sync sync_base=69fd335dea tested_head=beaefb7549.
Impact: task card only.
Refs: task card feature/card-autoclose-r1
Why: the owner authorized the agent to create and merge this PR end to end (2026-09-30), and the goal section still said "chore branch" while the implementation uses feature/card-close-*.
Evidence: user instruction quoted verbatim in the authorization field; branch naming per task.sh close.
Impact: task card only.
Refs: task card feature/card-autoclose-r1
weichen merged commit e1bf68d414 into main 2026-09-30 07:21:41 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Dev#16