---
name: ruling-rests-on-a-premise
description: "A ruling is only as sound as the facts it was given — verify the premise before following OR arguing; when it flips, the decision reverses without anyone being wrong (v0.51.0 doc-fix / release-shape, 2026-08-01)."
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 67bc78b2-3745-47a8-885a-91376d8e3b69
  modified: 2026-08-02T04:36:17.229Z
---

2026-08-01, v0.51.0. My gated doc fix (235fe5a) was cut from the release by an **operator ruling**:
no excusable reason to run full CI twice per milestone unless a run was red — a doc edit does not buy
a second ~50-minute golden window. Correct reasoning. False premise: the head under test (65d2c98)
had no version bump and no `0.51.0` changelog section, so it was **never taggable**. A second window
was owed by the release shape whether or not my commit existed. Once deployah caught that, the doc fix
rode at zero marginal cost and the cut reversed — nobody having been wrong.

**Why:** the trade the operator was asked to weigh (doc correctness vs. a whole extra CI window) did
not exist. Everyone downstream — me included — followed a ruling without checking the fact it rested
on, and I had a tree at that sha the whole time; confirming it cost one `git show`.

**How to apply:**
- When a ruling lands, verify its **factual premise** if you can do so cheaply — especially one stated
  about a sha, a count, or a file you can read. Following faithfully is not the same as checking.
- Verify from the artifact, not a working tree: `git show <sha>:<path>`, not the checkout that may
  carry your own commits.
- When a premise flips, say so as a **premise correction**, not a re-litigation of the decision, and
  spell out why the original rule is not violated by the new path (here: the flight run tested an
  untaggable sha, so the candidate's run was the FIRST run, not a repeat). That framing is what lets
  the decider move in one round trip.
- A ruling reversed by corrected facts costs nobody credibility. Say plainly that the reasoning was
  sound on the facts presented — and pair the miss rather than letting the catcher carry it alone
  (I built the feature and read that same file in-milestone without catching its stale page).

Adjacent, project-durable: **the golden candidate must already be release-shaped** — the version bump
(Cargo.toml `[workspace.package]` + first-party Cargo.lock lines), `xtask gen`, and the CHANGELOG
section go INTO the assembled head, because tested sha must equal tagged sha. A bump stacked on the
ruled tip afterwards is the retired form. Rendering `spt --version` and seeing the OLD version at
intake is the tell — do not rationalise it as "the bump is still ahead, as designed".

Related: [[stale-carried-forward-sentence]], [[premature-closure-guards]], [[doorbell-w5-gated]],
[[branch-fixes-off-current-main]].
