[object Object]

← back to Dw Knowledge

expand seed: Schumacher internal-only, disco flow, naturals GRS/PWV/Cork routing, acoustical vendor detail

bf6f1219d37a9e617997d2951510089a65fc83b2 · 2026-07-17 07:20:08 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Files touched

Diff

commit bf6f1219d37a9e617997d2951510089a65fc83b2
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Jul 17 07:20:08 2026 -0700

    expand seed: Schumacher internal-only, disco flow, naturals GRS/PWV/Cork routing, acoustical vendor detail
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---
 .kl/manifest.json                      | 18 +++++++++++++++++-
 INDEX.md                               |  3 +++
 SOURCES.md                             |  4 ++++
 operations/discontinued-flow.md        | 29 +++++++++++++++++++++++++++++
 operations/material-and-unit-rules.md  |  8 ++++++--
 operations/material-routing.md         | 26 ++++++++++++++++++++++++++
 operations/schumacher-internal-only.md | 24 ++++++++++++++++++++++++
 sources/acoustical-detail.md           |  6 ++++++
 sources/discontinued-flow.md           | 11 +++++++++++
 sources/material-routing.md            | 10 ++++++++++
 sources/schumacher-internal-only.md    |  6 ++++++
 11 files changed, 142 insertions(+), 3 deletions(-)

