Why this campaign exists
c-coverage-meets-crowds's headline blind-spot number (57% on resplan-12439) was 76% one physically wedged agent — the floor's own walkable-QC wedge warning fired and never reached the coverage stage — and four axes (anchor count, area, furniture, placement) were fully confounded across floors, at zero seed replication. The 2026-07-06 audit quantified the estimator's cost: the contaminated σ regime needs ~47 seeds/arm; the clean regime needs ~10 for a 5 pp effect at 80% power. Fix the estimator, then isolate the axes on one geometry (devore2012_62c8 ch. 11: interactions first).
Design
2×2×2 factorial on resplan-12439's own geometry: {anchor layout: dispersed/hub} × {furniture: on/off} × {placement policy: A/B}, geometry fixed, paired by seed across cells. 8 cells × 10 seeds = 80 runs.
Artefact contract (hard gate)
Bounded-influence footfall estimator wired into the reduction (step 1, non-negotiable); coverage_factorial.parquet (per seed × cell); factorial effect table with interaction + main-effect CIs; everything pushed to the session S3 prefix — the original never persisted coverage_meets_crowds.parquet despite all four criteria citing it.
Figure render request (mandatory)
seed_trace,paired_diff(dispersed − hub per seed).- Corrected
fig_coverage_summarywith seed-bootstrap CI error bars (the audit'sfig-blindspot-summary-ci.pyform).
Honest scope
One geometry by design — this is the isolation campaign; generalization is c-csi-cross-geometry-scaleout's pattern. The estimator fix must be back-ported and the 7-floor corpus re-run before any cross-floor coverage claim is trusted.