[object Object]

← back to Designer Wallcoverings

auto-data-snapshot: 2026-09-22T11:43:24 (4 data files) — OWNERSHIP.md shopify/scripts/cadence/data/cadence-cursor.json shopify/scripts/cadence/data/cadence-plan-am-2026-09-22.json shopify/scripts/cadence/data/upload-restore-2026-09-22.jsonl

99826b121cb412c56c87d7e8cb4272733d2cc912 · 2026-09-22 11:44:33 -0700 · auto-commit-fleet

Files touched

Diff

commit 99826b121cb412c56c87d7e8cb4272733d2cc912
Author: auto-commit-fleet <steve@designerwallcoverings.com>
Date:   Tue Sep 22 11:44:33 2026 -0700

    auto-data-snapshot: 2026-09-22T11:43:24 (4 data files) — OWNERSHIP.md shopify/scripts/cadence/data/cadence-cursor.json shopify/scripts/cadence/data/cadence-plan-am-2026-09-22.json shopify/scripts/cadence/data/upload-restore-2026-09-22.jsonl
---
 OWNERSHIP.md                                       |  51 ++++++++
 shopify/scripts/cadence/data/cadence-cursor.json   |   2 +-
 .../cadence/data/cadence-plan-am-2026-09-22.json   | 142 ++++++++++-----------
 .../cadence/data/upload-restore-2026-09-22.jsonl   |  10 ++
 4 files changed, 132 insertions(+), 73 deletions(-)

