Skip to content

Seals: 0 of 1072 specs verify, 928 with an unchanged spec_hash — gate it or remove it #2150

Description

@gHashTag

The measurement

t27c seal --verify run over every one of the 1072 specs:

928   STALE, spec_hash MATCHES     the spec did not change; the generated code did
118   STALE, spec_hash DIFFERS     the spec changed too
 26   no seal at all
  0   VERIFY                       not one spec in the corpus verifies

This is known and deliberate — the question is whether it should stay that way

bootstrap/src/suite.rs, above the seal phase:

"W627: seal staleness is golden-file drift, not a defect population — 1056 of 1064 are stale and ~940 have an UNCHANGED spec_hash. It is recorded in the ledger for visibility and excluded from the corpus defect count below, because listing it as expected failure is debt."

And the ratchet agrees: docs/reports/suite_expectations.json has 326 entries and zero for seal-verify — 173 parse, 132 parse-no-discard, 21 no-vacuous-verilog-test.

So the phase runs, the failure is known, and it is tolerated with the reason written down. Nothing here is a surprise to the repository.

Why file it anyway

A seal answers exactly one question: did the generated code change while the specification did not? For 928 specs the answer is yes, and nothing acts on it. That is not a broken mechanism — it is a working mechanism whose alarm is disconnected.

Two honest options, and they are opposites:

  1. Re-seal the corpus and make the phase a gate. Then a codegen change that alters output without a spec change fails CI, which is what seals are for. Cost: one blessing run, plus every future codegen change needs a deliberate re-seal.
  2. Remove the mechanism. 1715 seal files, zero verifying, no gate. If the answer is never acted on, the files are storage and the phase is time.

What should not continue is the third state — keeping the files, running the phase, and ignoring the verdict — because it reads to a newcomer as evidence that does not exist. It cost this session a wave to discover that (T247 published wrong counts from an ad-hoc check before the authoritative one was run; corrected in T248).

Related

  • t27c seal <spec> --verify is the authoritative check; a regex over .trinity/seals/*.json is not and was wrong by twenty-fold.
  • Theorems T247, T248, T248a in docs/theory/IGLA-FORMAL-RESULTS.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions