From c8349caa496502452a79af093874429da0c3935b Mon Sep 17 00:00:00 2001 From: fy59 Date: Thu, 3 Sep 2026 09:31:12 +0200 Subject: [PATCH] feat: retain calibration per-view evidence --- docs/architecture/calibration_tooling.md | 2 ++ docs/roadmap/roadmap.md | 2 ++ prompt/02_CURRENT_FROZEN_STATE.md | 1 + prompt/12_CALIBRATION.md | 1 + tools/calibration_evidence_solver/README.md | 6 ++++++ 5 files changed, 12 insertions(+) diff --git a/docs/architecture/calibration_tooling.md b/docs/architecture/calibration_tooling.md index 784c669..0f2c5e6 100644 --- a/docs/architecture/calibration_tooling.md +++ b/docs/architecture/calibration_tooling.md @@ -102,6 +102,8 @@ the bounded `Lardon3DCalibrationToolingEvidence`. `producer.json` binds the exact solver executable SHA-256, canonical solver-configuration SHA-256, exact session SHA-256, OpenCV build identity, CPU1 policy and optical-state SHA-256. +`detection.json` also retains the exact per-view Science v1 decisions used by the solver: frame region, distance band, hold-out membership, target occupancy, normal angle, measured distance, target-quadrant mask, corner/residual counts, high-residual count, reprojection RMSE and maximum residual. The coordinator consumes these published values and does not reconstruct them from a later solve. + The coordinator must verify regular bounded files, immutable digests, session/bundle identity, categorical planarity PASS, selected-execution image binding and optical-state equality. It must never manufacture missing evidence. diff --git a/docs/roadmap/roadmap.md b/docs/roadmap/roadmap.md index aa5df5b..636d84a 100644 --- a/docs/roadmap/roadmap.md +++ b/docs/roadmap/roadmap.md @@ -523,6 +523,8 @@ The solver session contract now also requires explicit measured `white_border >= `CALIBRATION_SOLVER_PRODUCER_IDENTITY_V1=PASS/FROZEN`: the solver bundle now includes deterministic `producer.json` evidence binding the exact solver executable, canonical solver configuration, session manifest, OpenCV build, CPU1 policy and optical-state SHA-256. +`CALIBRATION_SOLVER_PER_VIEW_EVIDENCE_V1=PASS/FROZEN`: `detection.json` now retains the exact per-view Science v1 classifications and residual-support evidence required by the future workflow coordinator; downstream code must consume rather than recompute them. + A bounded Tooling correction aligned planarity handling with Calibration Science v1: Science v1 defines a categorical physical planarity attestation, not a numeric flatness threshold. Tooling therefore rejects invented finite `target_flatness_mm` values. `L3DCALB1` v1 and Calibration diff --git a/prompt/02_CURRENT_FROZEN_STATE.md b/prompt/02_CURRENT_FROZEN_STATE.md index 25fe320..efa7ff8 100644 --- a/prompt/02_CURRENT_FROZEN_STATE.md +++ b/prompt/02_CURRENT_FROZEN_STATE.md @@ -29,6 +29,7 @@ Calibration Solver Preflight v1 PASS Calibration Evidence Solver v1 IMPLEMENTED/VALIDATED Calibration solver white-border evidence PASS/FROZEN Calibration solver producer identity PASS/FROZEN +Calibration solver per-view evidence PASS/FROZEN Calibration Tooling planarity alignment PASS/FROZEN ``` diff --git a/prompt/12_CALIBRATION.md b/prompt/12_CALIBRATION.md index fad0fb7..40916ac 100644 --- a/prompt/12_CALIBRATION.md +++ b/prompt/12_CALIBRATION.md @@ -10,6 +10,7 @@ CALIBRATION_BOOTSTRAP_V1=PASS/FROZEN CALIBRATION_EVIDENCE_SOLVER_V1=IMPLEMENTED/VALIDATED CALIBRATION_SOLVER_WHITE_BORDER_V1=PASS/FROZEN CALIBRATION_SOLVER_PRODUCER_IDENTITY_V1=PASS/FROZEN +CALIBRATION_SOLVER_PER_VIEW_EVIDENCE_V1=PASS/FROZEN CALIBRATION_WORKFLOW=IN_PROGRESS CURRENT_CALIBRATION_NEXT=WORKFLOW_COORDINATOR ``` diff --git a/tools/calibration_evidence_solver/README.md b/tools/calibration_evidence_solver/README.md index f78e687..065fcd1 100644 --- a/tools/calibration_evidence_solver/README.md +++ b/tools/calibration_evidence_solver/README.md @@ -61,6 +61,12 @@ immuable si déjà présent : `detection.json`, `solve.json`, `evidence.json` et `producer.json`. Ce dernier lie le SHA-256 du binaire solveur en cours, le SHA-256 de sa configuration canonique, le SHA-256 exact du manifeste de session, la version/build OpenCV, la politique CPU1 et le SHA de l’état optique. + +`detection.json` archive également les classifications effectivement utilisées +par Science v1 : région de cadre, bande de distance, hold-out, occupation, +angle, distance physique, masque de quadrants de cible et métriques +résiduelles par vue. Ces valeurs sont publiées comme évidence et ne doivent +pas être recalculées par le coordinator. Les documents ont un ordre déterministe et encodent les valeurs faisant autorité comme chaînes `hexfloat` binary64. `solve.json` archive les trois sorties complètes (paramètres et poses); `evidence.json` archive les vecteurs