---
name: adom-chipfit-build
description: >
  Build and release a new version of adom-chipfit. Use when the user
  says "release adom-chipfit", "publish adom-chipfit", "cut a new
  adom-chipfit version", "bump adom-chipfit", "ship adom-chipfit", or
  "push adom-chipfit to the wiki".
---

# Release adom-chipfit

1. Bump `VERSION` + `Cargo.toml` + `wiki/page.json` version (all three must match).
2. `./build.sh` — cargo build, install local binary.
3. Verify CLI: `adom-chipfit --version` reports the new version.
4. Smoke test — pair a known chip pair and confirm the viewer comes up:
   ```
   adom-chipfit check \
     --footprint /usr/share/kicad/footprints/Package_SO.pretty/SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod \
     --glb /home/adom/project/wiki/static/3dcomps/3d-soic-8/3d-soic-8.glb \
     --no-tab --port 18894
   curl -s http://127.0.0.1:18894/meta | jq .
   ```
5. Screenshot the 3D viewer with the pin-1 dot baked in (user must
   see a real before/after).
6. `./publish.sh` — git tag, wiki asset upload, wiki page update,
   end-to-end verification that the binary served from the wiki
   returns `--version` matching.

## Pre-release checklist

- [ ] `VERSION`, `Cargo.toml`, `--version`, and `wiki/page.json` metadata all match
- [ ] Package-family mismatch guard refuses a QFN-24 GLB on an LQFP-48 footprint
- [ ] Pin-1 bake produces a `-pin1.glb` that loads cleanly in a second viewer pass
- [ ] Icon audit — EVERY icon monochrome white, no favicon carve-out.
      All three greps must return zero:
      ```bash
      grep -nE 'fill="(#00b8b0|#00d4cb)"|stroke="(#00b8b0|#00d4cb)"' \
        docs/icon.svg src/*.html 2>/dev/null

      grep -oE 'fill="#[0-9a-fA-F]{3,8}"|stroke="#[0-9a-fA-F]{3,8}"' docs/icon.svg | \
        grep -v -E '"#e6edf3"|"#ffffff"|"#fff"|"#0d1117"|"none"|"transparent"|"currentColor"' \
        || echo "(docs/icon.svg clean)"

      grep -nE '\.logo[^{]*\{[^}]*color:\s*var\(--accent\)|\.icon[^{]*\{[^}]*color:\s*var\(--accent\)' \
        src/*.html 2>/dev/null
      ```

## Version-bump triggers

- UI change visible to the user → minor bump
- HTTP endpoint added/changed → minor bump
- Pure fix (typo, crash, math bug) → patch bump
- Package-family alias table change → patch bump
