- run_case: --diagnostic scaled_shear_n256 (requires --flow shear_wave;
U256/U512/constant R256/projected R256, Re100, no early trace); N512
only via one of the two scaled diagnostics; scaled_n256 stays TG-only.
- assess_shear_wave: scaled=True contract reusing 92b8afe scaled
case/build/workload checks, shear diagnostic identity; signed rate bias,
refined excess over each control; hash-pinned de5b0cc N128 reference and
descriptive N128->N256 signed trend; CLI --diagnostic/--reference-files.
- tests: scaled contract, set mixing, trend/reference pin, runner options.
- shear_wave.py and oracle.py unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- shear_wave.fit_rate: finite late R=0 returns rate_fit_valid=false with
null fit quantities (no clipping, no invented rate); own screens and
budgets treat it as a failure (CONTROL_SCREEN_FAIL / refined FAIL),
other finite metrics retained, JSON-safe.
- test_projected_pairs: dry-run/execution mocks expect the explicit
'taylor_green' flow argument now passed to verify_source.
- run_case: SHEAR_WAVE_SHA256 repinned; extinction test added.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- shear_wave: validate_rows before screens (exact scheduled steps/t*, no
duplicates, all numeric/list fields finite, nonnegative error fields,
rho_min>0; signed amplitude/phase/interval errors keep their sign);
INVALID_RUN for invalid refined rows; own_screens_pass vs controlled_pass
so a CONTROL_SCREEN_FAIL set never reports a controlled pass; empty or
duplicate refined schemes rejected; pressure-budget redundancy stated.
- run_case: SHEAR_WAVE_SHA256 repinned to the updated module.
- tests: divergence/advection bounds use a(t) and the derived h^2 term;
invalid-row mutations; signed errors allowed; controlled_pass checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Modal magnitude R=hypot(a,b) with amplitude error and separate phase;
free-intercept ln R rate fit with per-interval rates, log-fit residual,
t* units and finite-positive check; spurious-pressure naming with raw rms;
INVALID_CONTROL vs CONTROL_SCREEN_FAIL (refined results kept), mixed-source
check, raw ratios to both controls; docs narrow the cubic-term scope,
startup and placement limitations. oracle.py still byte-identical.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>