← back to CelebritySignatures
verification/hats-socks-approval.md
44 lines
# TK-10286: release three hats and socks
Owner: codex-run-10286. Prepared 2026-09-09; updated after ac773c5 and c4e6752 plus bucket eyelet clearance. Status: external verification/release still awaiting Steve's approval. This replaces the earlier Army-bucket request.
## Implemented and verified locally
The signature picker now offers Dad Cap, Trucker Cap, Bucket Hat, and Crew Socks alongside the three existing shirts. Front-facing product previews show provisional signature placements. The peer replaced the dad/trucker sample artwork with reconstructed blank panels and used a clean supplier bucket photo (commit ac773c5); these edited previews are not printer-generated manufacturing proof. The socks carry the same signature on both legs. Each addition has `saleEnabled: false` and `priceUsd: null`; the UI says Coming soon and both checkout and the Printify sender reject it. Existing shirt checkout still passes the isolated integration test.
The Politics gallery's Mural and Clothing links were separately deployed by claude-run-10286 under Steve's prior approval. Read-only remote source hashes match commit f19730e. That authorization does not cover these additions.
## Approval requested: printer verification
Authorize one dark signature-image upload and four unpublished temporary products in Printify shop **496929**, followed by retrieval of costs and generated mockups, then deletion of only those temporary records created by this verification. No orders, production, charges, publishing, checkout flags, or unrelated records are included.
Use a wear-eligible historical signature in dark ink for all four light-color products. Upload bytes rather than relying on Printify to fetch Wikimedia. The generated request plan is in `hat-sock-draft-plan.json`; upload IDs are resolved from the upload response.
| Product | Blueprint / provider | Variant | Print area(s) | Proposed x / y / scale |
|---|---|---|---|---|
| White Dad Cap, one size | 1447 / 99 | 105381 | front_dtf | 0.5 / 0.5 / 0.7 |
| White Trucker Cap, one size | 1692 / 99 | 116762 | front | 0.5 / 0.5 / 0.7 |
| Bone Bucket Hat, one size | 1698 / 99 | 116655 | front | 0.5 / 0.5 / 0.7 |
| White Crew Socks, one size | 2941 / 29 | 155679 | left_leg, right_leg | 0.5 / 0.28 / 0.45 each |
Bone selection was verified by a fresh catalog GET: this blueprint has no White variant. The neutral bucket photo does not establish the exact Bone production color.
Catalog GET evidence proves these variants and raster decoration areas exist. It does **not** prove cost, shipping, print quality or placement. Inspect actual generated printer mockups and record every variant cost before setting retail prices. Request plan price is a temporary API-required value, never a storefront price or cost claim. Retain images and IDs in the evidence bundle before deleting temporary products; verify deletion by GET returning 404. If uploads cannot be deleted, record their IDs and leave them for explicit follow-up rather than deleting anything else. Keep every new product held if verification fails.
## Separate approval requested: deploy the previews
Deploy only the reviewed changes to `data/wear-templates.json`, `public/wear.html`, `server.js`, `scripts/submit-pod-draft-printify.mjs`, and four named `public/assets/garments/*` JPEGs. Preserve production orders, queues, env files and payment/provider settings. Back up the four existing files first; the new files are dad-cap-white.jpg, trucker-cap-white.jpg, bucket-hat-white.jpg, and crew-socks-white.jpg. Restart only the existing CelebritySignatures process, then verify the seven choices, all four Coming soon states, both shopping links, and existing shirt behavior. Restore the backed-up code/template files and restart that same process if checks fail; unused new photo assets may remain.
Deploying this version exposes previews only. Enabling purchases requires verified cost/placement, reviewed retail prices and Steve's release approval. This request does not enable real Stripe payments or send POD orders. The other ticket owner still owns the original shirt purchase/launch handoff.
## Evidence
- `test/wear-accessories.test.mjs`: real catalog/payload checks; all four direct and mixed-cart rejections without order/payment writes; original shirt checkout through intercepted Stripe; sender remains held with --apply and all five account gates enabled.
- Existing Printify and black-polo artwork regression tests: combined suite 9/9 PASS.
- `gallery-shopping.e2e.cjs`: desktop 1280×900 and mobile 390×844, all four previews and product controls, return to shirts, Politics-to-clothing and mural journeys, unavailable-signature rejection; zero JavaScript errors. All non-GET/HEAD browser requests blocked.
- Initial desktop/mobile screenshot/video bundle: `/var/folders/rq/j8g1f7nn6jv6_lr1cfmqym6w0000gn/T/tk10286-shopping-PuNAnF`.
- Updated cache-bypassed frontal-hat screenshots and served-image hashes: `/var/folders/rq/j8g1f7nn6jv6_lr1cfmqym6w0000gn/T/tk10286-visible-preview-9GSHxv`. Bucket signature is clear of both eyelets.
- `e2e-proof.json` records exact source hashes and remaining skipped production boundaries. No production readiness or completed ticket claim is made.
Gate source: Steve's ticket instruction requires customer-facing, destructive, spend, publish and external writes to be drafted to pending-approval and stopped before execution.