[object Object]

← 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

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 →