---
name: filed-rate-may-predate-your-base
description: "A filed rate table names the SHAs it was measured at — check whether a fix landed since, because an issue's own earlier fix can be the thing that moved its rate."
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 65448c94-60f8-4bce-88b7-3548e33546a0
  modified: 2026-08-21T10:20:49.901Z
---

releases#199's rate table said the second face was **1/20**, measured at
`bd942f6` and `4ba27d3`. I planned a hunt against that number. Both SHAs
**predate `8437b26`** — the in-flight bring-up ledger, which is *#199's own FIRST
face fix* and is an ancestor of the base I was working on. The rate at my base
had never been measured by anyone, so every "expected N reds in M runs" I would
have computed was arithmetic over a tree nobody was standing on.

**Why it is easy to miss:** the table is *in the issue*, formatted, with named
SHAs and run counts — it wears all the clothes of a current measurement. And the
confounder is not some sibling milestone: it is the SAME ISSUE's earlier lane.
A two-face issue fixes face one, stays open for face two, and its own header
table silently becomes historical.

**How to apply:**
1. Before hunting a filed rate, `git merge-base --is-ancestor <fix-sha> <base>`
   for every fix mentioned anywhere on the issue — including fixes for the
   issue's OTHER faces.
2. If any landed since, say so **first** in the report and on the board: the
   old numbers are provenance, not a prediction.
3. Then compute the arithmetic on your own measurement. 0 reds in 120 at a filed
   1/20 is `(19/20)^120` = 0.21% — that is evidence the rate MOVED, not evidence
   you were unlucky, and it is still not evidence the mechanism is gone. Report
   those three as three separate claims.

Sibling of "an issue can be outrun by a sibling milestone" (that is the CODE
being already fixed; this is the NUMBERS being measured on the pre-fix tree) and
of [[read-the-measured-sha-not-the-default-tree]]. Pairs with
[[load-knob-must-be-proven-to-bite]] and
[[base-rate-is-over-cell-executions-not-suite-runs]].

**SECOND FACE — IT IS NOT ONLY RATES, IT IS ANY QUOTED ARTIFACT (2026-08-21,
releases#196).** The filing quoted a docstring as its evidence: the verb "creates
the restriction if absent", therefore the precise arm violates it. That sentence
had ALREADY been replaced — by `f2d215a5`, the fix for the SIBLING issue the
filing itself cites as its boundary, an ancestor of the base I was told to read
at. Half the fork was discharged before I opened the file, and a build that
"restored" the quoted semantic would have re-broken a corrected docstring.

An issue quotes code AT FILING TIME. The quote is a snapshot wearing a citation's
clothes, and it is quoted precisely because it is load-bearing — so a stale one
mis-shapes the whole task, not a detail of it. Same discipline as the rate:
merge-base every fix named ANYWHERE on the issue (its own other faces, and the
siblings it names as boundaries), then **re-read the quoted text at your base**
and report "already discharged" as its own finding, first, before the work.


**THIRD FACE — THE SPECIMEN'S OBSERVED CONTENT CAN PREDATE THE INSTRUMENT THAT
WOULD HAVE PRODUCED IT (2026-08-29, v0.66.0 SEMAPHORE cut, IR-17).** Not the rate,
not the quoted code — the OBSERVATION itself. doyle was about to run a kitsubito
repro carrying IR-17's 2026-08-03 specimen of `activity_link_push_e2e` as a second
data point, framed as "same 30s-burn shape but with EMPTY brain stderr, vs today's
BRAIN_UP-present panels" — i.e. two STATES of one mechanism. The panel that prints
that stderr did not exist on 2026-08-03. It landed 2026-08-19: `ab657626`
*test(e2e): expose redirected daemon stderr* (touching the very test file plus
`spt-daemon/src/stderrlog.rs`), refined 11 minutes later by `e6e188e1` *label
absent daemon stderr*. Sixteen days AFTER the specimen. The subject line is the
whole finding: before it the stderr was REDIRECTED and the panel never read it
back, so "empty" is what a missing instrument looks like, not what a silent brain
looks like.

**Why it is worth its own face:** a rate and a code quote both announce
themselves as citations. An observed ARTIFACT — a captured log panel, a stderr
dump, a screenshot — reads as raw evidence, the thing you check citations
*against*, so nobody asks what it was captured WITH. And the difference between
the two specimens was about to become the mechanism's defining feature.

**How to apply:** before comparing two specimens of one mechanism across time,
`git log -S` the capture helper / emitter / format string that produced them and
merge-base it against BOTH specimen dates. If the instrument moved between them,
the difference is evidence about the instrument first — report that before the
mechanism reading. Corollary that closed this one: current bits LABEL absence
(`ABSENT at <path>`), so empty-vs-present cannot even recur on today's code —
which is itself proof the old empty was the instrument.

Same family as [[identical-readings-across-opposite-outcomes-indict-the-meter]]
(there the meter is constant and the readings agree; here the readings differ and
the meter moved) and [[an-entrys-quoted-figures-can-come-from-a-looser-meter-than-its-prescribed-method]].
