Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-command-bus-r1.md(PR#21) — 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: T3 submodule PRs merged (backend #10, ui #7, frontend #6, documents #11) and the Dev combo must pin the verified combination.
Evidence: combo make test PASS at pinned heads (backend 15 pkgs incl. cmdbuf; ui 18/18; frontend 9/9); record at documents docs/records/2026-09-30-t3-command-bus-verification.md (PR#11).
Impact: gitlinks backend=0f74026 frontend=6a2b21a ui=76f976d documents=<PR#11 head>; task card backfilled; no Dev-side code change.
Refs: task card feature/command-bus-r1; proposal T3
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-inbox-r2.md(PR#19) — 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: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-card-autoclose-r1.md(PR#16) — 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: the hook landed as 100644, so `make setup` chmod left a mode-only diff that makes the main checkout permanently dirty and blocks task.sh close (dirty-tree guard).
Evidence: git status showed " M scripts/hooks/post-merge" with 0 insertions/deletions after make setup; task-finish tail reported the dirty-tree refusal.
Impact: mode 100644 -> 100755 only; no content change.
Refs: task card feature/card-autoclose-r1 (PR #16 follow-up)
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
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: 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: Backend merged its consumer-adaptation PR (nested core/agent-command
pins); the Dev combo must pin that merge so the tested combination is the
publishable one.
Evidence: full make test re-run at this exact combo (see task card evidence).
Impact: gitlink only.
Refs: modules/documents docs/records/2026-09-30-t1-core-cards-commands-verification.md
Why: Provider repos merged for T1 (core PR#2, agent-command PR#2, frontend
PR#3, ui PR#3, documents PR#9); gitlinks pinned to those mains. The
task-finish guard prevents a repeat of the T0 incident where running
finish from the main checkout deleted it (scripts/task.sh treated $PWD as
the worktree to remove).
Evidence: make test green on the pinned combo — core, backend 13 pkgs,
frontend 9, ui 6, agent-command (vet + tests incl. conformance); make build
produces the binary; combo version string now includes agentcmd SHA.
Impact: combo grows its version traceability; AGENTS.md documents the
worktree-cwd requirement for finish.
Refs: modules/documents docs/records/2026-09-30-t1-core-cards-commands-verification.md
Why: The delivery gate requires the task card to carry the acceptance evidence
(PASS results for make test / make build / zero-behavior CSS check) and the
PR link before requesting review.
Evidence: tested_head c9e8e29; gitlink combo recorded; provider PR list
referenced for the cross-repo five-step trail.
Impact: Documentation only; PR #14 updated by push.
Refs: modules/documents docs/proposals/2026-09-30-ui-inbox-command-workspace.md
Why: Foundation task T0 of the UI/interaction base (proposal 2026-09-30,
D25-D33): add the new UI component library and command-bus ecosystem repos,
extend build/test/pin orchestration to twelve submodules.
Evidence: make test green on the pinned combo (core + backend 13 pkgs +
frontend 9 + ui 6 tests); make build produces bin/agent-system with combo
version string including ui; make contracts now generates to frontend and ui
with submodules staying clean; renderer/tokens migration verified
CSS-rule-identical (zero behavior change).
Impact: New modules/ui and deps/agent-command gitlinks; frontend consumes ui
via source alias; backend vendors agent-command (replace only, no import
yet); follows provider-first merges (ui PR#1/#2, agent-command PR#1,
documents PR#8, frontend PR#2, backend PR#6).
Refs: modules/documents docs/proposals/2026-09-30-ui-inbox-command-workspace.md
Why: the startup configuration surface (file/env/CLI layers, config
explain, instance examples) merged in both component repos; the composition
must consume the reviewed combination.
Evidence: backend PR#4 (1e62188, 12 packages pass, explain live-checked)
and documents PR#6 (84b3421); make test on this branch per the gitlink rule.
Impact: gitlink-only advance; also picks up the nested core-pin build-blocker
fix (019617e -> 4ee1979) that makes fresh backend clones materializable.
Refs: docs/proposals/2026-09-30-configuration-surface.md
Why: the job token only authorizes the event repository; sibling private
submodules (Development-Guidelines et al.) returned 404 on the first run.
Evidence: run 194 log — clone of deps/development-guidelines failed with
repository not found despite the insteadOf rewrite.
Impact: ci.yaml reads secrets.SUBMODULE_TOKEN (stored via API, never in
tree or chat); no other change.
Refs: run 194; PR#11
Why: PR test evidence depended on the agent's word (single point); the
running binary could not answer what combination it was built from; and
irreversible operations lacked an explicit agent-stops-here boundary.
Evidence: Gitea runner online (home-runner, ubuntu-latest+docker); make
version prints describe+component SHAs; two-key line maps to baseline hard
boundary 1. CI first run observed on this PR before merge (see Actions tab).
Impact: .gitea/workflows/ci.yaml runs make test + make build on PR/push;
Makefile injects main.version (make version / agent-system version);
AGENTS.md and adoption register the two-key rule. No product code change.
Refs: policy/adoption.md; release-operations requirements