← back to Dw Activation Calendar
rotation-order: explicitly exclude Fabricut from shared rotation (has dedicated full-pattern daily poster) — TK-10762
20fab0ce8e6a7f15abfbca186a371e7ef0c27c45 · 2026-08-20 16:59:26 -0700 · Steve Abrams
Fabricut was only INCIDENTALLY excluded by the sample-SKU filter (a mirror sync
bug left every Fabricut product sku as the -Sample variant). The root sync fix
(sellable-variant sku) means a future full re-sync would correct those SKUs and
silently flood Fabricut into the shared 1-colorway rotation, violating Steve's
'always complete patterns' rule + double-handling it against fabricut-daily-post.js.
Make the exclusion explicit + durable.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
Diff
commit 20fab0ce8e6a7f15abfbca186a371e7ef0c27c45
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Aug 20 16:59:26 2026 -0700
rotation-order: explicitly exclude Fabricut from shared rotation (has dedicated full-pattern daily poster) — TK-10762
Fabricut was only INCIDENTALLY excluded by the sample-SKU filter (a mirror sync
bug left every Fabricut product sku as the -Sample variant). The root sync fix
(sellable-variant sku) means a future full re-sync would correct those SKUs and
silently flood Fabricut into the shared 1-colorway rotation, violating Steve's
'always complete patterns' rule + double-handling it against fabricut-daily-post.js.
Make the exclusion explicit + durable.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
lib/rotation-order.js | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/lib/rotation-order.js b/lib/rotation-order.js
index ecf7bdc..1a41bf0 100644
--- a/lib/rotation-order.js
+++ b/lib/rotation-order.js
@@ -77,6 +77,20 @@ const NEVER_ACTIVATE_TITLE = "\\yet cie\\y";
// NOT on title (Phillipe Romano etc. use "memo"/"sample" as legit name tokens).
const SAMPLE_SKU_REGEX = "-(sample|s)$";
+// DEDICATED-POSTER vendors (2026-08-20, TK-10762). DIFFERENT rationale from
+// NEVER_ACTIVATE_VENDORS: these vendors DO get published — but via their OWN
+// dedicated daily poster, NOT this shared round-robin rotation. They must be
+// excluded from the shared rotation because it activates ONE colorway at a time,
+// which violates Steve's HARD Fabricut rule ("ALWAYS complete patterns — every
+// colorway together, never cut off after 1 color"; fabricut-daily-post.js posts
+// whole patterns). Historically Fabricut was excluded only INCIDENTALLY by the
+// SAMPLE_SKU_REGEX above (a mirror sync bug left every Fabricut product SKU as the
+// "…-Sample" variant). Once that mirror sku is corrected to the sellable roll SKU
+// (root fix shipped in sync-shopify-products.js), the incidental exclusion vanishes
+// and Fabricut would silently flood the shared rotation. This makes the exclusion
+// EXPLICIT + durable so a future full re-sync can't reintroduce the hazard.
+const DEDICATED_POSTER_VENDORS = "fabricut";
+
/*
* The canonical ordered-DRAFT query. Emits every DRAFT (minus Schumacher + noise)
* in the exact textures-first + vendor-round-robin order, with the columns both
@@ -108,6 +122,7 @@ WITH pool AS (
AND lower(coalesce(title,'')) !~ '${NEVER_ACTIVATE_TITLE}' -- Et Cie (rights revoked 2026-08-13): brand in TITLE, both "Et Cie …" and "… by Et Cie" forms; vendor is "Designer Wallcoverings"
AND lower(coalesce(title,'')) !~ '${NOISE_REGEX}' -- drop help-doc noise rows
AND lower(coalesce(sku, dw_sku, '')) !~ '${SAMPLE_SKU_REGEX}' -- exclude memo/sample SKUs (…-Sample / …-S): never a standalone live listing
+ AND lower(coalesce(vendor,'')) !~ '${DEDICATED_POSTER_VENDORS}' -- Fabricut (TK-10762): published via its OWN full-pattern daily poster, never the shared 1-colorway rotation
AND NOT EXISTS ( -- re-introduction guard (TITLE): skip a DRAFT whose title was EVER on the store
SELECT 1 FROM shopify_products a -- (ACTIVE now, or intentionally ARCHIVED/DELETED before) — no resurrecting retired patterns
WHERE a.status IN ('ACTIVE','ARCHIVED','DELETED_FROM_SHOPIFY')
← a964c07 auto-data-snapshot: 2026-08-20T11:53:54 (2 data files) — dat
·
back to Dw Activation Calendar
·
auto-data-snapshot: 2026-08-20T17:52:14 (1 data files) — bac 3bf2037 →