Skip to content

raw_state_unreferenced: the undefined family — six markup/config languages record 0 on a census with no population to count #2866

Description

@squid-protocol

The census's last open population: css, dockerfile, html, markdown, sqlite, yaml all record raw_state_unreferenced 0.00 against a 2.50 median — six of the corpus's 26 remaining open-defect cells (23% of the total, the single largest metric share at 6 of 46). All six are claimed by the ledger's orphan-detection-is-name-recurrence (upstream-bug, still_reproduces: true), the one census entry #2806 did not retire.

Measured 2026-09-07 on corpus main (docs/bias_data.json cell_categories, all six extraction), engine main a87cb26d. The unreferenced_by_name contract itself is stated (#2806 → #2825, docs/unreferenced_by_name_contract.md); its audit table closes with exactly this family: "no callable units to census — either nothing is extracted (html, markdown) or every extracted unit is a synthetic bucket (corollary 6). This is the undefined family of #2549, not this contract's." This issue is that deferred half.

The measurement

A census over a population is 0 for two different reasons, and the cell cannot say which:

Both read 0, and per the jcl precedent (jcl-steps-have-no-invocation-by-name): 0 here means UNANSWERABLE, not clean. These six 0s sit red against the 2.50 median exactly the way functions_found/markdown sat red before #2795 — a metric scored for a language whose governing mechanism the report itself says is incomparable.

What makes this more than an n/a stamp

Several of the six have real name-and-reference forms the extraction currently gives no named unit to:

  • yaml: yaml: every extracted step is named run — func_start captures no name, so orphan/duplicate census and per-step identity are all dead #2767 already extracts steps by their name: key — a named step is referenced by needs:/job dependencies; anchors &name are referenced by *name.
  • dockerfile: FROM base AS builder declares a named stage; COPY --from=builder and a later FROM builder reference it by name.
  • css: @keyframes slide is referenced by animation-name: slide / animation: slide 2s.
  • sqlite: CREATE TABLE t / CREATE INDEX i are referenced by every later statement naming them (the orphan-conversion-opaque-counts entry already observed main.sql reading 7 "orphans" for 4 indexes before corollary 6 zeroed it).
  • html: id="x" is referenced by href="#x"/getElementById; markdown likewise has reference-style link definitions.

So per language the decision is one of three, and it is the whole issue:

  1. contract-level absence — the census is not computed where the censusable population cannot exist (the jcl invocation_model shape, or functions_found[markdown] −100%: func_start is n/a for markdown but functions_found scores it anyway — the structure-count rows have no n/a mechanism #2795's n/a inference extended to the census: n/a when func_start is n/a or when every extracted unit is corollary-6 synthetic), the cell becomes n/a, comparable count drops;
  2. census over real nameable units — where the language genuinely declares reachable-by-name units, extract them as such (or census them without extraction) so the cell measures the language honestly;
  3. corpus re-plant — where the plant simply never asked the question the language can answer.

Option 2's bar is the contract's own warning: "the census reads 100%" and "the language cannot be asked" are different claims — check the crucible before the control corpus, per language.

The point

After this family, raw_state_unreferenced has zero open cells and orphan-detection-is-name-recurrence is narrowed or retired — the census is then fully governed by its stated contract, every remaining 0 either n/a by mechanism or a measured answer. Open-defect share drops 26 → 20 of ~2645 (or fewer comparable, if cells go n/a).

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    core-engineModifications to the central physics and parsing enginemetricsHeuristics, risk exposures, and topological math updates

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions