← back to Dw Sku Integrity
TK-10900: finalize roadmap — A3 title-normalizer (~70-120) + Program D per-vendor scraper assignments
ef129e012d825166d4c1513c67edde98ea8676a7 · 2026-08-31 04:00:47 -0700 · codex-10896
Completed catalog-coverage probe: Thibaut/PierreFrey/Arte/Harlequin patterns EXIST
in-catalog (title-format noise only) -> A3 normalizer $0, ~70 rows. Fentucci patterns
NOT in catalog -> genuine D. Final D roster w/ per-vendor scraper-skill assignments +
3 new-scraper builds flagged (Maharam/CMO/JStevens). Live scraping gated (Steve go).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
M evidence/TK-10900-rescrape-workplan.md
Diff
commit ef129e012d825166d4c1513c67edde98ea8676a7
Author: codex-10896 <steve@designerwallcoverings.com>
Date: Mon Aug 31 04:00:47 2026 -0700
TK-10900: finalize roadmap — A3 title-normalizer (~70-120) + Program D per-vendor scraper assignments
Completed catalog-coverage probe: Thibaut/PierreFrey/Arte/Harlequin patterns EXIST
in-catalog (title-format noise only) -> A3 normalizer $0, ~70 rows. Fentucci patterns
NOT in catalog -> genuine D. Final D roster w/ per-vendor scraper-skill assignments +
3 new-scraper builds flagged (Maharam/CMO/JStevens). Live scraping gated (Steve go).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
evidence/TK-10900-rescrape-workplan.md | 37 +++++++++++++++++++++++++++-------
1 file changed, 30 insertions(+), 7 deletions(-)
diff --git a/evidence/TK-10900-rescrape-workplan.md b/evidence/TK-10900-rescrape-workplan.md
index 6cf4b1d..f58256b 100644
--- a/evidence/TK-10900-rescrape-workplan.md
+++ b/evidence/TK-10900-rescrape-workplan.md
@@ -213,13 +213,36 @@ existing Greenland feed-first scrape (open JSON API, $0).
- **Phillipe Romano 116** — folded into Program B.
- **Never** write `null`/`null-Sample` back as a code (the JOB-4 "don't paper over" rule).
-### Program D — True web re-scrape (~450 rows, metered)
-Only where the catalog can't supply a code. Priority by count:
-`Majilite 160` (new scraper build) · `Pixels 52` (POD — treat as print-on-demand, not a wallcovering
-scrape) · `Fentucci Naturals ~65 gap` (`fentucci-scraper-manager`) · `Steve Abrams/FAA 13`
-(`fineartamerica-scraper-manager`) · `Jeffrey Stevens 12` (new build) · `Graduate 4`. Show `$` cost
-per scrape; openclaw is serial (one gateway/profile) so batch small. Feed results back through the
-staging catalog → then Program A's content-match.
+### Program A3 — title-normalizer recovery (~70–120 rows, $0, catalog HAS the code)
+Vendors whose blank Shopify rows failed the concat match on **title-format noise only** — the product
+IS in the catalog (verified). A per-vendor title normalizer feeding the existing concat matcher recovers
+them without a scrape:
+- **Thibaut 65** — strip `" Wide Width"`, `", "`, `" Wallcoverings | Thibaut"` → `pattern + color`
+ (Woolston/Saddle Weave/Taluk Sisal confirmed present). Provenance: `DWTT` mixed-use → ledger-clear per row.
+- **Pierre Frey 4** — strip leading `"Wallcovering "`, `", <color> Wallcoverings | Pierre Frey"`.
+- **Arte International 1**, **Harlequin 1** — single rows, normalize or hand-place.
+- **Rebel Walls 52** — TBC: confirm blank patterns (`Flowing Pride`…) exist in `rebelwalls_catalog` first;
+ if yes → A3, else → D.
+Build = a small `{vendor → normalize(title)}` map applied before `stripVendor`; same bucket/mint/gated rails.
+
+### Program D — genuine web re-scrape (~3,050 rows, metered) — catalog CANNOT supply a real code
+Per-vendor assignment (priority by count). openclaw is serial (one gateway/profile) so batch small; show
+`$` per scrape; feed results into the staging catalog → then re-run Program A's matcher.
+
+| Vendor | Rows | Why D (not catalog) | Scraper skill |
+|---|--:|---|---|
+| **Maharam** | 1,429 | catalog code is DW-fabricated `MH-*` (Steve-ruled re-scrape) | ⚠ **new build** (`maharam-scraper-manager`) |
+| **Knoll residual** | ~490 | catalog codes are reverted mints (ledger-excluded) | `knoll-scraper-manager` (login) |
+| **CMO Paris** | 344 | catalog code fabricated `CMO_*` (Steve-ruled) | ⚠ **new build** |
+| **Hollywood** | 286 | HWC private-label; real codes unrecovered | → **TK-10633** (`dw-hollywood-sku-canary`) |
+| **Fentucci Naturals** | 213 | catalog (148) does NOT cover the blank patterns | `fentucci-scraper-manager` |
+| **Majilite** | 160 | no catalog, no skill | ⚠ **new build** |
+| **Pixels** | 52 | POD/print — not a wallcovering scrape | print pipeline |
+| **Steve Abrams / FAA** | 13 | FAA art prints | `fineartamerica-scraper-manager` |
+| **Jeffrey Stevens** | 12 | no catalog | ⚠ **new build** |
+
+**Three new scrapers to build:** `maharam-scraper-manager`, `cmo-paris-scraper-manager` (or Majilite),
+`jeffrey-stevens` — gate each build + first live run through Steve (live scraping is externality-gated).
---
← ebc8b74 TK-10900/A: complete assessment — 5-vendor fire-ready roster
·
back to Dw Sku Integrity
·
TK-10900/A3: general scrubTitle recovers Thibaut 61 + Rebel 7afcbaa →