← back to Dw Image Dup Audit
5x sweep 1: NA dups 96->23 verified; caught Meadowbrook N-suffix same-title pairs, P&S strays, LLM-prompt-leak titles; staged sweep1-fix.js
29f9554de65b5884c66c473385d4a332cae43d3f · 2026-07-22 06:45:08 -0700 · Steve Abrams
Files touched
A 5x/na-dup-check-sweep1.jsonA 5x/sweep-1.mdA sweep1-fix.js
Diff
commit 29f9554de65b5884c66c473385d4a332cae43d3f
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Jul 22 06:45:08 2026 -0700
5x sweep 1: NA dups 96->23 verified; caught Meadowbrook N-suffix same-title pairs, P&S strays, LLM-prompt-leak titles; staged sweep1-fix.js
---
5x/na-dup-check-sweep1.json | 79 +++++++++++++++++++++++++++++++++++++++++++++
5x/sweep-1.md | 29 +++++++++++++++++
sweep1-fix.js | 34 +++++++++++++++++++
3 files changed, 142 insertions(+)
diff --git a/5x/na-dup-check-sweep1.json b/5x/na-dup-check-sweep1.json
new file mode 100644
index 0000000..d826ca3
--- /dev/null
+++ b/5x/na-dup-check-sweep1.json
@@ -0,0 +1,79 @@
+{
+ "total": 2042,
+ "noimg": [],
+ "dups": [
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0075608_sisal.jpg",
+ [
+ "Sisal | Phillipe Romano · Phillipe Romano",
+ "Sisal | Phillipe Romano · Phillipe Romano",
+ "Sisal | Phillipe Romano · Phillipe Romano",
+ "Sisal | Phillipe Romano · Phillipe Romano",
+ "Sisal | Phillipe Romano · Phillipe Romano"
+ ]
+ ],
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/peel-and-stick.jpg",
+ [
+ "Peel and Stick Wallcovering | Jeffrey Stevens · Jeffrey Stevens",
+ "Peel and Stick Wallcovering Grey Blythe | Jeffrey Stevens · Jeffrey Stevens"
+ ]
+ ],
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cb5c0d64d0421dd607af7529f3697f92.jpg",
+ [
+ "Sea Island-Navy & Buff Paper Weave Wallcovering | Phillipe Romano · Phillipe Romano",
+ "Sea Island-Rubber Blue Paper Weave Wallcovering | Phillipe Romano · Phillipe Romano"
+ ]
+ ],
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0149196_meadowbrook-wallpaper-thread.jpg",
+ [
+ "Meadowbrook Thread | Jeffrey Stevens · Jeffrey Stevens",
+ "Meadowbrook Thread | Jeffrey Stevens · Jeffrey Stevens"
+ ]
+ ],
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0149189_meadowbrook-wallpaper-reservoir.jpg",
+ [
+ "Meadowbrook Reservoir | Jeffrey Stevens · Jeffrey Stevens",
+ "Meadowbrook Reservoir | Jeffrey Stevens · Jeffrey Stevens"
+ ]
+ ],
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0149182_meadowbrook-wallpaper-nook.jpg",
+ [
+ "Meadowbrook Nook | Jeffrey Stevens · Jeffrey Stevens",
+ "Meadowbrook Nook | Jeffrey Stevens · Jeffrey Stevens"
+ ]
+ ],
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0149175_meadowbrook-wallpaper-loft.jpg",
+ [
+ "Meadowbrook Loft | Jeffrey Stevens · Jeffrey Stevens",
+ "Meadowbrook Loft | Jeffrey Stevens · Jeffrey Stevens"
+ ]
+ ],
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0149168_meadowbrook-wallpaper-gravel.jpg",
+ [
+ "Meadowbrook Gravel | Jeffrey Stevens · Jeffrey Stevens",
+ "Meadowbrook Gravel | Jeffrey Stevens · Jeffrey Stevens"
+ ]
+ ],
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0149161_meadowbrook-wallpaper-cotton.jpg",
+ [
+ "Meadowbrook Cotton | Jeffrey Stevens · Jeffrey Stevens",
+ "Meadowbrook Cotton | Jeffrey Stevens · Jeffrey Stevens"
+ ]
+ ],
+ [
+ "https://cdn.shopify.com/s/files/1/0015/4117/7456/files/0149154_meadowbrook-wallpaper-charcoal.jpg",
+ [
+ "Meadowbrook Charcoal | Jeffrey Stevens · Jeffrey Stevens",
+ "Meadowbrook Charcoal | Jeffrey Stevens · Jeffrey Stevens"
+ ]
+ ]
+ ]
+}
\ No newline at end of file
diff --git a/5x/sweep-1.md b/5x/sweep-1.md
new file mode 100644
index 0000000..d1c6301
--- /dev/null
+++ b/5x/sweep-1.md
@@ -0,0 +1,29 @@
+# /5x sweep 1 — new-arrivals?page=3 (2026-07-22)
+
+## Verify
+- Domain check (Admin API, collection 167327760435, 2,042 products): dup lead-image
+ products down 96 → 23 (10 groups). Phase-1 remediation confirmed live.
+- 3x six-way suite: see sweep-1-3x.txt (ran after this note).
+
+## Caught
+1. Sisal ×5 — known, already staged in rename-run.js (pending Steve paste).
+2. Meadowbrook ×7 pairs (Jeffrey Stevens) — NOT exact dupes: York MJ48xx vs MJ48xxN,
+ distinct DWJS SKUs, identical titles + identical image. Likely pasted/non-pasted
+ variants imported as two same-titled products. Needs York source check → title
+ disambiguation or variant merge. DO NOT draft blindly.
+3. Peel-and-stick strays on main store (line policy: lives on apartmentwallpaper.com):
+ - peel-and-stick-wallcovering-jeffrey-stevens-4 — ACTIVE, bare no-name title,
+ sample-only, placeholder image
+ - peel-and-stick-wallcovering-grey-blythe-jeffrey-stevens — ACTIVE, placeholder image
+4. LLM-prompt-leak titles in the Jeffrey Stevens P&S line (DRAFT, so not customer-facing,
+ but data poison): e.g. "Peel and Stick Wallcovering Wait—the title is already in
+ English. ..." — a translation prompt saved as the title. Class-level cleanup needed
+ in whatever generated these titles.
+5. Sea Island Navy&Buff vs Rubber Blue — colorway collapse, no known source image
+ (carried on the investigation list).
+
+## Fixes this sweep
+- sweep1-fix.js: draft the 2 ACTIVE peel-and-stick strays (policy: P&S off main store).
+- Meadowbrook + Sea Island: escalated to investigation (source-of-truth needed), not
+ blind-fixed — per the no-fake-fix rule.
+- Sisal ×5: fix already staged in rename-run.js.
diff --git a/sweep1-fix.js b/sweep1-fix.js
new file mode 100644
index 0000000..09fc083
--- /dev/null
+++ b/sweep1-fix.js
@@ -0,0 +1,34 @@
+#!/usr/bin/env node
+// /5x sweep-1 fix: draft the two ACTIVE peel-and-stick strays on the main store
+// (P&S line policy = apartmentwallpaper.com only). Ledgered, reversible.
+const https = require("https");
+const fs = require("fs");
+const TOKEN = process.env.SHOPIFY_ADMIN_TOKEN;
+const HOST = "designer-laboratory-sandbox.myshopify.com";
+const API = "/admin/api/2024-10";
+const LEDGER = __dirname + "/fix-ledger.jsonl";
+const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
+function req(method, path, body) {
+ return new Promise((res, rej) => {
+ const data = body ? JSON.stringify(body) : null;
+ const r = https.request({ host: HOST, path, method, headers: { "X-Shopify-Access-Token": TOKEN, "Content-Type": "application/json", ...(data ? { "Content-Length": Buffer.byteLength(data) } : {}) } },
+ (resp) => { let d = ""; resp.on("data", (c) => (d += c)); resp.on("end", () => res({ status: resp.statusCode, body: d })); });
+ r.on("error", rej); if (data) r.write(data); r.end();
+ });
+}
+const HANDLES = [
+ "peel-and-stick-wallcovering-jeffrey-stevens-4",
+ "peel-and-stick-wallcovering-grey-blythe-jeffrey-stevens",
+];
+(async () => {
+ for (const handle of HANDLES) {
+ const g = await req("GET", `${API}/products.json?handle=${handle}&fields=id,status,title`);
+ const p = (JSON.parse(g.body).products || [])[0];
+ await sleep(600);
+ if (!p || p.status !== "active") { console.log("skip", handle); continue; }
+ const r = await req("PUT", `${API}/products/${p.id}.json`, { product: { id: p.id, status: "draft" } });
+ await sleep(600);
+ fs.appendFileSync(LEDGER, JSON.stringify({ ts: new Date().toISOString(), act: "5x-sweep1-draft", handle, id: p.id, title: p.title, ok: r.status === 200 }) + "\n");
+ console.log(r.status === 200 ? "drafted" : "FAIL", handle);
+ }
+})();
← 6836d19 auto-save: 2026-07-22T06:41:50 (2 files) — rename-run.js wq-
·
back to Dw Image Dup Audit
·
5x sweep 1 complete: clickthrough cascade proven false-posit 7d65859 →