← back to Imageless Rescue
Add republish memo + AF gap diagnosis (Thibaut not Cowtan; 23 dead-upstream but already live-imaged)
f31b3a2e79295e18bcbf9919925ddb221932013d · 2026-06-20 03:51:07 -0700 · SteveStudio2
Files touched
A AF-GAP-DIAGNOSIS.mdA MEMO-republish-20260620.md
Diff
commit f31b3a2e79295e18bcbf9919925ddb221932013d
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Sat Jun 20 03:51:07 2026 -0700
Add republish memo + AF gap diagnosis (Thibaut not Cowtan; 23 dead-upstream but already live-imaged)
---
AF-GAP-DIAGNOSIS.md | 39 ++++++++++++++++++++++++++
MEMO-republish-20260620.md | 69 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 108 insertions(+)
diff --git a/AF-GAP-DIAGNOSIS.md b/AF-GAP-DIAGNOSIS.md
new file mode 100644
index 0000000..f37d33d
--- /dev/null
+++ b/AF-GAP-DIAGNOSIS.md
@@ -0,0 +1,39 @@
+# Anna French (23 SKUs) — gap diagnosis + scraper confirmation
+
+## TL;DR
+The AF gap is a NON-ISSUE for the catalog now: all 23 AF SKUs are **already
+LIVE (active + imaged)** on Shopify, imaged from `cdn.shopify.com` files
+(e.g. `AT34136.jpg`) that exist independently of the AF vendor catalog. The
+0-rows-in-`anna_french_catalog` finding from the prior /dtd is REAL but moot —
+the images never needed to come from a re-crawl.
+
+## Why the 23 were 0 rows in `anna_french_catalog`
+- `anna_french_catalog` IS populated (606 rows, 595 with HTTP images). Neighbors
+ of our band exist: AT34100, AT34101, AT34106-09, AT34111, AT34117, AT34120-21,
+ AT34123-24, AT34127-29, AT34133, AT34139-43.
+- Our 23 (AT34103/104/105/110/122/125/126/130/136/138/146/148-158, AT1407,
+ AT1452) are **interleaved gaps** — never scraped.
+- **Root cause:** these specific AF SKUs are DEAD at source. Anna French is a
+ **Thibaut**-owned brand; the AF catalog is sourced from
+ `thibautdesign.com/products/wallcoverings/<AT-sku>`. Probing all 23 live:
+ every one returns **HTTP 301 -> redirect to the generic
+ `/category/wallcoverings` landing** (no product page). The scraper correctly
+ created no row for a non-existent product. They are discontinued/delisted
+ colorways upstream.
+
+## Scraper confirmation (IMPORTANT correction to the cheat sheet)
+The prior /dtd guessed AF belongs to the Cowtan/Colefax family
+(`cowtan-colorway-scraper` / `colefax-fowler-colorway-scraper` /
+designs.cowtan.com). **That is WRONG for Anna French.** The `anna_french_catalog`
+`product_url` values are all `https://www.thibautdesign.com/...`. AF rides the
+**Thibaut feed-first scraper** (Thibaut JSON-LD / `__NEXT_DATA__`), NOT cowtan.
+Do not point an AF re-crawl at designs.cowtan.com.
+
+## Re-crawl plan (NOT executed — and NOT needed)
+1. The 23 are already imaged & active. No catalog action required.
+2. IF a fresh AF crawl is ever run, target `thibautdesign.com` via the Thibaut
+ feed-first path; do NOT use cowtan/colefax. Expect these 23 SKUs to remain
+ absent (dead upstream) — that is correct, not a bug.
+3. Standing-rule note: dead-at-source SKUs that are still live in our store ride
+ on a Shopify-CDN image; if any AF product is ever found DISCONTINUED with no
+ image, it should ARCHIVE (never draft), per the discontinued rule.
diff --git a/MEMO-republish-20260620.md b/MEMO-republish-20260620.md
new file mode 100644
index 0000000..9b5cbb0
--- /dev/null
+++ b/MEMO-republish-20260620.md
@@ -0,0 +1,69 @@
+# Imageless-Rescue — Republish Candidate (officer sign-off)
+
+**Date:** 2026-06-20
+**Owner / officer:** vp-dw-commerce
+**Source list:** `~/.claude/yolo-queue/pending-approval/imageless-active-20260616-2321.json` (49 items)
+**Working repo:** `~/Projects/imageless-rescue` (commit 46a3e7c)
+**Status data:** `~/Projects/imageless-rescue/data/live_state.json` + `data/status-table.json`
+
+## Why this memo
+A republish / ACTIVE flip is customer-facing → GATED. This memo lists ONLY the
+product imaged this session as a republish candidate. Nothing is flipped active
+until an officer appends APPROVE below.
+
+## Live re-check changed the picture
+The local `dw_unified` mirror was stale (frozen ~06-16). LIVE Shopify shows
+**37 of the 49 are already ACTIVE + imaged** (fixed since the snapshot — AF 23,
+Versace 9, Gaston 3, LA Walls 2). **0 are active-without-image** (no standing-rule
+violation live). So the only NEW republish candidate is the one just imaged.
+
+## Republish candidate (1)
+| Product | Shopify ID | Handle | Image attached |
+|---|---|---|---|
+| Parlor Velvet Pillow Lumbar 14X22 Nougat \| Scalamandre | 7832784764979 | parlor-velvet-pillow-lumbar-14x22-nougat-scalamandre | scene7 `SC_0001LBDK27324` -> Shopify CDN, 1200x954, exact lumbar+Nougat match (`scalamandre_pillows.SCLBDK273240001`) |
+
+- Currently **DRAFT** with the attached image (gate respected — not flipped).
+- Has a real image + correct colorway/shape. Confirm **width metafield** /
+ sample-variant before active (standing rule: never ACTIVE without image AND
+ width). Pillows may be exempt from the width gate — officer to confirm whether
+ "width" applies to a finished pillow or only to roll goods.
+
+## Requested action
+- [ ] **APPROVE** -> flip 7832784764979 to ACTIVE (after width/sample check),
+ remove `Needs-Image` tag.
+- [ ] **REVISE** -> (note any required change)
+- [ ] **BLOCK** -> leave DRAFT.
+
+## Officer decision
+<!-- vp-dw-commerce: append APPROVE / REVISE / BLOCK + initials + date here -->
+
+## Still-draft, NOT republish candidates (11 — no good image, need crawl)
+PR GRS-9031/3609/7400/3603 · DW SH5023/SH5027/Beverly-Hills-Damask · LA Walls
+83511/83513 · Fentucci Beverly-Hills-Damask · Set Decorator custom print.
+All already tagged `Needs-Image`. These stay DRAFT until imaged — do NOT include
+in any republish.
+
+## Re-crawl plan for the 11 (NOT executed — surfaced for Steve)
+- **Phillipe Romano GRS (4)** — original PR grasscloth/sisal, pre-Shopify. Old
+ `designerwallcoverings.com/products/...` URLs are 404. Local crop dir
+ `~/Projects/Designer-Wallcoverings/DW-Websites/GrassclothWallpaper.com/cropped-images/`
+ has ONLY `cropped_GRS_3609.jpg` (650x320 banner, too low-res for a hero).
+ GRS-9031/7400/3603 have no local image. Action: re-shoot or source original
+ hi-res PR grasscloth photography; these are not on command54 (404).
+- **DW in-house (3)** — SH5023 (Kubuki Sisal), SH5027 (Tattiana Jute), Beverly
+ Hills Damask. No vendor catalog (in-house lines). Action: locate original
+ product photography / re-shoot.
+- **LA Walls (2)** — 83511, 83513. `la_walls_catalog` is EMPTY (0 rows). Action:
+ run `la-walls` crawl (not in cheat sheet — needs scraper build/locate).
+- **Fentucci (1)** — Beverly Hills Damask (dup of the DW one). Action: source
+ via `fentucci-scraper-manager` or share the DW image.
+- **Scalamandre custom / Set Decorator custom** — covered: Scalamandre imaged;
+ Set Decorator is a bespoke custom print (no catalog SKU) — needs a supplied
+ proof image, not a crawl.
+
+## Stale-memo resolution
+The task referenced `pending-approval/imageless-active-20260616-2321.md` asking
+for an UNPUBLISH step. That `.md` file does not exist (only the `.json` list).
+The unpublish is **already live-confirmed done**: all 49 are non-active-imageless;
+specifically 0 are active-without-image. The unpublish ask is satisfied —
+mark resolved.
← 46a3e7c imageless-rescue: live-state diagnosis (37 already fixed, 1
·
back to Imageless Rescue
·
Max-It live verification: 474 mirror-imageless → 436 truly i bc29a26 →