Skip to content

Grid accuracy: require valid latest pivot calibration + refuse synthetic data#9

Merged
jacklange22 merged 1 commit into
mainfrom
feat/grid-accuracy-require-pivot
Jun 1, 2026
Merged

Grid accuracy: require valid latest pivot calibration + refuse synthetic data#9
jacklange22 merged 1 commit into
mainfrom
feat/grid-accuracy-require-pivot

Conversation

@jacklange22
Copy link
Copy Markdown
Owner

Summary

Per operator: a thesis-grade Aurora grid accuracy run (9-point 3×3 tracker grid) must use a real, current pivot calibration and never synthetic data.

Require a valid, latest pivot calibration (priority)

  • The 0B probe tip vector now comes only from the latest pivot calibration whose summary.status == "success" (matching tool, has tip_vector_local_mm), newest-first under data/pivot_calibration/. New find_latest_valid_pivot_calibration / resolve_grid_tip_source helpers.
  • Any hardcoded tip_vector_mm / tip_file and the coil-origin fallback are ignored — pivot only.
  • No valid pivot ⇒ the run is refused (execute raises) and preflight shows a hard "Pivot Calibration" blocker. The chosen pivot run name + tip + RMSE are recorded in the bundle (pivot_calibration, pivot_tip_vector_mm, pivot_calibration_run) so the run is self-documenting.

Refuse synthetic data entirely

  • Removed the dry-run synthetic data-generation path from the experiment and the page-side capture. The experiment always requires real captured points (raises if none) and rejects synthetic-flagged samples unconditionally (was: only when dry-run off). Preflight blocks synthetic captures unconditionally; page-side capture is live-tracker only.
  • GridDefinitionConfig defaults: allow_coil_origin_fallback=False, dry_run=False. example.yaml stripped to real-data + pivot-required.

Verification (real pivot, not mocked)

  • Live 3×3 = 9-point run auto-selects the repo's latest valid pivot 20260424_230515_pivot_calibration_review (tip [-1.06,-4.41,17.57]), aligns 9/9 at RMS 0.21 mm, records the provenance.
  • No captures / synthetic captures / no valid pivot ⇒ all refused.
  • 225 grid/critical/thesis/GUI tests pass (reworked the synthetic + tip-cal tests for the new behaviour; added pivot-required + latest-pivot + refusal coverage).

Reviewer notes

  • Decisions (confirmed with operator): pivot validity = status=success only; synthetic = removed entirely; tip = pivot-only (no manual override).
  • The inert dry_run / tip-vector GUI controls are left in place (harmless; ignored). A follow-up can hide them and surface the pivot status on the page.
  • Scoped to grid accuracy; the concurrent two-segment-workspace edits in the tree were left out.

🤖 Generated with Claude Code

…synthetic data

Operator: a thesis-grade Aurora grid accuracy run must use a real, current
pivot calibration and never synthetic data.

Require a valid, latest pivot calibration (PRIORITY):
- The 0B probe tip vector now comes ONLY from the latest pivot calibration
  whose summary status == "success" (matching tool, has tip_vector_local_mm),
  newest-first under data/pivot_calibration/. New find_latest_valid_pivot_
  calibration / resolve_grid_tip_source helpers. Hardcoded tip_vector_mm /
  tip_file and the coil-origin fallback are IGNORED (pivot only).
- If no valid pivot exists the run is refused (execute raises) and preflight
  shows a hard "Pivot Calibration" blocker. The chosen pivot run name + tip +
  RMSE are recorded in the bundle metrics (pivot_calibration / pivot_tip_
  vector_mm / pivot_calibration_run) so the run is self-documenting.

Refuse synthetic data entirely:
- Removed the dry-run synthetic data-generation path from the experiment and
  the page-side capture. The experiment ALWAYS requires real captured points
  (raises if none) and rejects synthetic-flagged captured samples
  UNCONDITIONALLY (was: only when dry_run off). Preflight blocks synthetic
  captures unconditionally. Page-side capture is live-tracker only.
- GridDefinitionConfig defaults: allow_coil_origin_fallback=False, dry_run=
  False. example.yaml stripped to real-data + pivot-required.

Verified end-to-end: a live 3x3=9-point run auto-selects the repo's latest
valid pivot (20260424_230515, tip [-1.06,-4.41,17.57]), aligns 9/9 at
RMS 0.21 mm, and records the provenance; runs with no captures / synthetic
captures / no valid pivot are all refused. 225 grid/critical/thesis/GUI tests
pass (reworked the synthetic + tip-cal tests for the new behaviour).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@jacklange22 jacklange22 merged commit 76a38b2 into main Jun 1, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant