docs(remediation): correct D-55 — "took the poster" is not established, and I discarded my own evidence

tl-mosaic found #1041 on mosaicstack/stack where poster == branch author == coder-mos2 and the squash
took NEITHER — it took the merger. Mos re-tested its own 22 and found 0 of 24 rows had poster !=
merged_by, so none could distinguish the hypotheses. Its own framing is the sharpest statement of the
class: a sample can be decisive for one question and empty for the next one asked of it.

I made the mirror error. I excluded #1033 and #1032 as non-discriminating and said so explicitly,
believing it made my evidence more careful. That exclusion was correct for "is the branch author
discarded?" — poster equalled branch author, so no loss was visible — and wrong for "poster or merger?",
where they discriminate cleanly because merged_by differs from the poster in both. I threw away my own
discriminating rows by carrying a classification forward across questions. Mos reused a control across
questions; I reused an exclusion.

Re-measured, and this is the first data separating poster from merger: #1027 poster mos-dt-0 / merger
Mos / author mos-dt-0 supports POSTER; #1033 and #1032 poster coder-mos1 / merger mos-dt-0 / author
coder-mos1 both support POSTER; #1041 poster coder-mos2 / merger mos-dt-0 / author mos-dt-0 supports
MERGER. Three to one, genuinely contradictory, one instance and one repo. Reported as contradictory data
rather than a majority verdict — 3-to-1 is a hypothesis to test, not a conclusion to adopt, and a third
factor such as merge path or a settings change is not excluded.

What survives is the half that matters and it is untouched: the branch commit author is discarded, at 29
discriminating rows across three repos and two estates. Every mitigation rests on that half.

Which is why Co-authored-by trailers are the only sound mitigation rather than belt-and-braces: they are
robust to all three hypotheses, and the withdrawn poster-equals-author rule would have failed #1041
outright, where the poster WAS the author and attribution was lost anyway.

Co-authored-by: tl-mosaic <[email protected]>
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
mos-dt-0
2026-08-05 15:18:23 -05:00
co-authored by tl-mosaic Claude Opus 5
parent 8f02b55b03
commit e01cfd44cb
+52 -2
View File
@@ -643,8 +643,11 @@ a finding.
### D-55 — the squash discards the branch author, and every pre-merge gate is blind to it ### D-55 — the squash discards the branch author, and every pre-merge gate is blind to it
**Measured across two estates, two Gitea instances, three repos: 23/23 discriminating merges took the PR **⚠ CORRECTED 2026-08-05 — SEE THE CORRECTION BLOCK BELOW. The "took the POSTER" half of this finding is
POSTER as the squash author.** Diagnosed by the **USC orchestrator** (whose sentence — _"I verified the NOT ESTABLISHED.** What is established: **the branch commit author is DISCARDED.** What replaces it is
open.
**Originally reported as: 23/23 discriminating merges took the PR POSTER as the squash author.** Diagnosed by the **USC orchestrator** (whose sentence — _"I verified the
input to the operation and not its output"_ — is the doctrine); confirmed independently on mosaicstack by input to the operation and not its output"_ — is the doctrine); confirmed independently on mosaicstack by
this seat: this seat:
@@ -686,6 +689,53 @@ limitation stated, and **`feat/rm-02-gate-registry` marked MUST-NOT-DELETE** —
confirmed on the squash, the branch is the only provider-side record. Verified by read-back: head confirmed on the squash, the branch is the only provider-side record. Verified by read-back: head
unmoved, three trailers present, `Fixes #1029` intact. unmoved, three trailers present, `Fixes #1029` intact.
### D-55a — CORRECTION: a sample decisive for one question, empty for the next — and I made the mirror error
**`tl-mosaic` found the counterexample on `mosaicstack/stack`: PR #1041, where poster == branch author ==
`coder-mos2`, and the squash took NEITHER — it took the MERGER (`mos-dt-0`).** The coordinator then
re-tested its own 22: **0 of 24 rows had `poster != merged_by`, so none could distinguish the two.**
> **The coordinator's own words, and the sharpest statement of the class tonight: _"A sample can be
> decisive for one question and EMPTY for the next one asked of it. I asked the second question of the
> first question's control."_** It had written, about someone else's sample, that _"a sample which cannot
> distinguish the hypotheses is not weak evidence, it is none"_ — and then published one.
**★ AND I MADE THE MIRROR ERROR.** I excluded **#1033 and #1032** as **"non-discriminating"** and said so
explicitly, believing that made my evidence more careful. **That exclusion was correct for _"is the branch
author discarded?"_ (poster == branch author, so no loss is visible) and WRONG for _"poster or merger?"_**
— for the second question they discriminate cleanly, because `merged_by` differs from the poster in both.
**I threw away my own discriminating rows by carrying forward a classification made for a different
question.** Same defect, opposite direction: the coordinator reused a control across questions; I reused
an **exclusion** across questions.
**RE-MEASURED ON `mosaicstack/stack` — the first data that separates poster from merger:**
| PR | poster | merged_by | squash author | supports |
| --------- | ------------ | ---------- | ------------- | ---------- |
| **#1027** | `mos-dt-0` | **`Mos`** | `mos-dt-0` | **POSTER** |
| **#1033** | `coder-mos1` | `mos-dt-0` | `coder-mos1` | **POSTER** |
| **#1032** | `coder-mos1` | `mos-dt-0` | `coder-mos1` | **POSTER** |
| **#1041** | `coder-mos2` | `mos-dt-0` | `mos-dt-0` | **MERGER** |
**3 for POSTER, 1 for MERGER, on one instance, one repo. Genuinely contradictory — not a tie, and not
enough to rule.** A third factor is not excluded (merge path UI vs API, a settings change over time, or
something about `#1041` specifically). **Reported as contradictory data, not as a majority verdict —
3-to-1 is a hypothesis to test, not a conclusion to adopt.**
> **WHAT SURVIVES UNCHANGED, AND IT IS THE PART THAT MATTERS: THE BRANCH COMMIT AUTHOR IS DISCARDED.**
> `enhance`, `Hermes Agent`, `f10-coder`, `mos-dt`, `coder-mos2` and `mos-claude` are erased from their
> `main` histories. **Every mitigation decision rests on that half, which is established at 29
> discriminating rows across 3 repos and 2 estates.**
**⇒ AND THIS IS WHY `Co-authored-by:` TRAILERS ARE THE ONLY SOUND MITIGATION** — not belt-and-braces, but
**the only one robust to ALL THREE hypotheses.** The withdrawn "poster == branch author" rule **would have
FAILED #1041 outright**: the poster _was_ the author and the attribution was lost anyway. **A mitigation
that survives a counterexample the alternative fails is better endorsed than one everyone agreed with.**
**Rotation decisions resting on reason 1 ("the squash takes the poster, so rotate to protect authorship")
lose that reason** — if the squash takes the merger, rotation protects nothing. Decisions stand on their
other reasons; **the reason that _felt_ decisive is the one that was not measured.**
### D-55b — two parties quoting a third is not corroboration ### D-55b — two parties quoting a third is not corroboration
The coordinator wrote _"installer-7's live-panel GREEN was the last thing before the command"_ **having The coordinator wrote _"installer-7's live-panel GREEN was the last thing before the command"_ **having