# Observable-inferred decomposition (OID)

This directory contains the final, audit-bound OID v2 evidence for two LegacyCelerisLab cases: `karman_re100` and `illusion_1.0L`. The authoritative result is **conditional**—not formal `COMPLETE` and not publication-ready—under `runs/active-two-scene-v2/OID_PHASE4_AUDIT_20260723T1510Z.json` (SHA-256 `9358105c7199793a2fd810885044295350da165a0f8e9026734ca1a51fc52ed8`).

## Read in this order

- [`OID_METHOD.md`](OID_METHOD.md): normative Schlegel LR/LE-OID mathematics and claim policy.
- [`PIPELINE.md`](PIPELINE.md): exhaustive data, numerical, execution, artifact, verification, and recovery contract.
- [`RESULTS.md`](RESULTS.md): all twelve held-out fold results, promotion decisions, interpretation, limitations, and correction history.
- [`archive/RELOCATION.md`](archive/RELOCATION.md): checksum-bound payload relocation and staged restore procedure.
- [`provenance/freeze/OID_CONDITIONAL_FREEZE_20260723T173300Z.json`](provenance/freeze/OID_CONDITIONAL_FREEZE_20260723T173300Z.json): exact conditional evidence-package inventory.

## Current status

All six canonical products and all four formal analyses pass integrity checks. The exact reduced masks contain 5,025 fluid/95 solid cells for Kármán and 5,024 fluid/96 solid cells for Illusion. The all-fold `observed H-weighted R² > reselected realization-deranged R² + 0.01` gate promotes only `delta_sensors` for both scenes. Both `delta_forces` jobs are descriptive, valid negative-control outcomes but are not promoted; their held-out LR state-coefficient reconstruction R² values are all negative.

The historical dataset declares exactly three realizations (`r1`–`r3`) per scene. They support LORO statements only about these declared runs; they do not establish broad stochastic independence, population generalization, operating-condition robustness, or asymptotic uncertainty. The audit therefore freezes the current result conditionally.

Formal `COMPLETE` remains fail-closed. No `RUNNING.json`, `COMPLETE.json`, or canonical run-level `oid-formal-run/v2` manifest binds the historical three-realization run, and relocated artifacts cannot satisfy the strict local loader. No marker may be inferred or created retroactively.

## Reynolds convention

`karman_re100` is the case ID. In `configs.py`, `re_code = U0(2D)/nu = 100` with `D=20`, `U0=0.01`, and `nu=0.004`; the physical cylinder Reynolds number is `Re_D = U0 D/nu = 50`. Use **Re_code=100 (2D reference), equivalently Re_D=50**—not an unqualified “cylinder Re=100.”

## Active evidence and boundaries

Active entrypoints are `scripts/rebuild_phase3_canonical.py`, `scripts/run_phase3_5_formal.py`, `python -m v2.audit` with `PYTHONPATH=src/OID_analysis`, `scripts/plot_phase4_summary.py --output <fresh-directory>`, and `scripts/build_freeze_manifest.py --created-utc <UTC> --output <fresh.json>`. Canonical evidence is under `runs/active-two-scene-v2/`; `runs/ACTIVE_EVIDENCE.json` binds the relocated source payloads.

The freeze manifest is the exact **conditional evidence-package boundary**: it hash-binds compact committed evidence and may also bind large ignored NPZ payloads available locally or on the checksum-bound Optane archive. It does not assert strict-loader `COMPLETE`; that gate remains fail-closed. Because the manifest hash-binds the docs as they existed at freeze creation, these later consolidation notes describe the frozen package but are not retroactively part of that immutable hash set.

`archive/legacy_oid_v1/`, `archive/v2_development_code/`, `archive/v2_development_runs/`, old `runs/formal-*` products, `data/`, and `data_li22b/` are provenance-only or read-only inputs, never current claim evidence. Archive directories are non-executable: do not invoke archived scripts or depend on archived imports. OID is distinct from SR (symbolic regression of reduced relationships) and CCD/CCA (whitened co-variation); shared data or subspaces do not make their claims interchangeable.