diff --git a/.kl/manifest.json b/.kl/manifest.json
index a7afc97..eb62b3f 100644
--- a/.kl/manifest.json
+++ b/.kl/manifest.json
@@ -1,11 +1,23 @@
 {
   "version": 1,
-  "compiled_at": "2026-07-17T14:12:20.295225+00:00",
+  "compiled_at": "2026-07-17T14:20:08.463748+00:00",
   "sources": {
+    "sources/acoustical-detail.md": {
+      "hash": "b5ff82d628258a94d1cd8f20d2211073188fbc660b079e627641c924f486e3e2",
+      "bytes": 403
+    },
+    "sources/discontinued-flow.md": {
+      "hash": "9808c3870fdd529d2d7c64bfc304fe7526348c8b0bab7bb3ba085af0570c86b8",
+      "bytes": 825
+    },
     "sources/hard-catalog-rules.md": {
       "hash": "706f77d55bc93e064b27d8c5007087855d15d8a99d5762993150936fefa68e3e",
       "bytes": 1008
     },
+    "sources/material-routing.md": {
+      "hash": "a1ee95e49b3c7cbbe6fdb924775342e3d3a55e4dada71a1200c2754ad2da0ab8",
+      "bytes": 602
+    },
     "sources/material-rules.md": {
       "hash": "95463122d23213c6500b0a126e25641b0e790aff5e7d275de54948430c1e5391",
       "bytes": 478
@@ -18,6 +30,10 @@
       "hash": "b91bbfb5a8b5654ad09d1205e262a856be9f1eb3cae2192112834a26d3d460e7",
       "bytes": 1095
     },
+    "sources/schumacher-internal-only.md": {
+      "hash": "df58aea10a28d580c4734ca8f9801efda075556d27b2691f5d168ea657832d2a",
+      "bytes": 430
+    },
     "sources/settlement-gate.md": {
       "hash": "668e08e1266410f1ca7fdb76721ca47b46bc1ccdd2742e360ab7cf97e370cb2b",
       "bytes": 786
diff --git a/INDEX.md b/INDEX.md
index 153ef07..368e4e8 100644
--- a/INDEX.md
+++ b/INDEX.md
@@ -12,6 +12,9 @@ the relevant entries before acting. No RAG — the structure is the index.
 - [[settlement-gate]] — the wallpaper-imagery legal gate (Part A + Part B).
 - [[store-and-data-truth]] — sandbox IS live prod; unified-first; weight=shipping; GMC policy.
 - [[material-and-unit-rules]] — acoustical≠vinyl; GRS 36"; double-roll "2 and 2".
+- [[schumacher-internal-only]] — never publish Schumacher; internal-only.
+- [[discontinued-flow]] — disco pipeline; dashed-SKU join; substitutes never archived.
+- [[material-routing]] — naturals route to GRS/PWV/Cork by material, not DWLA.
 
 ## concepts/
 - [[map-pricing]] — MAP = WHLS × 1.5 (Kravet family + York).
diff --git a/SOURCES.md b/SOURCES.md
index c9300bc..72cc86c 100644
--- a/SOURCES.md
+++ b/SOURCES.md
@@ -12,3 +12,7 @@ Seeded from Steve's standing rules (CLAUDE.md + MEMORY.md + DW skill/canary set)
 | settlement-gate.md     | wallpaper-imagery legal gate |
 | store-truth.md         | which store is live; dw_unified canonical/authoritative |
 | material-rules.md      | acoustical≠vinyl, GRS width, double-roll rule |
+| schumacher-internal-only.md | Schumacher never-publish hard rule |
+| discontinued-flow.md   | FileMaker disco → Shopify archive → dw_unified |
+| material-routing.md    | naturals GRS/PWV/Cork routing by material |
+| acoustical-detail.md   | acoustical vendor specifics (merged into material-and-unit-rules) |
diff --git a/operations/discontinued-flow.md b/operations/discontinued-flow.md
new file mode 100644
index 0000000..318aef9
--- /dev/null
+++ b/operations/discontinued-flow.md
@@ -0,0 +1,29 @@
+---
+id: discontinued-flow
+type: operations
+tags: [discontinued, disco, filemaker, archive, substitutes, join-key]
+aliases: ["disco flow", "date discontinued", "archive flow"]
+sources: [sources/discontinued-flow.md]
+updated: 2026-07-17
+---
+# Discontinued (disco) flow
+
+**Summary:** FileMaker Date Discontinued → Shopify archive → dw_unified disco_items; join on the DASHED SKU, not the Shopify Handle. Vendor-confirmed disco auto-processes; ambiguous replies queue for Steve.
+
+## Facts
+- Pipeline: FileMaker `Date Discontinued` → Shopify archive → dw_unified
+  `disco_items` registry. <!-- src: discontinued-flow -->
+- **Join on the DASHED SKU** (`comboskuwithdash = dw_sku`), NOT the sparse
+  Shopify Handle. <!-- src: discontinued-flow -->
+- 2026-07-07 run archived 2,227 of ~28,888 disco records (0 errors) + generated
+  customer letters. <!-- src: discontinued-flow -->
+- Vendor-reply path (discontinued-agent): a vendor that EXPLICITLY says a product
+  is discontinued → stamp FileMaker discontinued + close the open sample order so
+  the >10-day follow-up stops. Ambiguous/sensitive replies (no sample,
+  backordered, relationship-ended, brand-attribution, legal) are QUEUED for
+  Steve, never auto-written. <!-- src: discontinued-flow -->
+- Substitutes: substitutefinder returns nearest ACTIVE/STAGED/DRAFT only —
+  ARCHIVED and deleted products are NEVER shown as substitutes. <!-- src: discontinued-flow -->
+
+## Related
+- [[catalog-gates]] · [[store-and-data-truth]] (unified-first).
diff --git a/operations/material-and-unit-rules.md b/operations/material-and-unit-rules.md
index 11a3cbd..89985bd 100644
--- a/operations/material-and-unit-rules.md
+++ b/operations/material-and-unit-rules.md
@@ -3,7 +3,7 @@ id: material-and-unit-rules
 type: operations
 tags: [material, units, hard-rule, roll, width, acoustical]
 aliases: ["acoustical is not vinyl", "double roll rule", "grasscloth width"]
-sources: [sources/material-rules.md]
+sources: [sources/material-rules.md, sources/acoustical-detail.md]
 updated: 2026-07-17
 ---
 # Material & unit rules
@@ -13,7 +13,10 @@ updated: 2026-07-17
 ## Facts
 - **Acoustical wallcoverings are polyester/olefin FIBER, NOT Type II vinyl.** PDP
   Material = `custom.material` metafield. (e.g. Sidmouth = Momentum "Silence",
-  50% Poly / 50% PP.) <!-- src: material-rules -->
+  50% Poly / 50% PP.) <!-- src: material-rules --> <!-- src: acoustical-detail -->
+  - 29 ACTIVE acoustical products corrected 2026-07-12 (sidmouth-material-fix).
+    Still mislabeled as vinyl and needing correction: Ellington (Goat Hair)
+    plus ~5 other patterns. <!-- src: acoustical-detail -->
 - **GRS grasscloth SKUs are 36" wide ONLY:** canonical width
   `36" Wide (trim to 34")`. <!-- src: material-rules -->
 - **DOUBLE-ROLL RULE ("2 and 2"):** the private-label double-roll lines
@@ -22,3 +25,4 @@ updated: 2026-07-17
 
 ## Related
 - [[private-label-branding]] — the double-roll lines are these PL brands.
+- [[material-routing]] — how naturals route to GRS/PWV/Cork by material.
diff --git a/operations/material-routing.md b/operations/material-routing.md
new file mode 100644
index 0000000..b313bce
--- /dev/null
+++ b/operations/material-routing.md
@@ -0,0 +1,26 @@
+---
+id: material-routing
+type: operations
+tags: [naturals, routing, sku-prefix, phillipe-romano, hard-rule, grasscloth, paperweave, cork]
+aliases: ["naturals routing", "GRS PWV Cork", "route by material"]
+sources: [sources/material-routing.md]
+updated: 2026-07-17
+---
+# Naturals material routing
+
+**Summary:** Phillipe Romano naturals route to a DW SKU-prefix series BY MATERIAL — GRS (grasscloth), PWV (paperweave), Cork (cork). WallQuest "Lillian August" naturals go here by material, NOT to DWLA.
+
+## Facts
+- Prefix ↔ material: **GRS** = grasscloth, **PWV** = paperweave, **Cork** = cork
+  (Greenland cork uses `Cork-<number>`, Series "Cork"). <!-- src: material-routing -->
+- WallQuest "Lillian August" / LN naturals (grasscloth / paperweave / cork) go
+  into the Phillipe Romano GRS / PWV / Cork series **by material** — NOT into
+  DWLA (= Justin David "Los Angeles Fabrics"). <!-- src: material-routing -->
+- A 120-batch was mis-lined onto DWLA and had to be re-SKU'd to GRS-/PWV-/Cork-.
+  Route naturals by material; fix the onboarding source + register in
+  dw_sku_registry. <!-- src: material-routing -->
+
+## Related
+- [[private-label-branding]] — WallQuest normally → Malibu; naturals are the
+  material-routed exception into Phillipe Romano.
+- [[material-and-unit-rules]] · [[pricing-rules]] (Greenland cork $59.50/yd).
diff --git a/operations/schumacher-internal-only.md b/operations/schumacher-internal-only.md
new file mode 100644
index 0000000..4d9ecf3
--- /dev/null
+++ b/operations/schumacher-internal-only.md
@@ -0,0 +1,24 @@
+---
+id: schumacher-internal-only
+type: operations
+tags: [schumacher, hard-rule, internal-only, publish-gate, compliance]
+aliases: ["schumacher", "do not publish schumacher"]
+sources: [sources/schumacher-internal-only.md]
+updated: 2026-07-17
+---
+# Schumacher internal-only
+
+**Summary:** HARD RULE — never launch/publish Schumacher to Shopify or show it on any front end. Internal-only.
+
+## Facts
+- Never launch or publish Schumacher to the DW Shopify store or show it on ANY
+  front end — no product, no collection, no brand-facet. <!-- src: schumacher-internal-only -->
+- Internal-only, browsable at `internal.schumacher.designerwallcoverings.com`.
+  <!-- src: schumacher-internal-only -->
+- Enforce at every publish chokepoint. <!-- src: schumacher-internal-only -->
+- A Schumacher DWSW → architectural DWWC updater exists, but that does NOT
+  change the do-not-publish rule. <!-- src: schumacher-internal-only -->
+
+## Related
+- [[store-and-data-truth]] — publish chokepoints are the enforcement point.
+- [[catalog-gates]] — this is a publish gate on top of the go-live gates.
diff --git a/sources/acoustical-detail.md b/sources/acoustical-detail.md
new file mode 100644
index 0000000..c66f4ee
--- /dev/null
+++ b/sources/acoustical-detail.md
@@ -0,0 +1,6 @@
+ACOUSTICAL VENDOR DETAIL (adds to the acoustical=fiber rule). Acoustical
+wallcoverings are polyester/olefin FIBER, not Type II vinyl; PDP Material =
+custom.material metafield. Sidmouth = Momentum "Silence", 50% Poly / 50% PP.
+29 ACTIVE acoustical products were corrected 2026-07-12 (sidmouth-material-fix).
+Still mislabeled as vinyl and needing correction: Ellington (Goat Hair) plus
+~5 other patterns.
diff --git a/sources/discontinued-flow.md b/sources/discontinued-flow.md
new file mode 100644
index 0000000..cbbe474
--- /dev/null
+++ b/sources/discontinued-flow.md
@@ -0,0 +1,11 @@
+DISCONTINUED (DISCO) FLOW. FileMaker "Date Discontinued" -> Shopify archive ->
+dw_unified disco_items registry. Join on the DASHED SKU
+(comboskuwithdash = dw_sku), NOT the sparse Shopify Handle. A 2026-07-07 run
+archived 2,227 of ~28,888 disco records (0 errors) + generated customer letters.
+Vendor-reply path: the discontinued-agent scans info@ sample-followup threads;
+when a vendor EXPLICITLY says a product is discontinued it stamps the FileMaker
+record discontinued and closes the open sample order so the >10-day follow-up
+stops re-asking. Ambiguous/sensitive replies (no sample, backordered,
+relationship-ended, brand-attribution, legal) are QUEUED for Steve, never
+auto-written. Substitutes: substitutefinder returns nearest ACTIVE/STAGED/DRAFT
+only — ARCHIVED and deleted products are NEVER shown as substitutes.
diff --git a/sources/material-routing.md b/sources/material-routing.md
new file mode 100644
index 0000000..fcb37a2
--- /dev/null
+++ b/sources/material-routing.md
@@ -0,0 +1,10 @@
+NATURALS MATERIAL ROUTING (HARD, 2026-07-16). Phillipe Romano naturals are
+routed to a DW SKU-prefix series by MATERIAL:
+  - GRS  = grasscloth
+  - PWV  = paperweave
+  - Cork = cork  (Greenland cork uses Cork-<number>, Series "Cork")
+WallQuest "Lillian August" / LN naturals (grasscloth / paperweave / cork) go
+into the Phillipe Romano GRS / PWV / Cork series BY MATERIAL — NOT into DWLA
+(DWLA = Justin David "Los Angeles Fabrics"). A 120-batch was mis-lined onto DWLA
+and had to be re-SKU'd to GRS-/PWV-/Cork-. Route naturals by material, and fix
+the onboarding source + register in dw_sku_registry.
diff --git a/sources/schumacher-internal-only.md b/sources/schumacher-internal-only.md
new file mode 100644
index 0000000..ab1332e
--- /dev/null
+++ b/sources/schumacher-internal-only.md
@@ -0,0 +1,6 @@
+SCHUMACHER INTERNAL-ONLY (HARD RULE, 2026-07-16). Never launch or publish
+Schumacher to the DW Shopify store or show it on ANY front end — no product,
+no collection, no brand-facet. Schumacher is internal-only, browsable at
+internal.schumacher.designerwallcoverings.com. Enforce at every publish
+chokepoint. (Separately, the Schumacher DWSW->architectural DWWC updater exists,
+but that does not change the do-not-publish rule.)

← 1f859e0 DW wallcovering knowledge layer: seed private-label/pricing/  ·  back to Dw Knowledge  ·  (newest)