{"slug":"Designer-Wallcoverings","total":1743,"limit":100,"offset":0,"since":null,"commits":[{"hash":"24e87858","date":"2026-07-28 10:40:38 -0700","author":"steve@designerwallcoverings.com","subject":"PDP specs: collapse to core 4 + move short description into specs (Steve 2026-07-28)","body":"- product-description-meta.liquid: always-visible core = Product Type, Pattern\n  Name, Color, SKU (sellable non-Sample variant's DW sku); all other specs moved\n  into a collapsed <details> 'More specifications' panel. Short product\n  descriptions (<=500 stripped chars) now render inside the specs block.\n- product-gallery.liquid: wide 'Pattern Description:' block now renders ONLY when\n  the description is long (>500 chars, e.g. Kravet-family) or in editor onboarding\n  — same threshold, so the description shows in exactly one place.\n- Pushed live to theme 144396058675 (PUT 200); verified core rows, collapse, and\n  short/long description placement on live PDPs; SKU fix verified on cold-cache PDPs.\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"4eeb4db8","date":"2026-07-28 10:30:00 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T10:29:49 (4 files) — shopify/scripts/data/tk135/fullrun-vision.tsv shopify/scripts/cadence/activate-gated.NEEDS-IMAGE-STRIP.PATCH.md shopify/scripts/strip-needs-image-snapshot-2026-07-28.jsonl shopify/scripts/strip-stale-needs-image.js","body":""},{"hash":"b501abaf","date":"2026-07-28 10:05:16 -0700","author":"steve@designerwallcoverings.com","subject":"PDP color section → full-width color bar (Steve 2026-07-28)","body":"- color-palette.liquid: 'Colors In This Pattern' → 'Select Color for Coordinates';\n  dots collapsed into ONE full-width color bar (~4x height); end drag-handles\n  expand/contract color count (replaces the 'Colors shown' slider); removed the\n  names+% legend and thin proportion bar.\n- product.liquid: keywords now full-width (removed 80ch cap + 96-char hard wrap);\n  removed the black 'Design Coordinate' banner + panel entirely (DTD: remove feature).\n- Pushed live to theme 144396058675 (PUT 200); verified on live PDP.\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"041dfca4","date":"2026-07-28 09:29:17 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T09:29:05 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"f36bace7","date":"2026-07-28 08:58:59 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T08:58:52 (9 files) — shopify/scripts/data/tk135/fullrun-vision.tsv shopify/staged/free-samples-function/extensions/free-samples-discount/package.json shopify/staged/free-samples-function/extensions/free-samples-discount/shopify.extension.toml shopify/staged/free-samples-function/shopify.app.toml shopify/staged/free-samples-function/extensions/free-samples-discount/package-lock.json","body":""},{"hash":"020c2ae7","date":"2026-07-28 08:28:47 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T08:28:39 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"45e9a723","date":"2026-07-28 07:58:34 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T07:58:26 (4 files) — shopify/scripts/data/tk135/active-tags.tsv shopify/scripts/data/tk135/fullrun-vision.tsv shopify/scripts/data/tk135/normalize-worklist.tsv shopify/scripts/data/tk135/palette-proposed.tsv","body":""},{"hash":"dca7c0a4","date":"2026-07-28 07:28:22 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T07:28:16 (4 files) — shopify/scripts/data/tk135/active-images.tsv shopify/scripts/data/tk135/fullrun-vision.tsv shopify/scripts/data/tk135/label-prefixed.tsv shopify/scripts/data/tk135/palette-proposed.tsv","body":""},{"hash":"6984f4c6","date":"2026-07-28 07:25:18 -0700","author":"steve","subject":"Track shopify/scripts/lib operational source (registry+guards); was hidden by python venv lib/ ignore","body":""},{"hash":"f8969b83","date":"2026-07-28 07:16:18 -0700","author":"vp-dw-commerce","subject":"TK-10002: forward-only variant-SKU collision guard (skuTakenOnActiveProduct)","body":"Adds a pre-create check that rejects a mint whose dw_sku is already carried by a\nNON-ARCHIVED product, closing the gap where a drifted registry lets registerSku()\nre-mint a live SKU. Wired into the new-product-import template between register and\ncreate. Mirrored into both sku-registry libs. NOT a DB constraint (461 legacy\nviolations remain).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"fc665d1c","date":"2026-07-28 07:11:27 -0700","author":"Steve","subject":"TK-135: add Shape: to label normalizer strip set","body":""},{"hash":"28363744","date":"2026-07-28 07:10:31 -0700","author":"Steve","subject":"TK-135: deeper palette (k16/top8) to capture all pattern colors; fix active-images 2-col pull","body":""},{"hash":"f722f343","date":"2026-07-28 06:58:12 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T06:58:06 (3 files) — shopify/scripts/data/tk135/fullrun-vision.tsv shopify/scripts/data/tk135/label-prefixed.tsv shopify/scripts/data/tk135/style-prefixed.tsv","body":""},{"hash":"9fceefa7","date":"2026-07-28 06:57:09 -0700","author":"Steve","subject":"TK-135: multi-label normalizer — strip Style:/Motif:/Material:/Collection:/Colorway: to bare (hardened, timestamped, gated)","body":""},{"hash":"a35d3f5d","date":"2026-07-28 06:28:01 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T06:27:56 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"2d87cf65","date":"2026-07-28 05:57:52 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T05:57:47 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"9dc35539","date":"2026-07-28 05:27:42 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T05:27:36 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"c1f36bdb","date":"2026-07-28 04:57:32 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T04:57:26 (2 files) — shopify/scripts/cadence/data/activations-2026-07-28.jsonl shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"8d4d4f29","date":"2026-07-28 04:27:22 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T04:27:17 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"5ff1f417","date":"2026-07-28 03:57:13 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T03:57:08 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"76015b7d","date":"2026-07-28 03:27:03 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T03:26:56 (4 files) — DW-Programming/ImportNewSkufromURL/yw-results/latest.json shopify/scripts/data/tk135/fullrun-vision.tsv DW-Programming/ImportNewSkufromURL/yw-results/437-RD336-20260728T030002.json shopify/scripts/data/tk135/material-run.json","body":""},{"hash":"c085575c","date":"2026-07-28 02:56:52 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T02:56:47 (2 files) — DW-Programming/ImportNewSkufromURL/data/scraper-audit/scraper-status.json shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"bf9da78c","date":"2026-07-28 02:26:43 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T02:26:37 (2 files) — scripts/room-image-push/ledger.json shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"19590843","date":"2026-07-28 01:56:33 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T01:56:27 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"6d8f4cfc","date":"2026-07-28 01:26:23 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T01:26:17 (2 files) — shopify/scripts/data/tk135/fullrun-vision.tsv shopify/scripts/data/bucketB/longtail-land-20260728T000105.json","body":""},{"hash":"bcf23af8","date":"2026-07-28 00:56:13 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T00:56:07 (2 files) — shopify/scripts/audits/doubleroll-lengths-wallquest-before.jsonl shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"009bd63b","date":"2026-07-28 00:26:02 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-28T00:25:56 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"dd115bb7","date":"2026-07-27 23:55:51 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T23:55:46 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"d37283a4","date":"2026-07-27 23:25:41 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T23:25:34 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"2bc78a7c","date":"2026-07-27 22:55:27 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T22:55:20 (2 files) — shopify/scripts/data/tk135/fullrun-vision.tsv shopify/scripts/cadence/data/activations-2026-07-28.jsonl","body":""},{"hash":"80e46810","date":"2026-07-27 22:25:14 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T22:25:06 (1 files) — shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"512f21b7","date":"2026-07-27 22:07:48 -0700","author":"Steve","subject":"TK-135: harden apply scripts — gqlR retries 502/gateway/network, null-safe loop, per-item try/catch, no crash on transient errors","body":""},{"hash":"02ef098b","date":"2026-07-27 21:55:02 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T21:54:54 (2 files) — shopify/scripts/data/tk135/fullrun-vision.tsv shopify/scripts/data/tk135/collection-run.json","body":""},{"hash":"5571b086","date":"2026-07-27 21:24:50 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T21:24:43 (3 files) — shopify/scripts/data/tk135/fullrun-title.tsv shopify/scripts/data/tk135/fullrun-untagged.tsv shopify/scripts/data/tk135/fullrun-vision.tsv","body":""},{"hash":"7396cb9e","date":"2026-07-27 20:54:40 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T20:54:34 (3 files) — shopify/scripts/data/tk135/active-full.tsv shopify/scripts/data/tk135/material-proposed-unmatched.tsv shopify/scripts/data/tk135/material-proposed.tsv","body":""},{"hash":"d1a61097","date":"2026-07-27 20:37:35 -0700","author":"Steve","subject":"TK-135: generic descriptor apply — bare tagsAdd + per-SKU *_tagged_at timestamp (gated)","body":""},{"hash":"fcb3debd","date":"2026-07-27 20:35:28 -0700","author":"Steve","subject":"TK-135: material classifier — 24,581 bare primary-material tags (composition + title, $0 deterministic)","body":""},{"hash":"7ff5efd7","date":"2026-07-27 20:24:29 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T20:24:23 (9 files) — shopify/scripts/data/tk135/audit-grid.png shopify/scripts/data/tk135/audit-thumbs/ shopify/scripts/data/tk135/bakeoff-grid.png shopify/scripts/data/tk135/bakeoff-thumbs/ shopify/scripts/data/tk135/material-sample200-unmatched.tsv","body":""},{"hash":"16012764","date":"2026-07-27 20:20:01 -0700","author":"Steve","subject":"TK-135: stamp custom.color_normalized_at per SKU (durable dedup + audit) on normalize","body":""},{"hash":"5d19295d","date":"2026-07-27 20:14:09 -0700","author":"Steve Abrams","subject":"TK-135: motif classifier (bare)","body":"Bare-value MOTIF descriptor classifier for DW (17-value existing vocab).\nPass 1 deterministic title keyword match; Pass 2 local qwen2.5vl:7b vision\non the title-unmatched remainder. $0 (local), DRY-RUN — motif-proposed.tsv\n(<gid>\\t<BareMotif>) only, NO Shopify/PG writes. Full-80k driver built but\ngated (MOTIF_RUN_CONFIRM). 150-sample: 21.3% title / 78.7% vision, 0 fallbacks.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"224468c3","date":"2026-07-27 20:12:01 -0700","author":"Steve Abrams","subject":"TK-135: collection backfill (bare)","body":""},{"hash":"e061f1ea","date":"2026-07-27 20:04:23 -0700","author":"Steve Abrams","subject":"TK-135: style classifier (bare)","body":"Deterministic title/vendor/product_type keyword mapping + optional local\nqwen2.5 pass for the ambiguous remainder. Outputs BARE style values (no\nlabel prefix) per Steve's normalization rule. DRY-RUN only: no Shopify/PG\nwrites. 48% deterministic coverage on 78,242 active products missing a\nstyle value; ~95% projected with the gated local-LLM phase.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"2b4057cf","date":"2026-07-27 19:54:18 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T19:54:12 (9 files) — shopify/scripts/data/tk135/active-images.tsv shopify/scripts/data/tk135/active-tags.tsv shopify/scripts/data/tk135/motif-title.tsv shopify/scripts/data/tk135/normalize-worklist.tsv shopify/scripts/data/tk135/sample-150.tsv","body":""},{"hash":"35de4b03","date":"2026-07-27 19:47:07 -0700","author":"Steve","subject":"TK-135: comma-separate tags in normalize worklist (not pipe)","body":""},{"hash":"51ad1beb","date":"2026-07-27 19:45:15 -0700","author":"Steve","subject":"TK-135: unified color-tag normalizer — strip all color:/Color: to bare catalog-wide + our bare color + metafield (gated)","body":""},{"hash":"1ad1dff4","date":"2026-07-27 19:34:58 -0700","author":"Steve","subject":"TK-135: BARE-VALUE color tags (no color: prefix) + self-heal removes old color:Bucket; Shopify-authoritative","body":""},{"hash":"525345fa","date":"2026-07-27 19:23:52 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T19:23:22 (3 files) — package-lock.json shopify/scripts/data/tk135/motif-sample150.tsv shopify/scripts/data/tk135/vtest/","body":""},{"hash":"7421d43f","date":"2026-07-27 19:15:21 -0700","author":"Steve Abrams","subject":"chore: v1.2.7 (session close — cleanWallpaper brand-aware fleet fix)","body":""},{"hash":"f26f24ae","date":"2026-07-27 18:58:32 -0700","author":"Steve","subject":"TK-135: fix PG-mirror trigger abort — skip DW-prefix mfr_sku rows + make mirror step non-fatal (Shopify authoritative)","body":""},{"hash":"f6f5377e","date":"2026-07-27 18:54:07 -0700","author":"Steve","subject":"TK-135: add resume (progress log) to palette apply; canary 20 verified live (metafield+tag ok)","body":""},{"hash":"97023338","date":"2026-07-27 18:53:17 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T18:53:10 (2 files) — shopify/scripts/data/tk135/palette-proposed.tsv shopify/scripts/data/tk135/apply-canary.json","body":""},{"hash":"7ff04f87","date":"2026-07-27 18:41:58 -0700","author":"Steve Abrams","subject":"TK-00134: fix documented cleanWallpaper snippet in CLAUDE.md to brand-aware","body":"The canonical helper that gets copy-pasted into every updater was still the blanket\nversion in the docs — the source of the fleet-wide brand-name corruption. Replaced\nwith the brand-aware + derived-word-safe version (matches the 13 code copies), plus a\nwarning explaining the 17-brand hazard. Verified the doc snippet is copy-paste-correct.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"8661e2fa","date":"2026-07-27 18:39:36 -0700","author":"Steve Abrams","subject":"TK-00134: patch last 3 blanket cleanWallpaper() copies to brand-aware","body":"The banned-word 'Wallpaper'->'Wallcovering' helper was duplicated across ~13\nimport scripts; 10 were already brand-aware (TK-00134) but 3 still ran the blanket\nregex that corrupts the 17 brand names ending in 'Wallpaper' (Ralph Lauren, Missoni,\nGrasscloth, etc). Patched dwvs-import-catalog-only, wolf-gordon-shopify-push, and\nanna-french-scraper (preserving its Thibaut-scrub) to the proven brand-aware +\nderived-word-safe (wallpapered/-ing) version. Verified 4/4 functional each. Stops\nthe class at every executable onboard path. CLAUDE.md's documented snippet still\nshows the blanket version — flagged for Steve, not auto-edited.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"930575df","date":"2026-07-27 18:23:06 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T18:22:43 (15 files) — shopify/scripts/data/tk135/color-proposed.tsv DW-Programming/ShopifyCalendarNext/scripts/rescan-scheduled-posts.ts.backup-1785201549 DW-Programming/anna-french-shopify-push.js.backup-1785201549 DW-Programming/as-creation-shopify-push.js.backup-1785201549 DW-Programming/command54-shopify-push.js.backup-1785201549","body":""},{"hash":"818dd15e","date":"2026-07-27 18:22:53 -0700","author":"Steve Abrams","subject":"TK-00134 TaskC: make cleanWallpaper() brand-aware + derived-word-safe across all 12 helper copies (preserve 17 brands, skip wallpapered/wallpapering, case-preserving)","body":"Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"d33e8553","date":"2026-07-27 18:20:32 -0700","author":"Steve","subject":"TK-135: gated apply script (metafield color_palette + color: tag, PG-first, dry-run default)","body":""},{"hash":"6853b03a","date":"2026-07-27 18:18:24 -0700","author":"Steve","subject":"TK-135: image-based hex+% palette extractor (bg-discount, HSV naming, $0); 200-test 4.7s/0err","body":""},{"hash":"dae671df","date":"2026-07-27 18:08:04 -0700","author":"Steve","subject":"TK-135: free/local Color-slice derivation dry-run (5,612/11,259 matched, $0)","body":""},{"hash":"09ce4291","date":"2026-07-27 17:49:23 -0700","author":"Steve","subject":"TK-17: Batch B scale (793 Hollywood roll variants) + Batch A canary (20 quote-tags) live run-reports","body":""},{"hash":"b7a4cdc5","date":"2026-07-27 17:22:30 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T17:22:24 (1 files) — shopify/scripts/cadence/data/activations-2026-07-27.jsonl","body":""},{"hash":"69f163b6","date":"2026-07-27 16:52:19 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T16:52:13 (2 files) — shopify/scripts/anna-french-priceout-2026-06-25/data/run-report.json shopify/scripts/data/tk17/","body":""},{"hash":"54898819","date":"2026-07-27 16:21:11 -0700","author":"Steve","subject":"TK-17: add reversible Batch A (quotes tag) + Batch B (Hollywood roll variant) execution scripts (dry-run default)","body":""},{"hash":"4a9a4727","date":"2026-07-27 14:21:21 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T14:21:14 (1 files) — mailers/cc-api/import-fm-clients.js","body":""},{"hash":"02da14bc","date":"2026-07-27 11:20:17 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T11:20:11 (1 files) — shopify/scripts/cadence/data/activations-2026-07-27.jsonl","body":""},{"hash":"7ca6b6ac","date":"2026-07-27 05:18:16 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T05:18:10 (1 files) — shopify/scripts/cadence/data/activations-2026-07-27.jsonl","body":""},{"hash":"05addfe0","date":"2026-07-27 03:17:41 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T03:17:36 (1 files) — DW-Programming/ImportNewSkufromURL/yw-results/437-RD336-20260727T030004.json","body":""},{"hash":"2d00d5a9","date":"2026-07-27 02:47:32 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T02:47:28 (1 files) — DW-Programming/ImportNewSkufromURL/data/scraper-audit/scraper-status.json","body":""},{"hash":"0585c799","date":"2026-07-27 02:17:24 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T02:17:19 (1 files) — scripts/room-image-push/ledger.json","body":""},{"hash":"18ce7b51","date":"2026-07-27 01:47:16 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T01:47:10 (1 files) — shopify/scripts/data/bucketB/longtail-land-20260727T000104.json","body":""},{"hash":"c104dbc7","date":"2026-07-27 00:47:00 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-27T00:46:55 (1 files) — shopify/scripts/audits/doubleroll-lengths-thibaut-before.jsonl","body":""},{"hash":"cd75732e","date":"2026-07-26 23:16:37 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T23:16:32 (1 files) — shopify/scripts/cadence/data/activations-2026-07-27.jsonl","body":""},{"hash":"700d29ec","date":"2026-07-26 20:45:55 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T20:45:50 (2 files) — shopify/package-lock.json shopify/package.json","body":""},{"hash":"0f70c3af","date":"2026-07-26 20:15:46 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T20:15:38 (3 files) — shopify/scripts/cadence/data/cadence-cursor.json shopify/scripts/cadence/vendors.js shopify/scripts/cadence/data/cadence-plan-am-2026-07-27.json","body":""},{"hash":"2da85281","date":"2026-07-26 20:05:47 -0700","author":"Steve","subject":"TK-31: pr-quote-only-tag fixes wrong tag (quotes->contact-for-price) + Kravet MAP exclusion","body":"The old `quotes` tag is an internal import-gate bypass flag that renders\nNOTHING customer-facing; the live theme (shopify/sections/contact-for-price.liquid)\ngates the Request-a-Quote UX on `contact-for-price`. Now applies contact-for-price\n(UX) + Needs-Price (internal companion, matching the 2,034-product luxury-draft\nco-occurrence pattern), append-only.\n\nAdds a two-layer Kravet-umbrella exclusion so the 15 Kravet-line PR SKUs (which\nprice at MAP = WHLS x 1.5, not quote-only) never get tagged: (1) SQL filter on\nKravet-family brand tokens in tags/metafields/supplier_name, (2) explicit\nKRAVET_EXCLUDE_SKUS list + env override for the exact 15 (TODO to populate).\n\nDry-runnable, no Shopify writes; --execute stays GATED.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"0c221aaf","date":"2026-07-26 17:14:51 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T17:14:46 (1 files) — shopify/scripts/cadence/data/activations-2026-07-26.jsonl","body":""},{"hash":"cd089016","date":"2026-07-26 16:44:42 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T16:44:36 (1 files) — shopify/scripts/anna-french-priceout-2026-06-25/data/run-report.json","body":""},{"hash":"bc605fca","date":"2026-07-26 15:44:23 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T15:44:17 (1 files) — shopify/scripts/cadence/data/upload-restore-2026-07-26.jsonl","body":""},{"hash":"4f4bb495","date":"2026-07-26 14:44:07 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T14:44:02 (1 files) — shopify/scripts/cadence/data/upload-restore-2026-07-26.jsonl","body":""},{"hash":"d66a4442","date":"2026-07-26 13:43:51 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T13:43:45 (1 files) — shopify/scripts/cadence/data/upload-restore-2026-07-26.jsonl","body":""},{"hash":"66d2b2cd","date":"2026-07-26 12:43:32 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T12:43:27 (1 files) — shopify/scripts/cadence/data/upload-restore-2026-07-26.jsonl","body":""},{"hash":"a9547e7d","date":"2026-07-26 11:43:15 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T11:43:10 (1 files) — shopify/scripts/cadence/data/upload-restore-2026-07-26.jsonl","body":""},{"hash":"76c39f9f","date":"2026-07-26 11:13:06 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T11:13:01 (1 files) — shopify/scripts/cadence/data/activations-2026-07-26.jsonl","body":""},{"hash":"9f301970","date":"2026-07-26 10:42:58 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T10:42:53 (1 files) — shopify/scripts/cadence/data/upload-restore-2026-07-26.jsonl","body":""},{"hash":"96f1f08d","date":"2026-07-26 09:42:40 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T09:42:34 (1 files) — shopify/scripts/cadence/data/upload-restore-2026-07-26.jsonl","body":""},{"hash":"46f81baa","date":"2026-07-26 05:10:50 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T05:10:45 (1 files) — shopify/scripts/cadence/data/activations-2026-07-26.jsonl","body":""},{"hash":"63ad1b21","date":"2026-07-26 03:10:17 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T03:10:13 (1 files) — DW-Programming/ImportNewSkufromURL/yw-results/437-RD336-20260726T030004.json","body":""},{"hash":"ccc872ae","date":"2026-07-26 02:40:10 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T02:40:05 (2 files) — DW-Programming/ImportNewSkufromURL/data/scraper-audit/scraper-status.json scripts/room-image-push/ledger.json","body":""},{"hash":"10e8e885","date":"2026-07-26 01:39:53 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T01:39:48 (1 files) — shopify/scripts/data/bucketB/longtail-land-20260726T000104.json","body":""},{"hash":"1134c75f","date":"2026-07-26 01:09:45 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-26T01:09:40 (1 files) — shopify/scripts/audits/doubleroll-lengths-wallquest-before.jsonl","body":""},{"hash":"14e12ac2","date":"2026-07-25 23:09:11 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T23:09:06 (1 files) — shopify/scripts/cadence/data/activations-2026-07-26.jsonl","body":""},{"hash":"105060a1","date":"2026-07-25 17:07:34 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T17:07:29 (1 files) — shopify/scripts/cadence/data/activations-2026-07-25.jsonl","body":""},{"hash":"74aee2c9","date":"2026-07-25 16:37:26 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T16:37:21 (1 files) — shopify/scripts/anna-french-priceout-2026-06-25/data/run-report.json","body":""},{"hash":"16b302e0","date":"2026-07-25 11:05:53 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T11:05:48 (1 files) — shopify/scripts/cadence/data/activations-2026-07-25.jsonl","body":""},{"hash":"df8a7e48","date":"2026-07-25 05:03:54 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T05:03:47 (1 files) — shopify/scripts/cadence/data/activations-2026-07-25.jsonl","body":""},{"hash":"6065b5ca","date":"2026-07-25 03:03:12 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T03:03:06 (1 files) — DW-Programming/ImportNewSkufromURL/yw-results/437-RD336-20260725T030004.json","body":""},{"hash":"665e5724","date":"2026-07-25 02:33:02 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T02:32:56 (2 files) — DW-Programming/ImportNewSkufromURL/data/scraper-audit/scraper-status.json scripts/room-image-push/ledger.json","body":""},{"hash":"10af2f8f","date":"2026-07-25 01:32:33 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T01:32:27 (1 files) — shopify/scripts/data/bucketB/longtail-land-20260725T000105.json","body":""},{"hash":"6cf8fac4","date":"2026-07-25 01:02:23 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-25T01:02:17 (2 files) — shopify/scripts/audits/doubleroll-lengths-thibaut-before.jsonl shopify/scripts/audits/doubleroll-lengths-wallquest-before.jsonl","body":""},{"hash":"fac2b709","date":"2026-07-24 23:00:16 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-24T23:00:12 (1 files) — shopify/scripts/cadence/data/activations-2026-07-25.jsonl","body":""},{"hash":"24798781","date":"2026-07-24 17:59:00 -0700","author":"Steve Abrams","subject":"auto-save: 2026-07-24T17:58:56 (1 files) — shopify/scripts/cadence/data/upload-restore-2026-07-25.jsonl","body":""}]}