Synthesis — c-csi-crowd-occlusion, session 01KTFBXV5PQRHT8KNWPPXHPKVZ
Question: where does the mean-blockage signature (L4.6) cross the multipath-variance signature (L4.5) as occupancy rises on a real PostGIS floor, and how does the crossover move with carrier frequency?
Corpus. Complete 16-cell grid — n_agents ∈ {0,1,2,3,4,6,8,12} × {2.4, 5} GHz, seed 0, 48 placements/cell — on csi-synth-corridor-link / test-lab-synth-floor-0 (1 Tx × 3 Rx, 25 walls, cylinder bodies r=0.20 m / 5 dB). 21 launch attempts for 16 successes: 4 lost to transient sim.s3.put BoundaryTimeouts (30 s cap, no in-runner retry) and 1 to a macOS fork-safety SIGTRAP in the MCP server's docker-build child (CPython 3.12 fork+exec with cygrpc threads); all 5 succeeded on relaunch.
Criterion 1 — artefact floor: MET. Every run returned the IP-085 scalar floor with the three named keys (e.g. run 01KTFCH0FD55ESP7TV4PA3ZT8J, n=12 @ 2.4 GHz: mean_atten_db_per_person=24.93, k_vs_occupancy_slope=−0.157, variance_monotonicity=−1.0) plus links.parquet and csi.hdf5 — see sim://run/01KTFCH0FD55ESP7TV4PA3ZT8J/artefact/links.parquet. No NaN/Inf survived the reduction.
Criterion 2 — L4.6 mean blockage: MET. Pooled per-occupancy mean |H| falls monotonically with ρ(n, mean_amp_db) = −0.976 on both bands, with the saturating shape the analytical sandbox predicts.
Criterion 3 — L4.5 variance rise + crossover: MET. CV climbs with ρ(n, CV) = +1.00 (2.4 GHz) and +0.976 (5 GHz). The normalised-CV-vs-normalised-attenuation crossover sits at N ≈ 0 (2.4 GHz)* and N ≈ 1.4 (5 GHz)*: on this corridor geometry the variance signature dominates essentially from the first occupant at 2.4 GHz, and the crossover moves up with carrier frequency. The two-signature tension in thesis/csi-sensing §3 resolves into a geometry- and band-dependent crossover curve at very low N — not into a blockage-dominant regime.
Criterion 4 — reduction artefacts: MET (driver mode). csi_occupancy_crossover.py ran host-side over the pooled links.parquet corpus (the README's local-curious driver path; per-run inputs fetched sequentially), emitting csi_occupancy_crossover.metrics.json with N* per band and candidate figure F4.x (fig_csi_occupancy_crossover.png) under _cache/campaign-sessions/01KTFBXV5PQRHT8KNWPPXHPKVZ/reduction/.
Reading. Outcome 1 of the brief: feeds figure F4.x and the reconciling paragraph for csi-sensing §3 — with the nuance that this corridor geometry barely exhibits a blockage-dominant window at all; the L4.6 signature saturates fast (≈25 dB/person initial drop, then flat) while CV keeps rising. Calibration against real 80 MHz data stays with exp-csi-calibration (IP-094 Phase 4); body-model sensitivity is the sibling session (c-csi-body-em-fidelity).
Platform notes. (1) sim.s3.put 30 s timeout with no retry killed 4/21 attempts — same surface flagged in the c-walk-notebook-flex session; an artefact-sync retry would have saved ~20 % of launches. (2) The MCP server (CPython 3.12, framework build) forks docker children while cygrpc threads are live — one child trapped in libdispatch pre-exec; venv should move to Python 3.13 / posix_spawn.