Skip to content

Two of my own commands disagreed about the same population - #2928

Merged
gHashTag merged 1 commit into
masterfrom
prose-by-stage
Aug 30, 2026
Merged

Two of my own commands disagreed about the same population#2928
gHashTag merged 1 commit into
masterfrom
prose-by-stage

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

tri prose report said 107 specs that do not parse. tri unparsed report
said 76. Both are mine, both walk the same corpus, and neither had any claim
to be believed over the other.

The gap

21 files under fixtures/, broken on purpose as detector inputs
10 specs that parse and fail at a later stage

Exactly the two rules added to report, then to locate after finding they had
not travelled — and which never reached the third sibling.

A third instance means the cure was wrong

The same lesson was already written down twice, so this fix is structural rather
than another patch. The scope now lives in one function:

unparsed::parse_failures(root, t27c) -> Scope
    failures     the parse-stage failures, with the compiler's output
    fixtures     set aside, counted, named in the output
    other_stage  parse fine, fail later
    tracked

Both commands call it. Disagreement is impossible rather than tested for.

tri unparsed report   refused at PARSE 76 · fixtures 21
tri prose report      refused at PARSE 76 · fixtures 21

The premise of this iteration was stale

I opened it to bridge the two: "the census abstains on ten, and tri prose report answers six of them." It answers zero — earlier repairs closed
those specs. The sentence was true when written and never re-measured.

An option list is a claim with a date on it. Re-measuring took one command
and would have saved picking it at all.

Gates, run locally

specs generate 0 · verilog widths 0 · specs parse 0 · conflict markers 0 ·
seal coverage 0 · seals fresh 0 · types ratchet 0 · skill check 0 ·
unparsed probe 0 · prose report 0 · ledgers audit 0 · cargo test -p tri 0 ·
rustfmt --check on both touched files 0.

bootstrap/src/compiler.rs is untouched, so FROZEN_HASH does not move. The 10
never used warnings are pre-existing — 10 on master too, none in the two files
touched here.

Refs #2864

`tri prose report` said "107 specs that do not parse". `tri unparsed report`
said 76. Both are mine and both walk the same corpus.

The gap is 21 files under `fixtures/`, broken ON PURPOSE as detector inputs,
and 10 specs that parse and fail at a later stage -- the same two rules added to
`report`, then to `locate` after finding they had not travelled, and which never
reached the third sibling.

A third instance of one lesson is evidence the cure was wrong, so this one is
structural. The scope now lives in ONE function:

    unparsed::parse_failures(root, t27c) -> Scope
        failures     the parse-stage failures, with the compiler's output
        fixtures     set aside, counted, named in the output
        other_stage  parse fine, fail later
        tracked

Both commands call it. Disagreement is impossible rather than tested for.

  tri unparsed report   refused at PARSE 76 · fixtures 21
  tri prose report      refused at PARSE 76 · fixtures 21

AND THE PREMISE OF THE ITERATION WAS STALE. I opened it to bridge the two --
"the census abstains on ten and prose answers six of them". Prose answers ZERO:
earlier repairs closed those specs. The sentence was true when written and never
re-measured. An option list is a claim with a date on it.

`bootstrap/src/compiler.rs` untouched; FROZEN_HASH does not move. The 10
`never used` warnings are pre-existing -- 10 on master too, none in the two
files touched here.

Refs #2864

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) August 30, 2026 00:22
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-08-30 00:22:32 UTC

Summary

Status Count
Total Open PRs 10
PRs with Failing Checks 7
PRs with All Checks Green 3
READY 2
FAILING 7
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=82e020cf95b2 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 33ab65f into master Aug 30, 2026
28 checks passed
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.

2 participants