Skip to content

docs: a seal that names a hash the file no longer holds - #3085

Merged
gHashTag merged 4 commits into
masterfrom
w66-a-seal-names-a-hash-the-file-no-longer-holds
Sep 4, 2026
Merged

docs: a seal that names a hash the file no longer holds#3085
gHashTag merged 4 commits into
masterfrom
w66-a-seal-names-a-hash-the-file-no-longer-holds

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Closes #3082

1. A reproducibility seal pointing at a hash FROZEN_HASH no longer holds

docs/NUMERICS_VALIDATION.md states its measured runs are "sealed against the frozen codec revision 49e55df6 in bootstrap/stage0/FROZEN_HASH".

identifier where when
49e55df6 cited by the document
9b8875f1… what FROZEN_HASH holds last changed 2026-09-03 by #3026
87e5cbd3… the manifest's own seal stamped 2026-07-16

Three identifiers, and none of them is the one in FROZEN_HASH now — and the change is partly this session's own doing.

The seal stays as the record of what was measured. What was wrong is the present tense: the sentence asserted a current fact about a file. Re-running nmse_gf16.py --seal today seals against 9b8875f1… and is therefore a new reading, not a reproduction of the table it sits above. That is now said next to it.

2. An audit citing line numbers that moved

docs/PUBLICATION_AUDIT.md cites TNF_ARTICLE_RU.md:305 and :309. Today the Yosys/nextpnr line is at :340, the post-route rows at :354, and :309 is blank — off by 35 and 45.

Both citations now carry their old value beside the new one: an audit that silently re-points is harder to check than one that shows the move.

Two tools measured and declined

A FILE:LINE checker for docs. 43 citations outside the dated reports: 0 with a missing file, 1 with a line past end-of-file — and that one is in docs/NOW.md, which the pre-commit hook itself calls a frozen archive. One hit in 43, inside a record, is not a population.

The "print the members, not the total" rule I proposed last pass. The repository already keeps it: 39 python checks print a count, 33 also print their members, and the 6 that do not are generators and demos — fuzz_trainer, gen_formats_catalog, the two gft_*_demos, run_conformance_vvp. Not one is a check.

That second number is the uncomfortable one, and it belongs in the record. The three times a total hid a matcher error this session — 153 of 232, 63 of 1569, 5 of 8 — were all in my own ad-hoc probes. The rule I was about to propose to the repository is one the repository already keeps and I do not.

Closes #3082

PIN_COVERAGE.md lists xdc_qmtech_minimal() and xdc_qmtech_full() as "Rust pin
definitions". grep says 0 definitions in the tree: added 1911edc (2026-04-09)
with the gen-xdc command, removed 692ba52 (2026-04-14), and the subcommand
went with them.

CORPUS-RATCHET.md justifies excluding specs/scratch/ as "606,113,688 of
612,924,235 bytes (98.89%)". That directory has been out of the tree since
2255e4c -- 0 files in the index, absent from disk -- so the exclusion excludes
nothing and the saving it claims was banked by the untracking, not by the
filter. The untracking commit puts the same exclusion at 64.5% where this line
puts it at 98.89%: two numbers for one subject, and neither re-takable now. The
filter is kept; it costs nothing and makes the exclusion explicit if the
directory returns.

NUMERIC_FORMATS_83_METRICS.md cites gen/numeric/formats_catalog.json (77
formats) as a data source. That file was deleted by aa01dd4 -- "untrack stale
gen/numeric catalog artifacts (drift 77 vs SSOT 83)". It was removed FOR being
77 against 83, and the document still publishes 77 and points at it. The
re-takable source is the catalog itself, at 109 records today.

SYNTH_REPORT.md declares every figure measured with yosys 0.65; `yosys -V` on
the bench reports 0.68+post, and the file was last touched 2026-08-06 with no
date of its own. Not re-measured here -- that needs a run, not an edit -- but a
resource figure is a reading of an instrument, and the instrument is named
beside the numbers now.

Two measurements that produced no code, recorded because they cost the same
either way. Extending the new status-table check from paths to code SYMBOLS:
declined. 8 rows name a `fn()`, 5 "missing", 62% -- and the population is
contaminated, since uart_tx_ready is a .t27 function that exists and
quantize_groups is an RFC proposal. And the exclusion of docs/reports/** from
that check, which I made by argument last pass: confirmed by measurement, 1566
of 1569 name a wave, ring or date. My first attempt at that measurement said 63
undated and was wrong, because `W\d{3}` does not match `WAVE_LOOP_170`.
Refs #3082

I excluded docs/reports/** by argument. Measuring it said 63 of 1569 undated --
and all 63 are WAVE_LOOP_NNN files, because my pattern was \bW\d{3}\b, which
does not match WAVE_LOOP_170. Corrected: 1566 of 1569, exclusion justified.

The check of an exclusion made to avoid a matcher describing its input was
itself a matcher describing its input. Printing the members rather than the
count is what caught it in one look.

With the pass that produced no code: extending the check from paths to symbols
measured 8 rows, 5 'missing', 62%, and the population spans three languages and
an RFC proposal. Declined.
Closes #3082

NUMERICS_VALIDATION.md states its measured runs are "sealed against the frozen
codec revision 49e55df6 in bootstrap/stage0/FROZEN_HASH". That file holds
9b8875f1... today, last changed 2026-09-03 by #3026 -- one of this session's own
PRs. Three identifiers are in play: the cited 49e55df6, the live 9b8875f1..., and
the manifest's own seal 87e5cbd3... stamped 2026-07-16.

The seal stays as the record of what was measured. What was wrong is the present
tense: the sentence asserted a current fact about a file, and a re-run of
`nmse_gf16.py --seal` today seals against 9b8875f1... and is therefore a NEW
reading rather than a reproduction of the table it sits above. That is now said.

PUBLICATION_AUDIT.md cites TNF_ARTICLE_RU.md:305 and :309. The Yosys 0.65 /
nextpnr line is at :340 today, the post-route rows at :354, and :309 is blank.
Both citations carry their old value beside the new one, because an audit that
silently re-points is harder to check than one that shows the move.

TWO TOOLS MEASURED AND DECLINED, which cost the same as building them would have.

A FILE:LINE checker for docs: 43 citations outside the dated reports, 0 with a
missing file, 1 with a line past end-of-file -- and that one is in docs/NOW.md,
which the pre-commit hook itself calls a frozen archive. One hit in 43, inside a
record, is not a population.

The "print the members, not the total" rule I proposed last pass: the repository
already keeps it. 39 python checks print a count, 33 also print their members,
and the six that do not are generators and demos -- fuzz_trainer,
gen_formats_catalog, the two gft demos, run_conformance_vvp. Not one is a check.

That second number is the uncomfortable one and it belongs in the record. The
three times a total hid a matcher error this session -- 153 of 232, 63 of 1569,
5 of 8 -- were all in my own ad-hoc probes. The rule I was about to propose to
the repository is one the repository already keeps and I do not.
@gHashTag
gHashTag enabled auto-merge (squash) September 4, 2026 00:25
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

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

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 00:26:01 UTC

Summary

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

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9b8875f1c9d4 != 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 9f233f2 into master Sep 4, 2026
27 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.

META_DASHBOARD marks four deliverables COMPLETE against paths a recovery commit deleted in April

1 participant