feat(0126-HipGluteGroinLandmarkSpecsCaptureCompare): hip/glute capture, compare, placement - #128
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 4d98ef1. Configure here.
| elif inner_r is not None: | ||
| midline_gap = inner_r > 0.0 | ||
| if midline_gap: | ||
| messages.append("glute_midline_gap") |
There was a problem hiding this comment.
Midline gap always flags
Medium Severity
glute_midline_gap treats any positive inner-surface separation as a problem. Normal dual RECIPE_glute_soft_* parts leave an intentional cleft, so product-class recipes always trip this token, unlike sibling form-reads that use real thresholds.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 4d98ef1. Configure here.
| return "hold_priors" | ||
| if max(vals) < 1.0: | ||
| return "hold_priors" | ||
| return "soft_adjust" |
There was a problem hiding this comment.
Seam soft-adjust uses wrong X
Medium Severity
glute_top_seam is soft-adjust eligible and mapped to RECIPE_glute_soft_l. Back-fused seam X near midline versus the left glute center yields a large delta.x, so _suggest returns soft_adjust even when Y/Z already match. Soft consume only writes Y/Z.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 4d98ef1. Configure here.


What
Track 0126 hip/glute/groin form-read capture/compare/adjust.
KNOWN_LANDMARK_IDS+ template blankship_glute_metrics.json(proportion report stay 1.2.0)proportion blockout-hip-glute-compare+ MCPmesh_proportion_blockout_hip_glute_compare(catalog 50)Honesty
HIP_GLUTE_COMPARE_HONESTY= authoring QA only. Green compare is not mesh or print success.Why
Package A has hip/glute DEPTH + HAVE ids, not ASIS/PSIS/outer/bottom/groin form-read. Agents were guessing seat/span/gap from H-frac priors (0106/0092/0068).
Tests
ledgerful verify: ruff / format --check / basedpyright / pytest 2119 passed, 3 skipped. Codex R2 PASS.Note
Medium Risk
Touches landmark fuse and glute recipe placement, which can change blockout geometry when new ids are present. Compare is authoring-only JSON and does not alter auth or print pipelines.
Overview
Adds track 0126 hip/glute/groin form-read: frozen landmark ids, fuse XYZ, authoring compare, and measured glute Y/Z overlay after seat dual-lock.
New ids (
asis_*,psis_*,glute_outer/bottom,glute_top_seam,groin_fold_*,thigh_medial_*) land in known ids and template blanks. Fuse fills back X/Z and left Y without new DEPTH_PAIRS and without inventing missing Y.blockout-hip-glute-compare(CLI + MCP; catalog 50) writeship_glute_compare.jsonplus sidecarhip_glute_metrics.json. Compare is authoring QA only (HIP_GLUTE_COMPARE_HONESTY); report schema stays 1.2.0. Soft-adjust is limited to new-id glute Y/Z; outer X and existing hip/glute priors stay hold.Recipe emit overlays measured
glute_bottom_*/glute_top_seamY/Z after dual lock so seat write cannot clobber them. Existing hip/glute scale constants are unchanged.Reviewed by Cursor Bugbot for commit 4d98ef1. Bugbot is set up for automated code reviews on this repo. Configure here.