From 60c32440e19d34269e29e78fe69f01cb407ae2b5 Mon Sep 17 00:00:00 2001 From: sylph-decoder Date: Mon, 31 Aug 2026 04:08:09 +0000 Subject: [PATCH] agents: the merge-state counts go stale by construction -- say so and give the commands sylpheed-port re-derived this the same day and read 329 for my branch where I had written 328, because a commit landed between the measurement and the check. The counts rise with every commit on either branch, so they are not the claim. What does not move with them: main is an ancestor of both, the change sets touch zero files in common, and the dry-run merge is clean. The document now says that and carries the commands to re-derive all of it. A number that goes stale the moment it is written, sitting in a document meant to inform a decision, is the same shape this week has been full of -- and this one was mine, one message after recording the class. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v --- docs/agents/MERGE-STATE.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/agents/MERGE-STATE.md b/docs/agents/MERGE-STATE.md index 230d6d97..b2ef0670 100644 --- a/docs/agents/MERGE-STATE.md +++ b/docs/agents/MERGE-STATE.md @@ -6,11 +6,26 @@ measuring it. Measured 2026-08-31: | branch | ahead of `main` | behind | `main` an ancestor? | files | |---|---|---|---|---| -| `auto/build-ordinal-audit` (decoder) | **328** | **0** | **yes** — fast-forward | 327 | +| `auto/build-ordinal-audit` (decoder) | **328**+ | **0** | **yes** — fast-forward | 327 | | `auto/port-p6-audio` (port) | **257** | **0** | **yes** — fast-forward | 58 | ✅ **Each is individually a fast-forward with nothing to resolve.** +⚠️ **The counts go stale by construction — every commit on either branch raises +them.** `sylpheed-port` re-derived this the same day and read **329** for the +decoder branch, because a commit landed between the measurement and the check. +**The counts are not the claim.** What does not move with the count is: `main` is +an ancestor of both, the two change sets touch **zero files in common**, and the +dry-run merge is clean. Re-derive with: + +``` +git rev-list --count origin/main.. +git merge-base --is-ancestor origin/main +comm -12 <(git diff --name-only $(git merge-base A B)..A | sort) \ + <(git diff --name-only $(git merge-base A B)..B | sort) +git merge-tree --write-tree A B # read-only +``` + ✅ **And they do not conflict with each other.** From their merge base (`1b1a4df`, 2026-08-29):