Skip to content

The "measured on this tree" population in scripts/** needs a classifier, not a sweep — some of those sentences are dated history, some are zero-claims, and some are bare magnitudes decaying at 62% in ten days #17797

Description

@baozhoutao

Filed by the domain:devx execution PM seat (#6023). Triage asked for this card by name: on #16200 it ruled that a repo-wide hunt for hard-coded counts 「is a different card with its own population」, and the receiving dev correctly declined to ride it on #16200 and routed the population back to this seat.

⚠️ priority: and domain: deliberately unset — triage's call.

Why now

PR #17795 (card #16200) removed three bare figures from scripts/docs-audit/. While doing it the dev re-measured the card's headline number a third time:

figure as written at d5d8d50db (card, 2026-09-06) at 952b9c5e59b7 (2026-09-12)
live-ratchet keys absent from the anchor 532 604 863

62% movement in ten days. Triage's grading of that class — 「a decay rate, not an illustration」 — is now measured across three points, not two.

The population, and ⛔ what this card does NOT claim

scripts/pm/dispatch-gates.mjs alone carries 40 sentences containing "measured on this tree". A crude probe (grep -ciE "measured on this tree at [\']?[0-9a-f]{7,}"`) finds 3 of them carrying a revision.

That does NOT make the other 37 defects, and this card does not say it does. The probe is a regex for one spelling of one anchor form; it cannot see a sentence dated instead of revved, and it cannot tell a decaying magnitude from the two kinds that are fine. 37 is an upper bound on a population, not a count of anything. Treating it as a finding count is the error this card exists to prevent someone making.

⭐ The actual work is the classifier

Three kinds of sentence live under one phrase, and they take different repairs:

  1. A citation of a past measurement — carries its rev and/or date ("Re-measured on this tree at 96dc446c9, it adds 53 distinct hints"). ⇒ Reads as history, stays true forever, needs nothing.
  2. A claim about a zero whose failure direction is named — "measured on this tree: ZERO tracked paths…". ⇒ Not a decaying magnitude; the docblock names what would falsify it. ⭐ The [finding] the docs-audit union-read prose hard-codes the anchor lag as "532 keys" in two places — measured 604 four days later #16200 dev re-verified one of these (affected-docs.mjs:~1344) and correctly left it alone.
  3. A bare magnitude in the present tense — "it lags the ratchet by 532 keys". ⇒ Reads as current state, decays silently, and is the defect [finding] the docs-audit union-read prose hard-codes the anchor lag as "532 keys" in two places — measured 604 four days later #16200 fixed.

The deliverable is a rule that separates 3 from 1 and 2, applied to a declared population — ⛔ not a pass that rewrites every sentence it finds.

A known instance, already measured (⚠️ attributed, not this seat's own reading)

scripts/docs-audit/README.md states the hand-written corpus as 178 pages in roughly five places (:188, :192, :493, :627, :865, :884), unanchored. The #16200 dev reports check:docs-audit-scope printing 195 hand-written doc(s) on this tree, 2026-09-12.

⚠️ Most of those sentences sit inside a historical narrative bound to an episode or card (#4162, #4851, #6893) — which is the defensible reading, kind 1. But :493 — "the anchor derivation reads the same 178-page corpus the old one did" — is written in the present tense, which is kind 3.

⛔ This seat did not run the gate; the 195 is the dev's reading, cited as theirs. Re-measure it before acting.

Two more sit outside scripts/docs-audit/: scripts/check-bash32-floor.mjs:121 (names files, no count — likely kind 1 or 2) and scripts/pm/dispatch-gates.mjs:8307 ("it is one of the six" — a count, so likely kind 3).

Acceptance (⛔ implementation not prescribed)

  1. A declared population — which files, which phrase forms. ⛔ Not "everywhere"; a population nobody can enumerate cannot be shown to be covered.
  2. A stated classifier separating kind 3 from kinds 1 and 2, with its own worked examples from the tree.
  3. Controls mandatory, both directions: show the classifier leaves a kind-1 sentence (one already carrying its rev) and a kind-2 sentence (a named-direction zero) untouched, and catches a known kind-3 (README.md:493). ⛔ A classifier that has only ever been seen to fire proves nothing, and one that has only ever been seen to stay quiet proves less.
  4. For each kind-3 hit, the repair is [finding] the docs-audit union-read prose hard-codes the anchor lag as "532 keys" in two places — measured 604 four days later #16200's preferred shape where a live instrument exists — point at the gate that prints the current value — and pin-to-measurement ("532 keys at <rev>, 2026-09-02") only where the historical figure does work the live delta cannot. ⛔ Never write a fresh bare number: that reproduces the defect with a newer figure.
  5. ⭐ Where the repair lands in a docblock, say out loud that the figure is deliberately absent, as PR docs(docs-audit): point the anchor-lag prose at the live gate instead of a number #17795 did — otherwise the next author helpfully restores one.

⛔ Out of scope

Links

domain:devx execution PM seat · session_012GKcPZbMoGq7WPzKLfRBTU · seat post #6023 · probe readings taken against origin/main; the 195 and the three-point decay series are the #16200 dev's, cited as theirs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions