Why: PR #73 merged a branch whose worktree carried stale submodule
pointers, regressing modules/{backend,documents,frontend,ui} on main to
pre-#71 commits; documents also advanced with the file-preview proposal
(PR #23).
Evidence: submodule status now matches each module's main tip
(backend 239cf76, documents 5882448+, frontend fb219e0, ui efa6c69,
core fd44179 unchanged); make test combo verification green.
Impact: composed checkout sees the merged chat-order and proposal work
again; no source changes in this repo beyond pointers and the task card.
Refs: task feature/file-preview-proposal.
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
Why: the library now makes precedence, memory tiers, and lesson
mechanization explicit; the composition must pin the revision and register
how its layers map onto the new rules.
Evidence: guidelines PR#3 (ed2af3e) and documents PR#4 (2205138) merged;
make test on this branch per the gitlink rule.
Impact: gitlink advances; adoption registers the hierarchy/memory rows as
manual-with-existing-artifacts. No code change.
Refs: policy/adoption.md; docs/records/2026-09-30-history-migration-sha-map.md
Why: the pin-documents flow exposed guard divergence — precheck counted
submodule drift while task-start checked porcelain only, letting a task
start despite a BUSY verdict; and PR#8 overcorrected by treating
uninitialized (-) submodules as BUSY when they only block builds, not
writes.
Evidence: bash -n clean; precheck on this checkout prints tree line with
drift/uninit split and READY verdict; negative path exercised by the
real divergence that started this task.
Impact: precheck warns on uninitialized, BUSY only on +/U; task-start now
refuses on porcelain dirt and +/U drift, matching precheck.
Refs: PR#8; policy/tool-adaptation-matrix.md A1
Why: the two 2026-09-30 lesson entries merged into documents main; the
composition should consume them for future retrieval.
Evidence: documents PR#3 merged (2ec3e50); make test on this branch before
merge per the gitlink rule.
Impact: gitlink-only advance; no product code change.
Refs: docs/records/2026-09-30-lesson-*.md
Why: precheck missed uninitialized submodules (git submodule status '-'
prefix), and the branch protection configured today plus the second live
probe outcome must be recorded honestly in the matrices.
Evidence: platform negative: direct push to protected main rejected
(pre-receive hook declined, Logging-System probe); second write-guard probe
confirmed session-start config loading (no hook run in the pre-config
session log).
Impact: precheck sub_dirty now counts '-' prefixed entries; A3 registered
enforced at platform layer across 11 repos; zcode matrix pending-live
annotated with the loading-timing proof.
Refs: policy/tool-adaptation-matrix.md; policy/tool-adaptation-zcode.md
Why: zcode lacks a rules feature (AGENTS.md is the resident layer) but
supports PreToolUse hooks that can block Edit/Write before the write lands,
upgrading A1/A3 from commit-time to write-time enforcement; the two block
shapes (integration branch, detached submodule) mirror the real incidents.
Evidence: script-level suite 8/8 (N1-N3 blocks with exit 2 and remediation
hints, P1-P5 allows incl. fail-open degradation paths); config JSON valid;
client-side live-fire interception marked pending-live in the matrix.
Impact: .zcode/config.json enables the hook runner for this workspace;
.zcode/plans/ ignored (client state); no product code change.
Refs: Development-Guidelines 0.1.0-draft.8; policy/tool-adaptation-zcode.md
Why: git unconditionally refuses worktree remove when the tree contains
gitlinks (index-level check; deinit does not bypass it), so the PR#4 fix
path still failed on the second real task.
Evidence: after deinit the worktree was clean and submodule dirs empty, yet
remove refused; rm -rf + worktree prune is the documented workaround and
was proven manually on the empty-list task worktree.
Impact: task-finish now completes the recycle path automatically after its
merge verification; no guard weakened.
Refs: Agent-System-Dev PR#4; policy/tool-adaptation-matrix.md A5
Why: the library now defines requirement-level conformance for tool rules
and hooks (draft.8); the composition's existing gate mechanisms should be
honestly graded against A1-A7 rather than implicitly assumed compliant.
Evidence: matrix rows cite the 19/19 scratch suite negatives, the live data/
dirty-tree interception, and PR records; commit-msg python3 dependency
verified fail-closed by reading the hook's test path.
Impact: docs-only; guidelines gitlink advances to c9ab623 (draft.8); no
workflow or code change.
Refs: Development-Guidelines PR#2 (c9ab623); policy/adoption.md
Why: a running serve instance writes data/ into the working tree, which
trips the precheck SHARED_WORKSPACE_BUSY verdict for every later task.
Evidence: git status showed only untracked data/; runtime state is covered
by make clean and never meant for version control.
Impact: entry-doc only change; no tracked content altered.
Refs: task feature/tool-adaptation-standard
Why: git refuses to remove a worktree with initialized submodules; the first
real dogfood run of task-finish hit this on the empty-list fix task.
Evidence: the fix task's worktree recycled only after manual force-remove;
deinit-then-remove path exercised on the same state afterwards.
Impact: finish deinitializes submodules, removes, prunes, and deletes the
remote branch; unmerged-result guard unchanged.
Refs: .task/fix-empty-list-json.md
Why: the backend store List* functions encoded empty results as JSON null,
which crashed the frontend nav (.map on null) on any newly created project.
Evidence: backend go test all packages pass; store regression
TestEmptyListsSerializeAsEmptyArrays asserts [] for empty lists.
Impact: parent pins backend at the serialization fix plus the core-pin
build-blocker advance.
Refs: .task/fix-empty-list-json.md
Why: the nine submodule entry docs and the documents migration record merged
via their own PRs; the parent must pin the new combination and register the
adoption with honest enforcement levels.
Evidence: per-repo PR merges (9x entry-docs PR#1, documents PR#2) verified
via API; make test on this branch follows before merge.
Impact: gitlinks advance to post-migration, gate-adopted mains; policy/
adoption.md registers enforced (local hooks) vs advisory vs manual honestly.
Refs: ef89fc8; Development-Guidelines 0.1.0-draft.7
Why: agents skipped triggered reading and wrote into shared checkouts holding
other tasks' in-flight changes; the 2026-09-30 empty-list incident session
found 24 overlapping in-flight files only by accident at first write.
Evidence: positive/negative suite in a real scratch repo passed 19/19
(precheck READY/BUSY/SYNC_REQUIRED, start refuse/establish, hook main/badname/
longsubject refusals, sync checkpoint, finish recycle and abandon double-
confirm); the suite caught three real defects (pipefail empty-grep abort,
worktree gitdir COMMIT_EDITMSG resolution, message checks in the wrong hook
phase).
Impact: make setup enables pre-commit/commit-msg hooks; make precheck/task-
start/task-sync/task-finish provide the governed path; no existing workflow
removed. AGENTS.md carries the resident gate rules.
Refs: Development-Guidelines 0.1.0-draft.7; task card .task/delivery-mechanism.md
Why: the task gate workflows reference the new precheck trigger, task-card
template, workspace recycling rule, and history-migration exception, which
only exist as of Development-Guidelines 0.1.0-draft.7 (d9576ed).
Evidence: PR weichen/Development-Guidelines#1 merged into main (d9576ed);
gitlink materialized locally via submodule update.
Impact: consumer repo now pins the draft.7 behavior revision; no code change.
Refs: task card .task/delivery-mechanism.md
Details (original message):
Advance backend gitlink (intentgate integration a671d60) with its new deps pins; example plugin intent asset uses the overlay matcher format.