{"slug":"newmor-onboard","total":32,"limit":100,"offset":0,"since":null,"commits":[{"hash":"9853f75","date":"2026-09-14 16:48:20 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-14T16:46:18 (1 data files) — scripts/merge-v2-REAL-RUN.sql","body":""},{"hash":"193bb47","date":"2026-09-13 01:23:15 -0700","author":"Steve Abrams","subject":"chore: lint, refactor (session close, TK-11424)","body":""},{"hash":"4b0aa1e","date":"2026-09-13 01:05:53 -0700","author":"Steve Abrams","subject":"TK-11424: backfill Newmor spec metafields to live Shopify (Steve-approved, strict fill-only)","body":"Extended backfill-metafields.mjs CANDIDATES with the 5 TK-11424 spec keys\n(fire_rating, application, pattern_match, coverage, pattern_repeat_vertical\nwith dimension-JSON parsing). Steve's ruling 2026-09-13: strict fill-only,\nno exception for the \"Inquire for more Information\" placeholder that 101/116\nlive products already carry for fire_rating.\n\nDry-run showed 209 proposed writes across 116/116 live products; Steve\nreviewed and approved. Applied live -- 209/209 writes succeeded, zero\nuserErrors. Independently spot-verified two products post-write via a\nfresh GraphQL read (one write, one correctly-skipped placeholder). Restore\nmap + full write/skip ledger committed for reversibility.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>"},{"hash":"aea6aa8","date":"2026-09-13 00:44:28 -0700","author":"Steve Abrams","subject":"TK-11424: build Norman scraper + recapture Newmor commercial specs","body":"Newmor's fire_rating/finish/application/match_type/coverage/repeat were\nempty in newmor_catalog because they aren't scrapable HTML -- they only\nexist inside a linked PDF spec sheet. The PDFs are Photoshop-exported;\npdftotext extracts real text but silently drops the \"ti\" ligature and\ninserts arbitrary mid-word whitespace. Fixed by stripping all whitespace\nand matching target vocabulary with \"ti\" treated as optional.\n\nCrawled all 285 sitemap product pages (228 live) + 110 unique PDFs and\napplied fill-only-never-clobber to newmor_catalog (restore-map snapshot\nfor reversibility): fire_rating 617->1112, application 0->636,\nmatch_type 0->556, coverage 0->535, repeat_v 0->134. Confirmed \"finish\"\nhas no source data anywhere in the catalog and left it empty rather than\nfabricate it.\n\nAlso stood up the newmor-agent daemon (:9695, pm2) the ticket referenced\nbut that had no code anywhere on Mac2.\n\nThe live Shopify metafield backfill stays gated (customer-facing write) --\nsee ~/.claude/yolo-queue/pending-approval/TK-11424-newmor-spec-metafield-backfill.md.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>"},{"hash":"5d7c5ec","date":"2026-09-13 00:25:02 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-13T00:21:19 (1 data files) — data/spec-pdfs/ef521f7e65e86b17-Kensington-460gsm-non-woven-Type-II-Tela-400gsm-non-woven-Sp","body":""},{"hash":"7ca7c8a","date":"2026-09-10 13:42:29 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-10T13:39:50 (3 data files) — data/tk11346/dryrun-per-product-2026-09-10T20-13-00-533Z.json data/tk11346/dryrun-writes-2026-09-10T20-13-00-533Z.jsonl data/tk11346/restore-map-2026-09-10T20-13-00-533Z.json","body":""},{"hash":"cde1d77","date":"2026-09-10 13:02:22 -0700","author":"Steve Abrams","subject":"TK-11346: Newmor metafield spec-backfill (gated dry-run) + rollback","body":"FILL-ONLY, NEVER CLOBBER. Dry-run over the 116 ACTIVE Newmor colorways: 348\nproposed metafield creates (116 each of custom.roll_length='30m',\ncustom.vendor_url, constant custom.us_distributor='LBI Boyd'). width/material/\ncolor_hex skipped 116/116 (live-populated). fire_rating excluded (catalog 'Type\nII' = mis-scraped CCC-W-408 type, not a fire rating; Norman-held). Zero live\nwrites. --apply is gated; rollback via restore map (all creates -> delete).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"9ccba71","date":"2026-09-10 01:35:11 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-10T01:33:27 (1 data files) — scripts/merge-v2-into-canonical.sql","body":""},{"hash":"9fa7d0c","date":"2026-09-10 01:02:48 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-10T01:01:23 (1 data files) — scripts/merge-v2-into-canonical.sql","body":""},{"hash":"6caa541","date":"2026-09-10 00:18:09 -0700","author":"Steve Abrams","subject":"TK-10670 2nd pass: v2 Newmor scraper — real-code vs synthesized colorway keys -> staging _v2","body":"Colorway-code truth: real vendor code iff shade-list text has a digit (AUR 001,\nTEDLAR SKY1004, BLS11). Code-less patterns (Morris/Glyn Cottage/Clash of the\nTartans/Heron Sent/Twiggy — verified: no data-code, img filename <Pattern>-<Color>.jpg,\nswatchid is index) get synthesized composite key <PATTERN-SLUG>-<COLOR>. v2 =\n1068 rows / 228 patterns / 1068 distinct identities (0 dupes; fixes v1 bare-name\ncollisions). 670 vendor_code / 382 synthesized_pattern_color / 16 pattern_only.\nHealthcare split by factual family_prefix (BLS/CML/FST/LVD/MDW/SKY/TEDLAR + Newmor\nCustom). B-bucket 0/176 and C-bucket 0/17 revival CONFIRMED on v2. v1 table preserved.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01JNgURsoJm4vppNLpW3B8WT"},{"hash":"323ace9","date":"2026-09-09 23:48:22 -0700","author":"Steve Abrams","subject":"TK-10670: feed-first $0 Newmor refresh scraper -> staging newmor_catalog_refresh_20260909","body":"Sitemap-driven, plain urllib fetch (Mozilla UA, 1 req/sec, skip 404/410).\nParses structured <p class=color-title>Colours: XXX</p> shade list (not blind\nregex; avoids image-dimension noise). 1068 rows / 228 patterns / 1048 colorways\nfrom 285 sitemap URLs (57 dead, 0 errors). Staging table only — never touches\ncanonical newmor_catalog.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01JNgURsoJm4vppNLpW3B8WT"},{"hash":"8fce1e7","date":"2026-09-09 22:34:46 -0700","author":"Steve Abrams","subject":"TK-10670: A-bucket SKU normalize executed (125 products)","body":""},{"hash":"5dccd8f","date":"2026-09-09 16:16:14 -0700","author":"Steve Abrams","subject":"TK-10670: refresh+verify reconcile vs live; A-bucket restore-map; gated memos drafted","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01FNCX2YWmCc6caseictb5F9"},{"hash":"e8ccb9c","date":"2026-09-09 16:13:30 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T16:10:41 (1 data files) — artifacts/A-BUCKET-SKU-RESTORE-MAP.json","body":""},{"hash":"c5efe71","date":"2026-09-09 10:45:22 -0700","author":"Steve Abrams","subject":"Record verified Newmor showroom launch and remaining approval gates","body":""},{"hash":"b9ffa1f","date":"2026-09-09 10:38:59 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T10:37:25 (6 data files) — artifacts/LIVE-NEWMOR-2026-09-09.csv verification/e2e-proof.json verification/final-discovery-proof.json verification/independent-review.md verification/prelaunch-proof-history.json","body":""},{"hash":"abb03af","date":"2026-09-09 10:34:56 -0700","author":"Steve Abrams","subject":"Launch 116 verified Newmor showroom colorways on Online Store only","body":""},{"hash":"6bef493","date":"2026-09-09 10:25:51 -0700","author":"Steve Abrams","subject":"Prove Newmor showroom journeys and rehearse exact canary rollback","body":""},{"hash":"f9bb291","date":"2026-09-09 10:06:30 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T10:04:38 (10 data files) — data/live-2026-09-09/product-launch-journal.json data/live-2026-09-09/theme-apply-journal.json data/live-2026-09-09/theme-change-plan.json verification/asset-rollback-rehearsal.json verification/browse-check.json","body":""},{"hash":"7ea6263","date":"2026-09-09 09:54:57 -0700","author":"Steve Abrams","subject":"Verify Newmor canary state and add guarded showroom discovery","body":""},{"hash":"890ef71","date":"2026-09-09 09:33:55 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T09:32:15 (21 data files) — data/live-2026-09-09/configured-publications-baseline.json data/live-2026-09-09/image-fill-journal.json data/live-2026-09-09/product-launch-journal.json data/live-2026-09-09/theme-apply-journal.json data/live-2026-09-09/theme-change-plan.json","body":""},{"hash":"7b9f340","date":"2026-09-09 09:01:33 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T08:59:31 (9 data files) — data/live-2026-09-09/canary-auto-channel-incident.json data/live-2026-09-09/canary-latent-publications.json data/live-2026-09-09/product-launch-journal.json data/live-2026-09-09/theme-apply-journal.json data/live-2026-09-09/theme-change-plan.json","body":""},{"hash":"cdec144","date":"2026-09-09 08:28:51 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-09T08:26:36 (3 data files) — data/live-2026-09-09/theme-apply-journal.json verification/independent-review.md verification/preview-after.txt","body":""},{"hash":"b43a2bc","date":"2026-09-09 08:23:00 -0700","author":"Steve Abrams","subject":"Prepare verified Newmor showroom launch and theme rollback","body":""},{"hash":"ca97414","date":"2026-09-09 07:50:04 -0700","author":"Steve Abrams","subject":"Verify Newmor showroom approval package on resume","body":""},{"hash":"9c660dd","date":"2026-09-08 14:23:17 -0700","author":"Steve Abrams","subject":"Stage Newmor as a no-price showroom line and document cadence gap","body":""},{"hash":"fc425c3","date":"2026-09-08 14:09:45 -0700","author":"Steve Abrams","subject":"Restore Newmor quote approval draft and verify current blocker","body":""},{"hash":"a5a5510","date":"2026-09-04 22:54:31 -0700","author":"Steve Abrams","subject":"Record Newmor quote-only reply and conditional discount gate","body":""},{"hash":"4b39a18","date":"2026-09-04 09:11:45 -0700","author":"Steve Abrams","subject":"TK-10670: vendor status-check CSV for all 305 held drafts + live colourway snapshot","body":"180 of the 305 held Newmor drafts carry colorway codes absent from Newmor's\ncurrent range, verified live 2026-09-04 across all 13 vendor pattern pages\n(0 of 180 present; normalized re-join recovered zero, so not code-drift).\n\n- data/newmor-305-status-check-2026-09-04.csv — one row per held draft with our\n  found/not-found flag plus blank columns for the rep to fill in status and\n  net cost per yard, so it is a single pass for her.\n- data/newmor-live-colourways-2026-09-04.json — the live colourway codes read\n  from the 13 vendor pattern pages, as the evidence snapshot.\n\nRead-only: no Shopify write, no dw_unified write, no email sent.\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014KnubZ6UTQUMYGngDhYpcR"},{"hash":"f7a1052","date":"2026-08-18 10:36:27 -0700","author":"vp-dw-commerce","subject":"TK-10670: Newmor $4.25 take-down — archive 237 (C+JUNK), draft 305 (A+B); full rollback record","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"b4d774a","date":"2026-08-18 09:32:56 -0700","author":"steve@designerwallcoverings.com","subject":"Cycle1 fix: 3-bucket disposition + never-overwrite metafield rule + $4.25 priority memo (TK-10670)","body":""},{"hash":"a9b82b8","date":"2026-08-18 09:21:58 -0700","author":"steve@designerwallcoverings.com","subject":"Newmor onboard cycle 1: reconciliation + metafield map artifacts (TK-10670)","body":""}]}