# Review feat/jeans-fit @ 32041aae - Fecha: 2026-10-22T16:12:34+00:00 - Verdict: **FAIL** - Build rama: PASS - Build merge: SKIP - Acción: review-fail - Modo: auto-merge ## Detalle > reviewer · deepseek-v4.1-flash ✱ Glob "demo/vinted-mock/viewer3d/*.js" 0 matches ✱ Glob "*.patch" 0 matches > reviewer · deepseek-v4.1-flash → Read . > reviewer · deepseek-v4.1-flash ✱ Glob "demo/vinted-mock/**/*" 35 matches > reviewer · deepseek-v4.1-flash ✱ Glob "**/viewer3d/**" 0 matches ✱ Glob "**/garment-builder*.js" 0 matches > reviewer · deepseek-v4.1-flash ✱ Grep "hem_cm|rise_cm|thigh_cm|inseam_cm" in demo · 44 matches ✱ Glob "packages/fit-engine/src/*" 3 matches > reviewer · deepseek-v4.1-flash → Read demo/vinted-mock/data.js [offset=55, limit=45] → Read packages/fit-engine/src/types.ts > reviewer · deepseek-v4.1-flash ✱ Grep "ankle_cm|ankle_y_cm|leg_length_cm" in . · 0 matches ✱ Grep "hem_cm|buildClearance|garment-builder" in . · 6 matches > reviewer · deepseek-v4.1-flash VERDICT: FAIL SUMMARY: Jeans-specific clearance/hem logic added, but the new hem-ease fallback silently treats ankle circumference as 0 and can balloon the leg opening in both jeans demo listings; docs also claim unverified QA/ledger status. FINDINGS: - [blocker] demo/vinted-mock/viewer3d/garment-builder.js:~400 — `listedHemEase = hem_cm*2 - (body.profile.ankle_cm ?? 0)`: `ankle_cm` is not in the frozen `Body`/profile contract (`packages/fit-engine/src/types.ts`) and appears nowhere in the repo; if absent, the whole 38 cm hem circumference becomes *ease* (`radial(38) ≈ 6 cm` radial), so both jeans demos render an ankle opening as wide as the thigh. Fallback must never be 0; derive ankle circumference from landmarks or skip the hem override when unknown. The inline comment ("no debe heredar la forma del tobillo") also contradicts subtracting the mannequin's ankle. - [risk] demo/vinted-mock/viewer3d/garment-builder.js:~1155 — `riseCm = measurements.rise_cm ?? …` accepts non-numeric values (NaN survives `??`), unlike the `Number.isFinite` guards used for the other audit targets; `meta.audit` can be NaN and there is no validation of the listing data. - [risk] demo/vinted-mock/viewer3d/garment-builder.js (export de `buildClearance`) — `garment-builder-v2.js` still calls `buildClearance(fit, body, fabric, type)` without `measurements`, so jeans built through the v2 path silently lose the new `hem_cm` behavior while the README/agent-notes present it as a general jeans fix. Inconsistent behavior between the two builders. - [risk] docs/agent-notes/cloth-viewer-wip.md:16 y README — se afirma QA del vaquero en Levi's W32 / Weekday mom 38, presets XS/Plus y `meta.audit` expuesto, pero el diff no incluye `app.js` ni ningún test que exponga o verifique `meta.audit`; y el ledger del README no actualiza el estado del vaquero a REAL/DEMO, incumpliendo la regla de claims de `AGENTS.md`.