From df3eabacbf6cb060aff6ab0243dec702df3f44cc Mon Sep 17 00:00:00 2001 From: Aldo Ruiz Luna Date: Wed, 30 Sep 2026 04:37:18 -0600 Subject: [PATCH] fix(button): preserve fine dimensions in garment hardware handoffs Co-Authored-By: Codex Codex-Session: codex://threads/01a0e4e2-1f79-76c0-a2b4-290d72f04dbe Signed-off-by: Aldo Ruiz Luna --- sew-through-button/README.md | 32 ++++++++++++++++++++ sew-through-button/project.json | 52 ++++++++++++++++++++++++++++++--- 2 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 sew-through-button/README.md diff --git a/sew-through-button/README.md b/sew-through-button/README.md new file mode 100644 index 00000000..0b22f49f --- /dev/null +++ b/sew-through-button/README.md @@ -0,0 +1,32 @@ +# Sew-through button dimensions + +Last Updated: 2026-09-30 + +This cartridge owns the button solid; Fashion Cabinet owns garment sizing and +the mapping from a garment to its hardware. See the +[commons topology](../README.md#the-four-repo-topology) and +[contribution rules](../CONTRIBUTING.md). + +The manifest accepts thickness, hole diameter and dish depth in 0.01 mm steps, +and hole spacing in 0.005 mm steps. These steps preserve fine dimensions from +garment mappings, including the ligne-to-millimetre conversion, without silently +rounding them to the former coarse increments. They describe input resolution, +not manufacturing accuracy. Existing bounds, integer ligne sizes, two/four-hole +choices, geometry constraints and batch limits still apply. + +Three presets exercise the additional resolution: + +| Preset | Dimensions covered | +| --- | --- | +| `infant_precise` | 1.62 mm thickness, 1.08 mm holes, 3.24 mm spacing and 0.36 mm dish | +| `placket_precise` | 24 L button with 5.08 mm hole spacing | +| `small_precise` | 15 L button with 3.175 mm hole spacing | + +The source geometry is unchanged. Validation renders both modes and every +preset with the [shared geometry gate](../README.md#validating-a-cartridge). +Platforms must consume the updated manifest contract before the added input +resolution is available in their handoffs. Values outside the declared grid, +bounds or active mode remain unsupported. + +Private rollout evidence belongs in Internal DevOps under the +[repository boundary](../docs/PUBLIC_REPO_BOUNDARY.md). diff --git a/sew-through-button/project.json b/sew-through-button/project.json index bad29ed4..ffa166a3 100644 --- a/sew-through-button/project.json +++ b/sew-through-button/project.json @@ -143,7 +143,7 @@ "default": 3.0, "min": 1.0, "max": 6.0, - "step": 0.2, + "step": 0.01, "group": "size", "modes": [ "button", @@ -185,7 +185,7 @@ "default": 1.5, "min": 1.0, "max": 3.0, - "step": 0.1, + "step": 0.01, "group": "holes", "modes": [ "button", @@ -206,7 +206,7 @@ "default": 4.0, "min": 2.0, "max": 12.0, - "step": 0.5, + "step": 0.005, "group": "holes", "modes": [ "button", @@ -227,7 +227,7 @@ "default": 0.8, "min": 0.0, "max": 2.0, - "step": 0.1, + "step": 0.01, "group": "size", "modes": [ "button", @@ -312,6 +312,50 @@ "dish_depth": 0.6, "card_count": 8 } + }, + { + "id": "infant_precise", + "mode": "button", + "label": { + "en": "Infant button (18 L, fine dimensions)", + "es": "Botón infantil (18 L, dimensiones finas)" + }, + "values": { + "button_ligne": 18, + "thickness": 1.62, + "hole_count": 2, + "hole_dia": 1.08, + "hole_spacing": 3.24, + "dish_depth": 0.36 + } + }, + { + "id": "placket_precise", + "mode": "button", + "label": { + "en": "Shirt placket button (24 L, 5.08 mm spacing)", + "es": "Botón de cartera (24 L, separación de 5.08 mm)" + }, + "values": { + "button_ligne": 24, + "hole_count": 4, + "hole_spacing": 5.08, + "hole_dia": 1.8 + } + }, + { + "id": "small_precise", + "mode": "button", + "label": { + "en": "Small button (15 L, 3.175 mm spacing)", + "es": "Botón pequeño (15 L, separación de 3.175 mm)" + }, + "values": { + "button_ligne": 15, + "hole_count": 4, + "hole_spacing": 3.175, + "hole_dia": 1.6 + } } ], "constraints": [