Merge main into feat/docs-reconcile; defer to main on two overlapping fixes
main advanced 13 commits while this documentation audit ran — the location-override work was merged into the outer repo — and it independently fixed two of the audit's findings. Without this merge the branch would have REVERTED them, which is the worst outcome for a cleanup pass because it arrives disguised as an improvement. Both conflicts resolved in main's favour; main's wording was better informed: - CLAUDE.md, the single-map-path rule: main's carve-out (829325c) states the exception as its own top-level bullet, names MAP_STYLE as the one shared thing, and spells out both prohibitions ("do not fold it into initEntryMap", "do not add a third path"). Taken verbatim over the version drafted here. - 2026-07-23-post-form-location-override.md: main (a517331) had already set the status to Complete, with far richer detail — the multi-agent review findings, the green-run numbers, the DEL4 regression still open, and the merge SHAs. Taken in full; the audit's claim that the status "lagged" was dropped, since it was true only of this branch's older branch point. Submodule pin: main bumped user/ to dd19995 and this merge preserves that. The audit's own no-gitlink-commit discipline applies to bumping the pin as a side effect of routine work, not to discarding a bump main already made. main touched none of the other nine corrected documents, so the remaining 18 findings stand unchanged. Audit notes corrected to match reality rather than left overstated: - superseded-decisions.md R13 now dates the carve-out to 2026-07-24 (829325c) rather than implying this pass introduced it. - The reconciliation spec gains an "audit baseline moved twice" section: the submodule pin lagged real HEAD, and then the base branch advanced mid-audit. - The compounded learning's section 6 is rewritten from "audit the current state" to "re-check the baseline before publishing, not only before starting", with the two habits that actually follow: merge the base branch in before opening the PR and read conflicts as findings, and when the incoming version is better, take it wholesale. An audit has no special authority over the work it audits. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+21
-9
@@ -71,8 +71,7 @@ Two mechanisms, because each covers the other's failure:
|
||||
convention would have been worse than adopting either.
|
||||
|
||||
**Add the ledger row in the same commit as the reversal.** A ledger that lags is worse than no ledger,
|
||||
because it is trusted. This is the same failure mode as a lagging plan `Status:` line — and one was
|
||||
found during this pass: a plan read `📋 Not started` while its feature was merged.
|
||||
because it is trusted — the same failure mode as a lagging plan `Status:` line.
|
||||
|
||||
### 3. Also record what was *not* reversed
|
||||
|
||||
@@ -109,14 +108,27 @@ missing four source files; reading `package.json` showed the table lists esbuild
|
||||
imported-only sources were correctly absent. The finding was withdrawn. **An audit that never
|
||||
withdraws a finding has not been checking itself.**
|
||||
|
||||
### 6. Audit against the state that is actually current
|
||||
### 6. Re-check the baseline before publishing, not only before starting
|
||||
|
||||
The outer repo pinned a `user/` commit that lagged the submodule's real HEAD, and that pin was the
|
||||
default checkout in a fresh worktree. Auditing it would have produced findings against a state nobody
|
||||
runs — and would have missed a whole merged feature. Move to the real HEAD first, and keep the
|
||||
gitlink out of the commit (see
|
||||
[`dual-repo-submodule-workflow.md`](../architecture-patterns/dual-repo-submodule-workflow.md) — `M user`
|
||||
is normal and must not be "fixed").
|
||||
A long audit **races the work it is auditing**. This one had its baseline move twice, and each time the
|
||||
convenient state was the wrong one:
|
||||
|
||||
- **The submodule pin lagged.** A fresh worktree checks out the commit the outer repo pins, not the
|
||||
submodule's real HEAD. Auditing the pin would have reported a shipped feature as unbuilt. Move to the
|
||||
real HEAD first, and keep the gitlink out of the commit (see
|
||||
[`dual-repo-submodule-workflow.md`](../architecture-patterns/dual-repo-submodule-workflow.md) —
|
||||
`M user` is normal and must not be "fixed").
|
||||
- **The base branch advanced 13 commits mid-audit**, independently fixing two findings. Merging the
|
||||
base branch in before opening the PR is what surfaced that. Without it, the branch would have
|
||||
**reverted** work that was already correct — the worst possible outcome for a cleanup pass, because it
|
||||
arrives disguised as an improvement.
|
||||
|
||||
Two habits fall out of this. **Merge the base branch in before publishing, and read the conflicts as
|
||||
findings rather than chores** — each conflict is the codebase telling you someone else already reasoned
|
||||
about this line. And **when the incoming version is better, take it wholesale**: here the base branch's
|
||||
map-doctrine wording and plan status were both more informed than the replacements drafted during the
|
||||
audit, so they were kept in full and the audit's own notes were corrected to match. An audit has no
|
||||
special authority over the work it audits.
|
||||
|
||||
## Why This Matters
|
||||
|
||||
|
||||
Reference in New Issue
Block a user