Repository navigation
Make the vacuity lens honest and live: real-corpus classifier, bound consumer witness, typed falsification roster (4/4/4 correction), self-application - #7620
Conversation
…ix CI naming-hygiene break - classify_unified_test_claim_vacuity's BoolWitnessClaim arm now reads the real parsed corpus (filesystem_read + tokenize/parse_module/normalize, reusing cost_coverage.dag's proven ingest pattern) to locate the named test fn and classify its body only when it reduces to exactly one top-level `==` statement; everything else stays Unknown. - Fixed a call-shape bug (exact_structural_equality_zip_fold takes source_facts/candidate, not a/b) caught by local compile verification. - Deleted the scratch src/v2/test/claim/manual/vacuity_probe.dag file that an autosave had committed — it broke CI's witness-naming-hygiene gate (test fn outside *_test.dag). Its finding (real corpus `test fn` declarations do not parse under dag_language_model() today — `test` has no lexer keyword or grammar production at all) is preserved as a documented, empirically-confirmed ceiling in vacuity_bool_witness_real_corpus_note. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…pin with a typed roster; fix the newly-reached fixture's construction-justification gate - vacuity_test.dag: refactor the 12 inline falsification rows into named VacuityCensusRow bindings, add a typed VacuityFalsificationCaseId / VacuityFalsificationCase roster with a per-case `expected` VacuityEvidence derived by hand-tracing classify_test_claim_vacuity and confirmed by direct execution. The old hardcoded census assertion (proven_duplicate==4, proven_independent==6, unknown==2) was stale: three cases whose labels say "_behavioral" actually pass OperandProvenanceUnknown, so the classifier correctly returns Unknown for them, not ProvenIndependent. The census test now derives its expected counts from the roster's own `expected` column instead of hardcoding a second, driftable copy of the same fact. - vacuity.dag: document the broader fn-decl-collection ceiling found while wiring the item-5 consumer witness (same "general body producer" DESIGN.md open thread as the existing body-lowering ceiling note, not a new one). - vacuity_self_application_fixture.dag: add the construction_justification decl the CI naming-hygiene gate now requires now that this module is genuinely reached by a discovered floor witness (previously inert).
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Addressed both findings from review 46886, verified against the current code and fixed:
Pushed as part of — sent from jolly-fox-325 |
classified_sites was a pure alias of live_derived_sites, making derived_equals_classified_sites literally x == x — a check that cannot RED regardless of what the ingest pipeline does. Restructure classified_sites to fold every derived site through real classification, and rebind the contract's consumer_witness to fixture_ingest_is_accepted_by_execution, the witness that genuinely executes filesystem_read + ingest and can RED on a real regression. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Addressed review 46910 in e9a89d0. Both findings confirmed against current code and fixed, not just acknowledged:
Both fixes verified by real Updated — sent from jolly-fox-325 |
…eview 46930) fixture_ingest_is_accepted_by_execution only proved the fixture file ingests; it never called classify_unified_test_claim_vacuity or checked its output, so a classifier regression could stay green. Rebind consumer_witness to vacuity_consumer_witness_real_test_fn_gap_stays_unknown_by_execution, which performs real filesystem_read + ingest + fn lookup internally (via vacuity_bool_witness_evidence) and asserts the classifier's returned VacuityEvidence equals the honest ceiling value (Unknown). Also add a bounded Owner/Lane/Dissolve-trigger disposition to the live-snapshot-duplicate-partner predicate note, in the shape precedented by docs/plans/e0599-implementation-proposal.md §3.0, rather than leaving only a dissolve-on trigger with no named owner. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Addressed review 46930 in b11df77. Both findings verified against current code and fixed:
— sent from jolly-fox-325 |
…ipeline failure (review 46947) The bound witness asserted only classify_unified_test_claim_vacuity(...) == Unknown, which is the same output produced by an ingest Rejected, a missing fn declaration, and a genuinely-inconclusive body — so it stayed green under total pipeline breakage, not only under honest fail-closed classification. Now asserts ingest Accepted, the fn genuinely Absent from real decl lookup, and classification still Unknown as three independent facts, each of which reds under its own regression. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Addressed review 46947 (both findings), commit 47f4ac8. Finding 1 (witness ambiguity): confirmed — I could not honestly go further to "reach a supported real-corpus case" with a non- Also swapped the target file/fn from Finding 2 (positional citations): confirmed all three — Verified by real — sent from jolly-fox-325 |
…-Unknown collapse (review 47124) Two findings from review 47124 on PR #7620: 1. vacuity_consumer_witness_classified_sites appended every site for every VacuityEvidence outcome including Unknown, making the derived/ classified set-equality check invariant to classifier output (a DESIGN.md §5 vacuous-evidence violation). Fixed: Unknown-classified sites are now dropped instead of kept. 2. The bound witness only ever drove classify_unified_test_claim_vacuity through its Absent-fn arm, whose honest answer is Unknown — so a wholesale collapse of the dispatcher to `_ => Unknown` would still pass. Fixed: added a second, independent assertion that drives the SAME public dispatcher through its NodeCorpus{EqualsClaim} arm with LiveSurfaceSnapshot/LiteralOracle provenance (the PR #7614 shape), asserting ProvenDuplicate. Proven by mutation: temporarily collapsing classify_unified_test_claim_vacuity to `Unknown` reds the witness by execution; restoring it greens all 5 witnesses again. Also fixes an unrelated namespace collision surfaced while writing the new assertion: TestgenLayer.Unit is one of three same-named `Unit` symbols in the corpus (dag/std/types.dag, src/v2/std/cardinality.dag), so the bare reference is ambiguous — used the fully qualified v2.std.verification.Unit rather than an explicit import, since adding an import line to this previously-import-free file switched it out of whole-corpus namespace-only visibility and broke unrelated bare references (filesystem_read's hermetic capability grant, classify_vacuity_same_eval_record, vacuity_self_application_probe). Verified by real claim_batch execution: 5/5 PASS.
|
Addressed review 47124 in 6a2cdef (both findings, verified by real claim_batch execution, not just typecheck):
Proved the fix actually closes the gap by mutation: temporarily collapsed Reviews 47136 and 47143 (APPROVE, non-blocking) don't call for further changes beyond this. — sent from jolly-fox-325 |
…fixture as known infra lens_registry_completeness_holds_live failed because v2.lens.vacuity_self_application_fixture (new fixture module from this PR) is a v2.lens.* candidate with no LensIdV0 binding — it is fixture data for the consumer-witness, not an enforcing lens itself. Companion fixes (non_fold_residue frontier row + long-lane split of the 4 over-5s-budget vacuity_consumer_witness_* witnesses) were already captured by the prior auto-WIP commit and pushed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ane split (review 47204) The witness_test.dag long-lane split moved vacuity_consumer_witness_real_test_fn_gap_stays_unknown_by_execution to src/v2/test/claim/long/vacuity_consumer_witness_long_test.dag but left the contract's ScheduleWitnessEntry pointing at the old path, so the declared consumer witness could not resolve to a real function. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
review 47204 addressed: fixed at 400245a. The consumer-witness function real_test_fn_gap_stays_unknown_by_execution moved to src/v2/test/claim/long/vacuity_consumer_witness_long_test.dag as part of the fix for the eval-budget CI failure on this branch (that fn measures ~89s, well over the 5s fast-lane ceiling — DESIGN.md's operator 5s rule). lens_contract_vacuity's ScheduleWitnessEntry.entry was left pointing at the old vacuity_consumer_witness_test.dag path in that same commit, exactly the stale pointer you found. Repointed to the long-lane file; verified the contract record resolves cleanly by execution. — sent from jolly-fox-325 |
…ite_cases (review 47215) vacuity_falsification_suite_rows was a manually maintained roster duplicating the same 12 VacuityCensusRow values already carried by vacuity_falsification_suite_cases's row field — a second membership representation of one fact (DESIGN.md §2/§3). Derive it via list_map over the cases roster instead, so the two can no longer drift. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Addressed review 47215: — sent from jolly-fox-325 |
|
review 47233 addressed in 99739dd. Confirmed the finding: Fix: enrolled all 4 witness fns in that file into Checked Verified by execution:
— sent from jolly-fox-325 |
Union NFR frontier rows: keep occurrence_binding eq enrollments and main's vacuity live-snapshot-duplicate partner row (#7620). Co-authored-by: Cursor <cursoragent@cursor.com>
Auto-opened by session-dashboard for session
jolly-fox-325.Pushing to
session/jolly-fox-325advances this PR.Worker attestation
npm test,cargo test) and the result.Closes #Ndirective.Summary
Makes the vacuity lens (
v2.lens.vacuity, which classifies whether a test is a genuinecheck or a redundant restatement of the code it tests) honest and live, per the operator
ruling triggered by PR #7614.
Headline finding, not a footnote: the falsification suite's hand-reconciled
4/6/2distribution pin wasn't merely non-diagnostic — it asserted a FALSE fact about the
classifier, and nothing executed it so nobody could tell. Three suite rows are
labeled
_behavioral(diagnostic_behavioral,round_trip_behavioral,compiles_unknown_provenance), but all three actually passoperand_provenance: OperandProvenanceUnknown, notBehavioralComputation— the labelnames the
TestClaimvariant under test (DiagnosticClaim/RoundTripClaim), not anasserted provenance.
classify_test_claim_vacuity'sDiagnosticClaim/RoundTripClaimarms and the
CompilesClaimsame-eval unknown-provenance path therefore correctlyreturn
Unknownfor all three, not theProvenIndependentthe stale4/6/2pinimplicitly assumed. The real, execution-confirmed distribution is
4/4/4(
proven_duplicate=4, proven_independent=4, unknown=4), confirmed twice: once byhand-tracing the classifier's decision tree against every row's actual inputs, and
independently by direct execution (three isolated debug assertions against the real
computed census, since removed in favor of the permanent roster below).
Seven changes:
LiveSurfaceSnapshotprovenance added.BoolWitnessClaimbodies now route through a real-corpus classifier(
filesystem_read→tokenize/parse_module/normalize), with two documented,empirically-confirmed ceilings (a bare-
==-body shape, and — broader — fn-declarationcollection itself, both tracing to the same DESIGN.md "general body producer" open
thread, not two separate ones).
lens_contract_vacuity.modestaysAuditOnly(staging constraint, untouched).lens_contract_vacuity.consumer_witnessis now a realBoundConsumerWitnesspointing at the strongest available RED-control test
(
vacuity_consumer_witness_pr7614_shape_red_control_classifies_proven_duplicate).VacuityFalsificationCaseId/VacuityFalsificationCaseroster whose per-caseexpectedfield is derived by hand-tracing the classifier, verified by execution.The census test's aggregate counts (
proven_duplicate_count, etc.) are nowderived from the roster's own
expectedcolumn viavacuity_falsification_expected_count(a
count_wherefold) — never hardcoded a second time — so the two representationsof the same fact can never silently drift apart again.
via a real compile-time symbol reference from a discovered witness
(
vacuity_consumer_witness_fixture_module_reached_by_direct_call), not merely afilesystem_readstring path — closing an inert-lens hygiene gap the module-graphwalk (DESIGN.md §6) caught mid-PR.
Honest disclosure, kept prominent (not softened or buried): the consumer-witness
identity join (
vacuity_consumer_witness_test.dag) currently reconciles by realexecution, but the derived-site side is legitimately empty today — fn-declaration
collection over
normalize()output returns empty for real corpus files corpus-wide(see
vacuity_bool_witness_fn_decl_collection_ceiling_noteinv2.lens.vacuityandvacuity_consumer_witness_derived_sites_ceiling_notein the witness file). So the joincurrently holds vacuously (empty == empty), not because the mechanism is proven
against a nonempty real-corpus example. The classifier's
ProvenDuplicate-detectionlogic itself is proven correct separately and non-vacuously by a direct-call RED control
that bypasses the ingest pipeline
(
vacuity_consumer_witness_pr7614_shape_red_control_classifies_proven_duplicate).Mechanism correctness and real-corpus reachability are two different claims, and only
the first is non-vacuous today; the second stays ceilinged on the same "general body
producer" DESIGN.md open thread until that lands.
Known-red CI check, inherited (not introduced by this diff)
cicurrently fails onextdeps_scope_placement_gate_passes. Root cause (confirmed bycalm-badger-682, the extdeps-frontier lane owner):
dag/extdeps/session_dashboard.dagis the only extdeps file added since the frontier freeze anchor and is not enrolled in
any of the three frontier rosters on
main— every context that sees main's currentcontent reds on this gate, independent of this PR's own diff. A merge of
origin/maininto this branch (
423f789755) was attempted per initial guidance and did not clear it(root cause is upstream of the merge, not a stale-branch artifact) — that guidance was
retracted once the real cause was found. This is being tracked and owned upstream; no
action is being taken on it from this PR, and
dag/gunbc/legacy_extdeps_scope_frontier.tsvis deliberately untouched here.
A second, unrelated pre-existing defect was found as a side effect of this PR's
real-corpus classifier work and is being tracked/owned separately (not fixed here):
cost_coverage's own already-merged witnesses (cost_coverage_dag_logic_has_three_fn_bodies,cost_coverage_v2_tree_receipt_by_execution) fail by direct execution on a pristineorigin/maincheckout — reported to calm-badger-682 as its own standalone finding.Test plan
All claims below verified green by direct execution via
./target/release/claim_batch --source-root dag --source-root src/v2 --entry <file> --functions <fn>(built locally with
CTRL_BUILD_BYPASS_SHIMS=1 cargo build --release --bin claim_batch— plain
cargo buildin this environment silently discards its output to a remotesandbox and does not produce a runnable local binary).
src/v2/lens/vacuity_test.dag— all 10 test fns PASS, including the newvacuity_falsification_cases_each_match_expected_evidence(every case's classifieroutput matches its declared
expected) and the rewrittenvacuity_advisory_census_partitions_falsification_suite(aggregate counts nowderived from the roster, confirmed
4/4/4).src/v2/test/claim/vacuity_consumer_witness_test.dag— all 6 relevant test fns PASS,including the fixture-module-reach test and the direct-call RED control.
build,regen,heal_generated_artifactspass on the current head;cifailsonly on the inherited, upstream-owned
extdeps_scope_placement_gate_passesgatedescribed above.