{"slug":"tk10895-groupB","total":9,"limit":100,"offset":0,"since":null,"commits":[{"hash":"58b6353","date":"2026-09-16 13:41:12 -0700","author":"Steve Abrams","subject":"TK-10895: George send script — fix set -e/pipefail guard + move secrets out of argv","body":"- Keychain/token fetches no longer abort under set -euo pipefail, so the\n  explicit missing-credential checks actually run and report.\n- Pass GEORGE_TOKEN/GEORGE_BASIC via env instead of argv so the send token\n  and admin Keychain password aren't visible in ps during the send.\n- Successful-send behavior unchanged; only failure-path diagnostics and\n  secret transport changed.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01GCskP2LLkHeL4xp2yDUyQ7"},{"hash":"47a6046","date":"2026-09-11 10:59:08 -0700","author":"Steve Abrams","subject":"TK-10895: vendor follow-up, table regenerated from verified data","body":"The hand-typed version had 3 of 6 rows false — 702521 is Aqua IV not Edo,\n710321 is Brighton Reverse not Brighton, 717921 is Clementine All Over at 23in\nnot Des Gardes at 28in. It would have asked the mill to correct their pricing\nusing item numbers belonging to other patterns.\n\nRebuilt from sibling-flags.json under a hard gate (identical pattern name AND\nidentical width on both rows), then re-asserted every field against the sheet.\n7/7 verified. Send stays an interactive confirm: George fails closed on external\nrecipients without a human-approval token and the agent must not extract it.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>"},{"hash":"b90d32d","date":"2026-09-11 10:57:07 -0700","author":"Steve Abrams","subject":"TK-10895: Tranche C guards + the 139-product sibling hypothesis","body":"Steve ungated; the build's own audit stopped it, which is the point.\n\nTwo guards the first sizer lacked, both proven by a negative test on a\nknown-bad input (Beau Rivage trips both):\n  1. the sheet's Fabric/Wallpaper COLUMN is unreliable — mfr 708621 is typed\n     Wallpaper while its Pattern reads 'Beau Rivage FABRIC' at the fabric cost\n     $194, beside AP980-05 'Beau Rivage WP' at the real $136. The pattern-name\n     suffix overrides the column.\n  2. a cheaper same-pattern/same-width sibling means a likely fabric-row join.\n\nWithout these the sizer would have RAISED 6 correct Beau Rivage products from\n$246.15 to $351.13, undoing today's verified fix.\n\nGeneralising guard 2 over the whole sheet finds 207 rows / 32 patterns where our\nsix-digit item number costs more than the mill's own code row; 139 are live.\n$5,761 if the code row is the right join — recorded as a HYPOTHESIS and routed\nto the vendor, not to a script: unlike Beau Rivage none of them carries an\nindependent falsifier.\n\nTranche C needs no writes: all 69 cohort-A products are already live and correct.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>"},{"hash":"75499b6","date":"2026-09-11 10:53:30 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-11T10:49:53 (4 data files) — erica/tranche-c-candidates.json erica/tranche-c-held.json erica/tranche-c-live.json erica/tranche-c-ready.json","body":""},{"hash":"d51d455","date":"2026-09-10 16:43:55 -0700","author":"Steve Abrams","subject":"TK-10895: mill reply resolves the slash-pair by plane (fabric/wallpaper)","body":"Erica Nyarko (Quadrille) 2026-09-10: 'First price is the fabric, the second is\nthe wallpaper $Fabric/$WP.' The mill sheet's own Fabric/Wallpaper column is the\nselector, so the token is chosen per-plane and not per-pattern.\n\n- live-by-pid.mjs   read-only audit of all 31 adjudicated SKUs, keyed by product id\n- reprice-erica.mjs reversible fix for the 11 live overpriced rows (dry-run default)\n- erica-live-audit.json verified live state\n\nOverturns today's fill-down ruling: the 6 Wildflowers II WALLPAPERS took the\nfabric token ($172) and are live $54.30/roll over. The corroborating siblings\nthat appeared to confirm $172 are both F/W=Fabric — right evidence, wrong plane.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_016hho8N5fqKPc14Ec64LW9A"},{"hash":"c5cad53","date":"2026-09-10 13:09:49 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-10T13:02:09 (2 data files) — wf6-evidence.csv wf6-worklist.json","body":""},{"hash":"e638c84","date":"2026-09-10 11:54:30 -0700","author":"Steve Abrams","subject":"TK-10895 Group B reprice/rollback: name magic numbers, set exit code on partial failure","body":"Light behavior-preserving cleanup: named the 0.65/0.85 margin constants, the\n>10 sellable-price floor, and the 600ms write pace instead of leaving them\nas bare literals; set process.exitCode=1 when any variant write/restore\nfails so a partial failure can't read as success to a caller or canary.\nNo pricing math, API calls, dry-run default, or read-back assert changed."},{"hash":"92adb5c","date":"2026-09-10 11:34:46 -0700","author":"Steve","subject":"TK-10895: Quadrille vendor email — corrected body + human-approved send launcher","body":"Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>"},{"hash":"44e3deb","date":"2026-09-10 11:16:04 -0700","author":"Steve","subject":"TK-10895 Group B reprice: fabric-row cost -> mill WP-row cost, with rollback","body":"Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>\n"}]}