Skip to content

feat(0125-TorsoChestBackLandmarkSpecsCaptureCompare): torso landmark capture, compare, and placement consume - #127

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

feat(0125-TorsoChestBackLandmarkSpecsCaptureCompare): torso landmark capture, compare, and placement consume#127
Ryan-AI-Studios merged 1 commit into
mainfrom
feature/0125-TorsoChestBackLandmarkSpecsCaptureCompare

Conversation

@Ryan-AI-Studios

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

Copy link
Copy Markdown
Owner

What

Product path for torso/chest/back form-read specs: frozen assist ids → fuse XYZ (left Y overlay; back X/Z) → sidecar torso_metrics.json → CLI proportion blockout-torso-compare (photo vs RECIPE vs optional scene) → agent-facing deltas. MCP catalog 48→49 (mesh_proportion_blockout_torso_compare). Soft new-id placement only: measured scap/mid_back Y/Z when finite; otherwise 0105/0090/0066/0074/0118 priors.

Why

Package A has bust/waist + chest/breast depth, not sternum/scap/mid_back. Agents were guessing from H-frac priors. Dual-source compare is authoring QA only.

Honesty

TORSO_COMPARE_HONESTY = proportion_torso_compare_not_mesh_or_print_success. Green compare is not mesh or print success. No remake/D7 (Package A lacks new ids → emit identical). Report stay 1.2.0. Recipe stay 1.4.0. No Pose/Holistic pin. No DEPTH_PAIRS consume into oval/breast consts.

Tests

tests/test_proportion_torso_landmarks.py A1–A6 + back X/Z + left Y. tests/test_proportion_torso_compare.py B/C/D/F + sidecar unlink + hold_priors on frozen knobs. tests/test_proportion_torso_soft_consume.py E1–E5 + B32. Catalog pin-retarget 48→49.


Note

Medium Risk
Touches multi-view XYZ fuse and RECIPE scap/mid-back placement, so bad landmarks can shift blockout geometry. Scope is authoring QA with fail-closed dumps and no auth/data-path changes.

Overview
Adds track 0125 torso/chest/back form-read: new assist ids (sternum_mid, costals, scap/mid-back), fuse XYZ from left (Y) and back (X/Z) without inventing missing axes, and authoring QA blockout-torso-compare (CLI + MCP; catalog 48→49).

Compare writes torso_compare.json plus optional sidecar torso_metrics.json (report stays 1.2.0). Roles get signed mm deltas, form-read tokens (three-tire, saucer plates, breast gap, clav pride), and a closed suggestion set. Frozen oval/breast knobs stay hold_priors; only finite scap/mid-back Y/Z overlay RECIPE plate centers after existing equalize (no abs of measured Y).

Honesty: TORSO_COMPARE_HONESTY — not mesh or print success. No new DEPTH_PAIRS and no retune of 0105/0090/0066/0074/0118 consts.

Reviewed by Cursor Bugbot for commit c5df10a. 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 c5df10a. Configure here.

scap_rear_past_m=scap_past,
scap_ry_over_rx=_ry_over_rx(scap),
mid_back_rear_past_m=mid_past,
chest_clav_pride_m=pride,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale chest-derived torso metrics

Medium Severity

build_torso_metrics computes breast_rear_vs_chest_front_m and chest_clav_pride_m from recipe chest-front Y, then later overwrites chest_front_y_m with measured chest_front without refreshing those derived values. On packages with left depth, breast_disconnected / chest_clav_pride form-read and the sidecar metrics disagree with the reported chest-front Y.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c5df10a. Configure here.

if measured_mid_y is None:
measured_mid_y = y_fields.get("mid_back_r")
if measured_mid_y is not None and waist_rear is not None:
mid_past = measured_mid_y - waist_rear

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Measured past uses center not surface

Medium Severity

When measured scap/mid_back Y is present, scap_rear_past_m / mid_back_rear_past_m subtract chest/waist rear surface from the landmark Y. Soft consume writes that same Y onto the plate center, while the recipe-only path measures past from center plus ry_m. Measured past is therefore short by about plate ry, so compare metrics disagree with placement semantics.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c5df10a. Configure here.

@Ryan-AI-Studios
Ryan-AI-Studios merged commit 7c71f30 into main Aug 23, 2026
3 checks passed
@Ryan-AI-Studios
Ryan-AI-Studios deleted the feature/0125-TorsoChestBackLandmarkSpecsCaptureCompare branch August 23, 2026 13:19
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