diff --git a/OWNERSHIP.md b/OWNERSHIP.md
new file mode 100644
index 00000000..2f2c6c3d
--- /dev/null
+++ b/OWNERSHIP.md
@@ -0,0 +1,51 @@
+# OWNERSHIP — Designer-Wallcoverings (capital, hyphen)
+
+_Authoritative boundary doc. Steve approved "Option B — keep separate + decouple" on 2026-09-22 (analysis memo `~/.claude/yolo-queue/pending-approval/dw-two-repos-consolidation-analysis-20260922.md`). This file + its twin in `~/Projects/designerwallcoverings/OWNERSHIP.md` are the source of truth for which repo owns what. There are TWO DW repos on purpose — they are NOT duplicates, NOT to be merged._
+
+## What THIS repo is
+`~/Projects/Designer-Wallcoverings` — pkg `designer-wallcoverings` v1.2.16, "Designer Wallcoverings Shopify Management". The **storefront + cadence monorepo** (19 GB, 41 nested repos: DW-Agents, DW-Websites, DW-MCP, DW-Programming, DW-Skills, brand-router, shopify, admin, components, …). Local-only (no git remote). ~29 `com.steve.*` launchd jobs run its scripts.
+
+## This repo OWNS (canonical)
+- **Storefront / Shopify theme layer** — all `shopify/scripts/push-*-to-theme` / `push-*-to-live`, PDP/grid/collection-hero work, theme backups.
+- **The hourly product-upload CADENCE engine** — `shopify/scripts/cadence/` (cadence-import.js, activate-gated.js, vendors.js). Driven by `com.steve.dw-cadence-hourly`.
+- **The canonical shared GUARD libs** — `shopify/scripts/lib/validate-before-activate.js` (the single activation gate) + `shopify/scripts/lib/inventory-stamp-guard.mjs` (the $0-orderable guard, TK-11357) + `shopify/scripts/lib/internal-guard.js` (the internal-line front-facing guard). See "Shared guard libs" below.
+- The DW-* nested stack (Agents/Websites/MCP/Skills/Product-Pages/brand-router/admin) — none of which exists in the lowercase repo.
+- The full Shopify token set lives in THIS repo's `.env` (`SHOPIFY_ADMIN_TOKEN`, `SHOPIFY_FULL_ACCESS_TOKEN`, `SHOPIFY_THEME_TOKEN`, `SHOPIFY_NAV_TOKEN`) + `ANTHROPIC_API_KEY` + a `dw_unified` `DATABASE_URL`.
+
+## The OTHER repo (`~/Projects/designerwallcoverings`, lowercase, pkg `designerwallcoverings-ai`)
+Owns: the **designerwallcoverings.ai room-render landing** (`server.js` → Gemini room-photo matcher, deployed to Kamatera pm2 `designerwallcoverings.ai`:9925), plus **new vendor onboarding + catalog data-quality** (2026-Q3 onboarders sanderson/greenland/stroheim/osborne, price-sheets, dedup, orphan-cleanup, GMC, roll-scale). ~18 launchd jobs.
+
+## Shared-vendor ownership (the diverged forks)
+Both repos historically carried code for these six vendors. Going-forward SINGLE owner (freeze/repoint of the losing fork is drafted for Steve in a gated memo, NOT yet executed):
+
+| Vendor | Going-forward owner | Notes |
+|---|---|---|
+| anna-french | (see gated memo) | capital 7 files / lowercase 2 |
+| cole-son / coleson | (see gated memo) | capital 10 / lowercase 7 |
+| romo | (see gated memo) | 3 / 3 |
+| kravet | (see gated memo) | capital 7 / lowercase 22 (lowercase-heavy) |
+| china-seas | (see gated memo) | 1 / 1 |
+| artmura | (see gated memo) | 1 / 1 |
+
+Until the per-vendor owner is ratified, do NOT add a NEW second fork of any of these in the other repo.
+
+### Ratified 2026-09-22 (Steve fired the vendor-fork memo)
+- **romo → lowercase canonical.** Capital's orphan romo utilities `romo-lookup.js`, `romo-drilldown.js` moved to `shopify/scripts/_superseded/`. NOTE: capital RETAINS an active romo PRICING chain — `shopify/scripts/romo-add-roll-pricing.js` + `shopify/scripts/data/romo-cost-backfill/` (its runner `run-romo-push.sh` + CSV + `com.steve.romo-roll-pricing.plist.template`). That chain was NOT frozen (still referenced). So romo is effectively a **functional split**: lowercase owns roll CREATION/verify (`com.steve.gimmersta-romo-rolls`, `com.steve.romo-roll-verify`), capital owns romo roll PRICING.
+- **artmura → lowercase canonical.** Capital's stale `artmura-title-fix.js` moved to `_superseded/`.
+- **cole-son / coleson → FUNCTIONAL SPLIT, both kept:** capital owns cole-son/coleson **variant/onboarding/metafields** (`coleson-add-bolt-variants.js`, `-add-panel-variants.js`, `-backfill-metafields.js`, `-add-sample-variants.js`, `-audit.js`, …); lowercase owns cole-son **2026 pricing / pattern-map** (`cole-son-reprice-2026.js`, `-price-audit.mjs`, `-apply-map.js`, `-apply-pattern-map.js`, `-reconcile-pattern.js`, `map-verify`). Different fields — do NOT freeze either.
+- **kravet → FUNCTIONAL SPLIT, both kept (both live jobs):** capital owns kravet **price/MAP watch** (`shopify/scripts/cadence/kravet-price-monitor.js` → `com.steve.kravet-price-monitor`, `com.steve.kravet-overnight-summary`); lowercase owns kravet **spec/onboarding** (`com.steve.kravet-spec-backfill` + price-sheets). Do NOT freeze either.
+- **anna-french → FUNCTIONAL SPLIT, both kept (NOT frozen):** capital owns scrape/enrich/cadence-dwsku pipeline (`anna-french-scraper.js`, `-enrich.js`, `-repair-inplace.mjs`, `cadence/anna-french-phase0-assign-dwsku.sh`); lowercase owns live-remediation `anna-french-onboard/` (TK-11076 colorway/AI-tag correction + rollback) and `anna-french-rolls/` (roll build/reprice). Verified 2026-09-22: the in-repo `com.steve.anna-french-roll-drain.plist` is NOT loaded. Distinct functions — no freeze.
+- **china-seas → capital's files are SPENT one-shots (kept as history, NOT frozen):** `china-seas-revert-commercial.js` (labeled "one-off, 2026-06-30") + `reconcile/china-seas-type-fix/*.sql` (completed DTD-A June-2026 type normalization, with its own rollback SQL). lowercase owns live remediation `china-seas-onboard/` (TK-11076). No loaded china-seas job. Temporal/functional split — no freeze.
+
+## Shared guard libs — canonical home is `~/Projects/_shared/dw-guards/`
+As of the 2026-09-22 decouple:
+- `~/Projects/_shared/dw-guards/validate-before-activate.js`, `internal-guard.js`, `inventory-stamp-guard.mjs` are the **documented canonical masters**.
+- `shopify/scripts/lib/validate-before-activate.js` in THIS repo is a **thin re-export shim** → `_shared/dw-guards/validate-before-activate.js` (all existing importers, incl. the 3 lowercase go-live scripts that import it by absolute path, keep working unchanged). Original backed up as `validate-before-activate.js.pre-shared-lift`.
+- `inventory-stamp-guard.mjs` is NOT yet shimmed here — it is a deliberate byte-behavior-identical 5-repo copy set drift-checked by `shopify/scripts/tk11357-source-fix-proof/predicate-proof.mjs`. Full consolidation of it behind `_shared` (with predicate-proof updated) is a gated follow-up, so the live cadence $0-guard is not disturbed without review.
+
+## Cross-repo coupling status (what the decouple fixed)
+- lowercase→capital `node_modules/pg` borrow: **FIXED** (lowercase now has its own `pg`).
+- lowercase→capital guard-lib import: `validate-before-activate.js` importers now transparently resolve through the `_shared` master via the capital shim.
+- lowercase reads capital's `.env` (1 script): still present — noted for a future decouple (point it at `secrets-manager/.env`).
+
+**Hard rails:** both repos have automated writers committing ~hourly — never run `git add/commit/reset/checkout` by hand in either. `dw_unified` + Shopify writes are canonical/customer-facing (gated). Live store = `designer-laboratory-sandbox.myshopify.com` (API 2024-10).
diff --git a/shopify/scripts/cadence/data/cadence-cursor.json b/shopify/scripts/cadence/data/cadence-cursor.json
index 0863e219..6159840d 100644
--- a/shopify/scripts/cadence/data/cadence-cursor.json
+++ b/shopify/scripts/cadence/data/cadence-cursor.json
@@ -1,5 +1,5 @@
 {
- "idx": 3,
+ "idx": 1,
  "lastSlot": "am",
  "lastRun": "2026-09-22"
 }
