ps-plate-03-verify: implement authoritative verification stage#80
Conversation
Implement the verification pipeline in crates/plate-solver/src/verify.rs: - Attitude: pair 4 image and 4 catalog pattern stars by centroid-distance order, estimate coarse FOV from largest-edge ratio, solve SVD attitude, reject reflections (det(R) < 0). - Projection and match: gather catalog stars within diagonal-FOV radius of the boresight (R row 0), derotate and project to pixels, keep in-frame, trim to brightest 2*n_centroids, and match 1:1 within match_radius*width. - False-alarm acceptance: run the binomial test; accept the first candidate whose probability is below the Bonferroni-corrected threshold. Wire the new verify module through lib.rs, candidates::verify_candidate, and solve::iterate_patterns (passing centroids and image dimensions). Co-Authored-By: Claude <noreply@anthropic.com>
|
Mechanical rustfmt-only fix for PR #80 (ps-plate-03-verify). CI's required rustfmt check (cargo fmt --all --check) failed on head 65ebe2e; this reflows call arguments in candidates.rs and verify.rs. No logic change -- cargo check --all --locked passes. Provenance note: applied by an operator-directed agent, not by the authoring polecat. slit's session was dead and its worktree git linkage was severed, so it could not push its own fix. The authored content of this PR is unchanged and remains slit's (review/judge=SUCCESS on 65ebe2e). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014YmME89aAzhaDdS65KVMBK
|
|
CI repair on an already-submitted PR. The authoring polecat (furiosa) had already run `gt done` and exited, so no seat remained to own the red checks (ps-ops-17-fmt-pre-done-gate, second occurrence after PR #80). Changes are deliberately minimal — the authoring design is left intact for the judge to review: - `cargo fmt --all` over refine.rs, solve.rs, verify.rs (whitespace only). - verify.rs: replace a `match ... { Some(r) => r, None => return None }` with `?` (clippy::question_mark). Semantically identical. - verify.rs: `#[allow(clippy::too_many_arguments)]` and `#[allow(clippy::type_complexity)]` on `match_projected_to_centroids`, matching existing precedent in solve.rs and preparation.rs rather than redesigning the function signature pre-review. Verified locally: `cargo fmt --all --check` clean, `cargo clippy --workspace --all-targets --all-features --locked -- -D warnings` clean, 137 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qz1AHuSpjFqRYJWVVVq9mp
…nement, residuals, and solution outputs (#82) * ps-plate-04-refine: scaffold refine module with signatures and helpers * ps-plate-04-refine: wire real refine module into lib.rs * ps-plate-04-refine: implement attitude re-fit, RA/Dec/Roll, FOV/distortion refinement, residuals, and solution outputs * ps-plate-04-refine: fix rustfmt drift and three clippy lints CI repair on an already-submitted PR. The authoring polecat (furiosa) had already run `gt done` and exited, so no seat remained to own the red checks (ps-ops-17-fmt-pre-done-gate, second occurrence after PR #80). Changes are deliberately minimal — the authoring design is left intact for the judge to review: - `cargo fmt --all` over refine.rs, solve.rs, verify.rs (whitespace only). - verify.rs: replace a `match ... { Some(r) => r, None => return None }` with `?` (clippy::question_mark). Semantically identical. - verify.rs: `#[allow(clippy::too_many_arguments)]` and `#[allow(clippy::type_complexity)]` on `match_projected_to_centroids`, matching existing precedent in solve.rs and preparation.rs rather than redesigning the function signature pre-review. Verified locally: `cargo fmt --all --check` clean, `cargo clippy --workspace --all-targets --all-features --locked -- -D warnings` clean, 137 tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qz1AHuSpjFqRYJWVVVq9mp --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Implements the verification stage of the plate solver per openspec/specs/plate-solver/spec.md §Verification.
Reuses math-core attitude/binomial/fov/pattern helpers and pattern-database nearby_stars query.
🤖 Generated with Claude Code