Skip to content

BarrenTestSidecar refuses only a *_test.dag with ZERO test fn, so PARTIAL enrollment is invisible by construction: 512 plain witness-named Bool fns across 91 files never enroll while their file passes the wall — adjudicate which are intended controls, and make the wall's predicate completeness rathe - #9617

Closed
briansrls wants to merge 7 commits into
mainfrom
session/snappy-newt-182

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session snappy-newt-182.
Pushing to session/snappy-newt-182 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

Brian Searls and others added 7 commits August 28, 2026 02:08
…t invisible

`BarrenTestSidecar` refuses only a `*_test.dag` with zero test decls, so PARTIAL
enrollment is invisible to it by construction. The mechanism behind the live
instances of that class is not the predicate's strength — it is that "what a test
decl IS" had two answers in one binary, wired to opposite sides of the same gate:

  floor_discovery_scan_test_decl_names   `test fn ` + `test data `  <- what the WALL counts
  witness_file_from_source               `test fn ` ONLY            <- what the ROSTER enrols

A file whose test decls are all `test data` therefore SATISFIED the wall (its
predicate found decls) and enrolled ZERO claims (the roster's scan found none).
Nothing refuses, nothing runs, and the run's own
`offered = routed + declined_long + declined_live` partition stays exact because
the site was never offered.

The population was declared before it was repaired, at
`v2.workflow.floor_naming_hygiene`, and re-measures unchanged: 40 `test data`
decls in 15 files over both source roots — 34 in 13 files carrying no `test fn`
at all, and 6 in 2 files the floor already enrols. The second group is the
load-bearing one: each of those files carries `test fn` decls the floor enrols,
so neither is barren under ANY predicate over the file, while 6 of its authored
claims silently never ran. No strengthening of a file-grain wall could have
reached them.

MEASURED, not assumed. All 40 claims were executed through `claim_batch
--hermetic`, one invocation per file: 40 witnesses across 15 `[resolve-summary]`
lines, zero FAIL. `test data` needs no new execution mechanism — `run_claim`
calls `run_in_context`, whose `lookup_fn` resolves a `DataItem` as readily as a
function node — which is why the roster is the only thing that had to move.
Enrolling them manufactures no red.

Also in this change:

- The compensating second scan in `assemble_prepared_subject` is DELETED, not
  left beside the fix. It existed only because the roster builder could not see
  `test data`; with the fork closed, `site.is_none()` means "declares no test
  decl" in the wall's own vocabulary. §4b(4): a climb deletes the lower-rung
  machinery it obsoletes, rather than accumulating a third spelling.

- Seven dead aliases deleted from `body_lowering_match_test.dag`. Verified by
  exhausting the file's tail: they are bare one-line delegations in exact
  bijection with the seven enrolled `test fn`s above them, referenced nowhere in
  the corpus. Enrolling them would double-count claims that already run; the
  correct disposition is removal, not enrollment.

- The `floor_naming_hygiene` note is corrected in place. It declared this exact
  repair as STILL OPEN with this exact population; leaving that standing would
  be a knowingly-false recital in the module that owns the rule.

WHAT THIS DOES NOT CLAIM. The three scanners now AGREE; they are not unified.
That residue is unchanged and its prerequisite is unchanged — the canonical
parser must retain the authored `test` marker, which needs a GrammarExpr
contextual-keyword terminal that does not exist yet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The PR closed the `test fn`-only roster fork but left the same note's
earlier census describing witness_file_from_source as `test fn` ONLY and
preparation as finding files "carrying no `test fn`". Both were made
false by this change, inside the single authority for the fact. Per
DESIGN §3 the note now reads consistently: the scanner row states the
current vocabulary and records the divergence as historical.

Found by review 57108 (codex/gpt-5.6-sol).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The `test data` enrollment in this PR routes three witnesses to the
required floor for the first time, and all three error with
`no declaration named 'claim_atom_node' in this execution's loaded
index`. The cause is not the enrollment: four modules in their
dependency chains declare ZERO imports while using ~15 free symbols
each, so they were never resolvable in a bounded import closure. They
appeared green only because nothing ran them -- the exact
specification-without-execution failure the enrollment exists to expose.

Every symbol home was resolved individually and cross-checked against
structurally identical peer fixtures that do import correctly
(v2/lens/parallelism/data_dependency_test.dag is the near-exact
template for three of the four).

Measured: all three witnesses PASS under claim_batch --hermetic. That
is a positive control only -- claim_batch loads whole source roots, so
it was green before this commit too. The discriminating measurement is
the floor's own per-witness import closure, which is what errored.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ag/gunbc reorg

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Closing: this branch has zero diff against main — its content already landed, so merging it would be a no-op.

Measured: git diff --name-only origin/main origin/session/snappy-newt-182 returns 0 files.

I brought this branch up to date with main earlier today to clear a stale MERGE CONFLICT notice. That merge was clean, and the reason is now visible: there was nothing to conflict, because main already contained the work. Where files looked 'absent' on main they had been moved by #9637's dag/gunbc reorganisation, not deleted, and git resolved the renames correctly.

Its CI red is main's inherited state (four required phases are currently red on main itself), not a defect in this branch — but that is moot for an empty PR.

If some part of the intended change is genuinely missing from main, reopen naming the specific declaration and I will re-check; I could not find one.

— sent from calm-ram-380

@gunbai-bot gunbai-bot Bot closed this Aug 28, 2026
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.

1 participant