\ No newline at end of file
diff --git a/shopify/scripts/cadence/data/cadence-plan-am-2026-09-22.json b/shopify/scripts/cadence/data/cadence-plan-am-2026-09-22.json
index ded1aa5d..95ad021b 100644
--- a/shopify/scripts/cadence/data/cadence-plan-am-2026-09-22.json
+++ b/shopify/scripts/cadence/data/cadence-plan-am-2026-09-22.json
@@ -1,32 +1,92 @@
 [
+ {
+  "vendor": "Brewster & York",
+  "dw_sku": "DWBR-171707",
+  "cost": 90,
+  "retail": 162.9,
+  "sample": "4.25",
+  "sampleOnly": false,
+  "title": "Caspian, Charcoal Wallcoverings | Malibu Wallcovering",
+  "willActivate": false
+ },
+ {
+  "vendor": "Brewster & York",
+  "dw_sku": "DWBR-171708",
+  "cost": 95,
+  "retail": 171.95,
+  "sample": "4.25",
+  "sampleOnly": false,
+  "title": "Gallivant, Neutral Wallcoverings | Malibu Wallcovering",
+  "willActivate": false
+ },
+ {
+  "vendor": "Brewster & York",
+  "dw_sku": "DWBR-171709",
+  "cost": 95,
+  "retail": 171.95,
+  "sample": "4.25",
+  "sampleOnly": false,
+  "title": "Gallivant, Indigo Wallcoverings | Malibu Wallcovering",
+  "willActivate": false
+ },
+ {
+  "vendor": "Kravet",
+  "dw_sku": "DWKK-103807",
+  "cost": 168,
+  "retail": 252,
+  "sample": "4.25",
+  "sampleOnly": false,
+  "title": ", Charcoal Gray Wallcoverings | Kravet",
+  "willActivate": false
+ },
+ {
+  "vendor": "Kravet",
+  "dw_sku": "DWKK-103808",
+  "cost": 168,
+  "retail": 252,
+  "sample": "4.25",
+  "sampleOnly": false,
+  "title": ", Dark Brown Wallcoverings | Kravet",
+  "willActivate": false
+ },
+ {
+  "vendor": "Kravet",
+  "dw_sku": "DWKK-103809",
+  "cost": 278.25,
+  "retail": 417.38,
+  "sample": "4.25",
+  "sampleOnly": false,
+  "title": ", Gray Wallcoverings | Kravet",
+  "willActivate": false
+ },
  {
   "vendor": "Schumacher",
-  "dw_sku": "DWLK-815400",
+  "dw_sku": "DWLK-815430",
   "cost": 154,
   "retail": 278.73,
   "sample": "4.25",
   "sampleOnly": false,
-  "title": "Centipede Stripe, Pea Wallcoverings | Schumacher",
+  "title": "Culpeper, Ox Orange Wallcoverings | Schumacher",
   "willActivate": false
  },
  {
   "vendor": "Schumacher",
-  "dw_sku": "DWLK-815410",
-  "cost": 154,
-  "retail": 278.73,
+  "dw_sku": "DWLK-815440",
+  "cost": 126,
+  "retail": 228.05,
   "sample": "4.25",
   "sampleOnly": false,
-  "title": "Parterre, Gold Wallcoverings | Schumacher",
+  "title": "Tudor Rose, Charcoal White Wallcoverings | Schumacher",
   "willActivate": false
  },
  {
   "vendor": "Schumacher",
-  "dw_sku": "DWLK-815420",
-  "cost": 154,
-  "retail": 278.73,
+  "dw_sku": "DWLK-815450",
+  "cost": 126,
+  "retail": 228.05,
   "sample": "4.25",
   "sampleOnly": false,
-  "title": "Parterre, Silver Wallcoverings | Schumacher",
+  "title": "Tudor Rose, Pistachio Wallcoverings | Schumacher",
   "willActivate": false
  },
  {
@@ -88,67 +148,5 @@
   "sampleOnly": false,
   "title": "Palm, Harvest Wallcoverings | Romo",
   "willActivate": false
- },
- {
-  "vendor": "Designtex",
-  "dw_sku": "DWDX-220516",
-  "cost": 58,
-  "retail": 104.98,
-  "sample": "4.25",
-  "sampleOnly": false,
-  "title": "Fragments, New York Wallcoverings | Designtex",
-  "willActivate": false,
-  "held": true,
-  "heldReason": "\"York Wallcoverings\" is a banned front-facing trade-parent name"
- },
- {
-  "vendor": "Designtex",
-  "dw_sku": "DWDX-221041",
-  "cost": 47,
-  "retail": 85.07,
-  "sample": "4.25",
-  "sampleOnly": false,
-  "title": "Press, Shale Wallcoverings | Designtex",
-  "willActivate": false
- },
- {
-  "vendor": "Designtex",
-  "dw_sku": "DWDX-221042",
-  "cost": 47,
-  "retail": 85.07,
-  "sample": "4.25",
-  "sampleOnly": false,
-  "title": "Press, Sesame Wallcoverings | Designtex",
-  "willActivate": false
- },
- {
-  "vendor": "Newwall",
-  "dw_sku": "DWXW-1006836",
-  "cost": 416,
-  "retail": 752.94,
-  "sample": "4.25",
-  "sampleOnly": false,
-  "title": "Cochin Teal, Panel Set Wallcoverings | Newwall",
-  "willActivate": false
- },
- {
-  "vendor": "Newwall",
-  "dw_sku": "DWXW-1006837",
-  "cost": 416,
-  "retail": 752.94,
-  "sample": "4.25",
-  "sampleOnly": false,
-  "title": "Lhasa Navy, Panel Set Wallcoverings | Newwall",
-  "willActivate": false
- },
- {
-  "vendor": "Newwall",
-  "dw_sku": "DWXW-1006838",
-  "cost": 416,
-  "retail": 752.94,
-  "sample": "4.25",
-  "sampleOnly": false,
-  "title": "Karakorum Sand, Panel Set Wallcoverings | Newwall",
-  "willActivate": false
  }
 ]
