Skip to content

feat(0126-HipGluteGroinLandmarkSpecsCaptureCompare): hip/glute capture, compare, placement - #128

Merged
Ryan-AI-Studios merged 1 commit into
mainfrom
feature/0126-HipGluteGroinLandmarkSpecsCaptureCompare
Aug 23, 2026
Merged

feat(0126-HipGluteGroinLandmarkSpecsCaptureCompare): hip/glute capture, compare, placement#128
Ryan-AI-Studios merged 1 commit into
mainfrom
feature/0126-HipGluteGroinLandmarkSpecsCaptureCompare

Conversation

@Ryan-AI-Studios

@Ryan-AI-Studios Ryan-AI-Studios commented Aug 23, 2026

Copy link
Copy Markdown
Owner

What

Track 0126 hip/glute/groin form-read capture/compare/adjust.

  • Frozen v1 ids (ASIS/PSIS/glute_outer/bottom/top_seam/groin_fold/thigh_medial) in KNOWN_LANDMARK_IDS + template blanks
  • Fuse: same-id left Y overlay + back X/Z (no new DEPTH_PAIRS)
  • Sidecar hip_glute_metrics.json (proportion report stay 1.2.0)
  • CLI proportion blockout-hip-glute-compare + MCP mesh_proportion_blockout_hip_glute_compare (catalog 50)
  • Soft new-id glute Y/Z after seat write and dual lock (B33); do not abs measured (B32)
  • Hold 0106/0092/0068/0053/0070/0036; no glute_outer X consume; no remake/D7

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) writes hip_glute_compare.json plus sidecar hip_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_seam Y/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.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ 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")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4d98ef1. Configure here.

return "hold_priors"
if max(vals) < 1.0:
return "hold_priors"
return "soft_adjust"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4d98ef1. Configure here.

@Ryan-AI-Studios
Ryan-AI-Studios merged commit 333bfeb into main Aug 23, 2026
3 checks passed
@Ryan-AI-Studios
Ryan-AI-Studios deleted the feature/0126-HipGluteGroinLandmarkSpecsCaptureCompare branch August 23, 2026 17:38
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