diff --git a/dag/gunbc/instrument_targets.dag b/dag/gunbc/instrument_targets.dag index 848dd53f5fe..48f7034b5ef 100644 --- a/dag/gunbc/instrument_targets.dag +++ b/dag/gunbc/instrument_targets.dag @@ -189,6 +189,18 @@ fn primitive_egress_census_seed_label() -> Label { Label { package: instruments_package() target: TargetName { name: "primitive-egress-census-seed" } } } +// THE REQUIRED-LANE RESOLUTION CENSUS: for every module under the source roots, does at least +// one required lane RESOLVE it -- hand its source to compile_to_resolved under the Strict gate? +// The unreached population, by identity, is the printed product; the exit says whether it is +// empty. This is DESIGN section 3's "a product-layer dependent can stop resolving, stay broken, +// and let every required lane report SUCCESS" measured rather than warned about, after +// gunbc.site_pxe_edge_converge did exactly that on 2026-09-20 (gunbc#11607). The lane roster it +// classifies is read from gunbc.compiler_gate_workflow, the authority that emits witnesses.yml. +// `gunbc test //gunbc/instruments:required-lane-resolution-census`. +fn required_lane_resolution_census_label() -> Label { + Label { package: instruments_package() target: TargetName { name: "required-lane-resolution-census" } } +} + // THE INSTRUMENT IS A `TestRule` WITH NO DEPENDENCIES, and both halves are measurements rather // than placeholders. It answers a test question — does the heads reading read the same grammar as // the full reading — so it is not a `BuildRule`; and it depends on no other target in this graph, @@ -261,6 +273,10 @@ fn primitive_egress_census_seed_target() -> BuildTarget { instrument_test_target(label: primitive_egress_census_seed_label()) } +fn required_lane_resolution_census_target() -> BuildTarget { + instrument_test_target(label: required_lane_resolution_census_label()) +} + fn v2_native_cli_binding() -> TargetBinding { TargetBinding { target: v2_native_cli_label() producer: V2NativeCliProducer {} } } @@ -319,6 +335,10 @@ fn primitive_egress_census_seed_binding() -> TargetBinding { TargetBinding { target: primitive_egress_census_seed_label() producer: PrimitiveEgressCensusSeedProducer {} } } +fn required_lane_resolution_census_binding() -> TargetBinding { + TargetBinding { target: required_lane_resolution_census_label() producer: RequiredLaneResolutionCensusProducer {} } +} + // THE SUBJECT IS THE INSTRUMENT'S OWN FACT, NOT AN ARGUMENT THE CALLER SUPPLIES. // // `gunbc test //gunbc/instruments:heads-reading-differential` takes no source-root option, and @@ -382,7 +402,8 @@ fn instrument_targets() -> List