\ No newline at end of file
diff --git a/shopify/scripts/cadence/data/upload-restore-2026-09-22.jsonl b/shopify/scripts/cadence/data/upload-restore-2026-09-22.jsonl
index c9ee051c..339b7fba 100644
--- a/shopify/scripts/cadence/data/upload-restore-2026-09-22.jsonl
+++ b/shopify/scripts/cadence/data/upload-restore-2026-09-22.jsonl
@@ -98,3 +98,13 @@
 {"table":"newwall_catalog","mfr_sku":"P-2211","dw_sku":"DWXW-1006836","shopify_product_id":"7979701764147","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T17-40-05-607Z","ts":"2026-09-22T17:40:33.776Z"}
 {"table":"newwall_catalog","mfr_sku":"P-2212","dw_sku":"DWXW-1006837","shopify_product_id":"7979701796915","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T17-40-05-607Z","ts":"2026-09-22T17:40:36.812Z"}
 {"table":"newwall_catalog","mfr_sku":"P-2213","dw_sku":"DWXW-1006838","shopify_product_id":"7979701829683","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T17-40-05-607Z","ts":"2026-09-22T17:40:39.283Z"}
+{"table":"brewster_catalog","mfr_sku":"4146-27249","dw_sku":"DWBR-171707","shopify_product_id":"7979779227699","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:11.089Z"}
+{"table":"brewster_catalog","mfr_sku":"4146-27252","dw_sku":"DWBR-171708","shopify_product_id":"7979779260467","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:14.726Z"}
+{"table":"brewster_catalog","mfr_sku":"4146-27257","dw_sku":"DWBR-171709","shopify_product_id":"7979779293235","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:17.935Z"}
+{"table":"kravet_catalog","mfr_sku":"6022148.811.0","dw_sku":"DWKK-103807","shopify_product_id":"7979779326003","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:20.613Z"}
+{"table":"kravet_catalog","mfr_sku":"6022148.84.0","dw_sku":"DWKK-103808","shopify_product_id":"7979779358771","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:23.230Z"}
+{"table":"kravet_catalog","mfr_sku":"6022149.106.0","dw_sku":"DWKK-103809","shopify_product_id":"7979779391539","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:26.159Z"}
+{"table":"schumacher_catalog","mfr_sku":"5015090","dw_sku":"DWLK-815430","shopify_product_id":"7979779424307","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:29.595Z"}
+{"table":"schumacher_catalog","mfr_sku":"5015100","dw_sku":"DWLK-815440","shopify_product_id":"7979779457075","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:32.227Z"}
+{"table":"schumacher_catalog","mfr_sku":"5015101","dw_sku":"DWLK-815450","shopify_product_id":"7979779489843","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:34.798Z"}
+{"table":"pierre_frey_catalog","mfr_sku":"Nova","dw_sku":"FQ030001","shopify_product_id":"7953189929011","action":"linked-existing","activated":false,"batch_id":"upload-am-2026-09-22T18-40-05-214Z","ts":"2026-09-22T18:40:35.668Z"}

← e3301879 Apply TK-11786 review fixes #2/#3/#6/#7 (gate 4th writer, fa  ·  back to Designer Wallcoverings  ·  auto-data-snapshot: 2026-09-22T12:49:04 (5 data files) — sho e495042c →