Skip to content

An instrument for the population the swap plan under-drew - #102

Closed
BTCBoyd wants to merge 1 commit into
masterfrom
check/sentences-at-risk
Closed

An instrument for the population the swap plan under-drew#102
BTCBoyd wants to merge 1 commit into
masterfrom
check/sentences-at-risk

Conversation

@BTCBoyd

@BTCBoyd BTCBoyd commented Aug 23, 2026

Copy link
Copy Markdown
Member

Item 1. Not merged. It has already found a live defect — see below.

What it derives

The section 02 swap was planned as six parts with two named dependents. It missed three sentences, and one was inside the section being swapped:

We hold [122] signed resolution records that a reader on [1.0.0-rc.21] has no route to.

Both spans updated correctly. The sentence inverted in meaning and nothing moved it.

The population that would have caught them is derivable and was not derived: every sentence containing a span whose value the change moves. This derives it rather than asking anyone to keep a list.

How it is used

Before a change: write the new results/, pass HEAD as the baseline, and every affected sentence prints before anything is committed.
After: pass a ref from before it, to audit what was missed.

It does not decide

Whether a sentence survives its span changing is a judgement about meaning, and no check makes it. It prints the sentence with old and new values beside each other so the judgement is made deliberately rather than skipped.

Exit 0 always — an enumerator, not a gate. A gate that guessed at meaning would be a fourth way to be wrong about this.

Run against the move that already happened

Baseline d6d4288, the commit before the re-measurement. 12 measured values moved; 3 sentences at risk.

Two were already fixed. The third was live on the swap branch and false:

engine-payload-exports:npmLatest   "1.0.0-rc.12" -> "1.0.0-rc.21"
  [verify.html]  npm's latest tag sits inside that band, at 1.0.0-rc.21, which is
                 the version this page documents...

rc.21 is not inside rc.9–rc.12. Fixed on the swap branch; it now reads "no longer points inside that band".

The instrument found in one run what three readings of the same section did not.

The section 02 swap was planned as six parts with two named dependents. It
missed two sentences, and one of them was INSIDE the section being swapped:

  "We hold [122] signed resolution records that a reader on [1.0.0-rc.21] has
   no route to."

Both of its spans updated correctly. The sentence inverted in meaning and
nothing moved it.

THE POPULATION THAT WOULD HAVE CAUGHT THEM IS DERIVABLE AND WAS NOT DERIVED:
every sentence containing a span whose value the change moves. This derives it
rather than asking anyone to keep a list.

Run BEFORE a change: write the new results/, pass HEAD as the baseline, and
every affected sentence prints before anything is committed. Run AFTER, with a
ref from before it, to audit what was missed.

IT DOES NOT DECIDE. Whether a sentence survives its span changing is a
judgement about meaning and no check makes it. It prints the sentence with the
old and new values beside each other so the judgement is made deliberately
rather than skipped. Exit 0 always: an enumerator, not a gate. A gate that
guessed at meaning would be a fourth way to be wrong about this.
@netlify

netlify Bot commented Aug 23, 2026

Copy link
Copy Markdown

Deploy Preview for observerprotocol ready!

Name Link
🔨 Latest commit d387115
🔍 Latest deploy log https://app.netlify.com/projects/observerprotocol/deploys/6a8b79e3b8aea30008675593
😎 Deploy Preview https://deploy-preview-102--observerprotocol.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@BTCBoyd

BTCBoyd commented Aug 25, 2026

Copy link
Copy Markdown
Member Author

Closing rather than merging: master already carries this instrument, as a later version.

scripts/sentences-at-risk.mjs is on master (added by #104, evolved by #106 "the population derives from the declarations"). This PR's copy is 119 lines; master's is 239. Every non-blank line in this PR appears verbatim in master's copy — zero lines here that master lacks. So there is nothing to merge in.

What master's version adds over this one: this PR derives its population from "every sentence containing a data-measured span." Master's is repointed (2026-08-24) to "every value any check compares against the world," read from the checks' own DECLARES-COMPARES lines. That superset is not cosmetic: it closes the exact blind spot this version had — a pin bump that moved eight version spans and touched no results/ file printed "0 measured value(s) moved" while a sentence in verify-samples/README.md was already false. Master's version catches that; this one does not.

The conflict is on the added file for that reason: the path already exists on master. The failing "Published credentials verify" check is the stale base, not this change — it is green on current master (261bf6e, all 16 published artifacts match expectation).

The defect this instrument names is being recorded in CONVENTIONS in #125, so it survives the close.

@BTCBoyd BTCBoyd closed this Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant