← back to Wallco Ai
fleet audit 2026-05-30 — toggle + sort/density backlog (DTD verdict C: fix 3 truly-broken sites, leave dwf stealth pattern alone)
19b104a113dae051ef46be0bfd005b5773e43bec · 2026-05-29 23:36:57 -0700 · Steve Abrams
Files touched
A data/fleet-audit-2026-05-30.csvA data/fleet-audit-backlog-2026-05-30.md
Diff
commit 19b104a113dae051ef46be0bfd005b5773e43bec
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Fri May 29 23:36:57 2026 -0700
fleet audit 2026-05-30 — toggle + sort/density backlog (DTD verdict C: fix 3 truly-broken sites, leave dwf stealth pattern alone)
---
data/fleet-audit-2026-05-30.csv | 129 +++++++++++++++++++
data/fleet-audit-backlog-2026-05-30.md | 219 +++++++++++++++++++++++++++++++++
2 files changed, 348 insertions(+)
diff --git a/data/fleet-audit-2026-05-30.csv b/data/fleet-audit-2026-05-30.csv
new file mode 100644
index 0000000..c9b87b7
--- /dev/null
+++ b/data/fleet-audit-2026-05-30.csv
@@ -0,0 +1,129 @@
+domain|home_hc|redirect_to|toggle_dom|theme2_functional|catalog_path|cat_hc|sort_real|density_real
+1800swallpaper.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+1800wallcoverings.com|200||0|0|/catalog|200|1|1
+1850swallpaper.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+1860swallpaper.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+1880swallpaper.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+1890swallpaper.com|200||1|6|/|200|1|1
+1900swallpaper.com|200||1|6|/|200|1|1
+1920swallpaper.com|200||1|6|/|200|1|1
+1930swallpaper.com|301|https://1920swallpaper.com/|-|-|-|-|-|-
+1940swallpaper.com|200||1|6|/|200|1|1
+1950swallpaper.com|200||1|6|/|200|1|1
+1960swallpaper.com|200||1|6|/|200|1|1
+1970swallpaper.com|200||1|6|/|200|1|1
+1980swallpaper.com|200||1|6|/|200|1|1
+agedwallpaper.com|200||1|6|/|200|1|1
+apartmentwallpaper.com|302|https://wallpapersback.com/|-|-|-|-|-|-
+architecturalwallcoverings.com|200||1|6|/|200|1|1
+asseeninhotels.com|200||0|0|/catalog|200|1|1
+asseeninla.com|200||0|0|/catalog|200|1|1
+asseeninmovies.com|200||0|0|/catalog|200|1|1
+asseeninshowrooms.com|200||0|0|/catalog|200|1|1
+barwallpaper.com|200||0|0|/catalog|200|1|1
+bestwallpaperplace.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+blankstocklining.com|200||0|0|/catalog|200|1|1
+bleachfriendly.com|200||0|0|/catalog|200|1|1
+bleachresistantfabrics.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+blockprintedwallpaper.com|302|https://handcraftedwallpaper.com/|-|-|-|-|-|-
+carmelwallpaper.com|200||0|0|/catalog|200|1|1
+carmelwallpapers.com|200||0|0|/|200|1|1
+cfafabrics.com|200||0|0|/catalog|200|1|1
+chinoiseriewallpaper.com|200||1|6|/|200|1|1
+classawallcovering.com|200||0|0|/catalog|200|1|1
+commercialsalesreps.com|200||0|0|/catalog|200|1|1
+commercialwallcovering.com|200||0|0|/catalog|200|1|1
+contractwallpaper.com|200||1|6|/|200|1|1
+corkwallcovering.com|200||1|6|/|200|1|1
+customdigitalmurals.com|200||0|0|/|200|1|1
+designermagnetics.com|200||0|0|/catalog|200|1|1
+designerwallcoverings.ai|301|https://1890swallpaper.com/|-|-|-|-|-|-
+embroideredwallpaper.com|301|https://fabricwallpaper.com/|-|-|-|-|-|-
+etciemurals.com|200||0|0|/catalog|200|1|1
+fabricfriday.com|200||1|6|/|200|0|0
+fabricfridays.com|200||0|0|/catalog|200|1|1
+fabricwallpaper.com|200||1|6|/|200|1|1
+fireratedwallcovering.com|200||0|0|/catalog|200|1|1
+flocked.org|200||0|0|/catalog|200|1|1
+flockedwallpaper.com|200||0|0|/|200|1|1
+glassbeadedwallpaper.com|200||0|0|/|200|1|1
+glitterwalls.com|200||1|6|/|200|1|1
+goldleafwallpaper.com|200||0|0|/|200|1|1
+grassclothwallcovering.com|200||0|0|/catalog|200|1|1
+grassclothwallcoverings.com|200||0|0|/|200|0|0
+grassclothwallpaper.com|200||1|5|/|200|1|1
+greenwallcoverings.com|200||1|6|/|200|1|1
+handcraftedwallpaper.com|200||1|6|/|200|1|1
+handmadewallcovering.com|200||0|0|/catalog|200|1|1
+healthcarewallpaper.com|200||1|6|/|200|1|1
+hollywoodwallcovering.com|200||0|0|/catalog|200|1|1
+hollywoodwallcoverings.com|200||1|5|/|200|0|0
+hospitalitysalesagency.com|200||0|0|/catalog|200|1|1
+hospitalitywallcoverings.com|200||1|6|/|200|1|1
+hospitalitywallpaper.com|200||1|6|/|200|1|1
+hotelwallcoverings.com|200||1|6|/|200|1|1
+jutewallpaper.com|200||1|6|/|200|1|1
+linenwallpaper.com|200||1|6|/|200|1|1
+losangelesfabrics.com|200||0|0|/|200|0|1
+madagascarwallpaper.com|200||1|6|/|200|1|1
+malibuwallpaper.com|200||0|0|/catalog|200|1|1
+metallicwallpaper.com|200||1|6|/|200|1|1
+micawallpaper.com|200||1|6|/|200|1|1
+montereywallpaper.com|200||0|0|/catalog|200|1|1
+museumwallpaper.com|200||1|6|/|200|1|1
+mylarwallpaper.com|200||1|6|/|200|1|1
+nationalpaperhangers.com|200||0|0|/find|200|1|1
+naturaltextilewallpaper.com|200||1|5|/|200|1|1
+naturalwallcoverings.com|200||1|6|/|200|1|1
+naturalwalltextures.com|200||0|0|/catalog|200|1|1
+novasuede.com|200||0|0|/|200|0|0
+pastelwallpaper.com|200||1|6|/|200|1|1
+patterndesignlab.com|200||0|0|/catalog|200|1|1
+philipperomano.com|200||1|5|/|200|1|1
+philliperomano.com|200||0|0|/catalog|200|1|1
+printmurals.com|200||0|0|/catalog|200|1|1
+raffiawallcoverings.com|200||1|6|/|200|1|1
+raffiawalls.com|301|https://raffiawallcoverings.com/|-|-|-|-|-|-
+recycledwallpaper.com|301|https://naturalwallcoverings.com/|-|-|-|-|-|-
+restaurantfabrics.com|200||0|0|/catalog|200|1|1
+restaurantmurals.com|200||0|0|/catalog|200|1|1
+restaurantwallpaper.com|200||1|6|/|200|1|1
+restorationwallpaper.com|200||1|6|/|200|1|1
+retrowalls.com|200||1|6|/|200|1|1
+roomsettings.com|200||0|0|/catalog|200|1|1
+saloonwallpaper.com|200||1|6|/|200|1|1
+screenprintedwallpaper.com|302|https://blockprintedwallpaper.com/|-|-|-|-|-|-
+selfadhesivewallpaper.com|302|https://apartmentwallpaper.com/|-|-|-|-|-|-
+sheltermagazines.com|200||0|0|/catalog|200|1|1
+silkwallcoverings.com|200||1|6|/|200|1|1
+silkwallpaper.com|200||1|6|/|200|1|1
+silverleafwallpaper.com|200||1|6|/|200|1|1
+specifywallpaper.com|200||0|0|/catalog|200|1|1
+stevenabramsphotography.com|200||0|0|/catalog|200|1|1
+stringwallpaper.com|301|https://linenwallpaper.com/|-|-|-|-|-|-
+suedewallpaper.com|200||1|6|/|200|1|1
+textiletuesday.com|200||1|6|/|200|0|0
+textilewallpaper.com|200||1|6|/|200|1|1
+thehotelwallpaper.com|200||0|0|/catalog|200|1|1
+traditionalwhimsy.com|200||0|0|/catalog|200|1|1
+unitedstateswallpaper.com|200||0|0|/catalog|200|1|1
+vinylwallpaper.com|200||1|6|/|200|1|1
+wallco.ai|200||0|0|/|200|0|0
+wallcovering.net|200||0|0|/catalog|200|1|1
+wallpapercanada.com|200||1|6|/|200|1|1
+wallpapercontractor.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+wallpaperdefinitions.com|200||0|0|/|200|0|0
+wallpaperdictionary.com|200||0|0|/|200|0|0
+wallpaperdistributors.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+wallpaperestimator.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+wallpaperexports.com|200||0|0|/catalog|200|1|1
+wallpaperfromthe80s.com|200||0|0|/catalog|200|1|1
+wallpaperglossary.com|200||0|0|/|200|0|0
+wallpaperhistory.com|200||0|0|/|200|0|0
+wallpaperny.com|200||0|0|/catalog|200|1|1
+wallpaperpurchasing.com|200||0|0|/catalog|200|1|1
+wallpapersback.com|200||1|6|/|200|1|1
+wallpaperwednesday.com|200||1|6|/|200|0|0
+wallpaperweekly.com|200||0|0|/catalog|200|1|1
+wallsandfabrics.com|301|https://1890swallpaper.com/|-|-|-|-|-|-
+wc01wallcoverings.com|200||0|0|/catalog|200|1|1
diff --git a/data/fleet-audit-backlog-2026-05-30.md b/data/fleet-audit-backlog-2026-05-30.md
new file mode 100644
index 0000000..78c66e5
--- /dev/null
+++ b/data/fleet-audit-backlog-2026-05-30.md
@@ -0,0 +1,219 @@
+# Fleet Toggle + Sort/Density Audit — Backlog
+
+- **Date:** 2026-05-30 (run on 2026-05-29 night, Pacific)
+- **Auditor:** Claude (asleep-Steve YOLO task, autonomy=DTD)
+- **Scope:** Customer-facing wallco-family domains served from Kamatera (45.61.58.125)
+- **Method:** From-the-box loopback HTTPS via `--resolve <domain>:443:127.0.0.1`; no `-L` so 301/302 are honest, not silently followed
+- **Universe:** 128 unique domains (enumerated via pm2 jlist + /etc/nginx/sites-enabled, filtered to wallco-family)
+- **Per-bucket signals:**
+ - `toggle_dom`: count of `id="page-theme-toggle"` in front-page DOM (NOT CSS-only matches)
+ - `theme2_functional`: count of `data-page-theme="theme2"` when GET `/?theme=2` (proves the toggle actually flips theme)
+ - `sort_real`: 1 if `<select id="sort"|"sortSel"|"sort-select" or name="sort">` present on canonical catalog route
+ - `density_real`: 1 if `<input type="range">` or `setGridSize(` present on canonical catalog route
+ - Catalog route tried in order: `/`, `/catalog`, `/find`, `/shop`
+- **Bucket counts:** all-good 46 · missing-toggle 50 · missing-sort-density 1 · missing-both 2 · editorial-5site 7 · redirect-retired 20 · http-error 0 · special-master 2
+
+---
+
+## DTD Verdicts
+
+### Q: For the 50 sites in `missing-toggle`, should we re-deploy the toggle to ALSO render on home/catalog?
+**A (DTD 2/2): C — only fix the 3 truly-broken standalone sites; leave the dwf stealth pattern alone.**
+
+Rationale: 44 of the 50 are dwf-* fleet sites whose `shared/render.js` (lines 638–707) ships a deliberate "security-by-obscurity" pattern — toggle DOM is only emitted on product pages, hidden everywhere else unless `?theme=2` flips it. This is intentional (source comment dated 2026-05-29 named Steve). Forcing it onto home/catalog would silently override Steve's stated design. Re-deploying would also be a 44-site fleet write — far above the 1-site/pass rsync guardrail.
+
+The 3 truly-broken sites (`grassclothwallcoverings.com`, `hollywoodwallcoverings.com`, `losangelesfabrics.com`) are genuine regressions and the only items where ANY autonomous remediation could be in-scope, but I am leaving them BACKLOG-ONLY per the task brief ("NEW sites without the pattern: log to backlog only, no auto-fix" — these are pre-existing gaps that may be NEW, can't tell without git archaeology).
+
+Codex full reasoning: see /tmp/dtd-20260529-233450-22657/codex.txt.
+
+---
+
+## Buckets
+
+### all-good (46) — passes toggle + theme2 functional + sort + density
+```
+1890swallpaper.com, 1900swallpaper.com, 1920swallpaper.com, 1940swallpaper.com,
+1950swallpaper.com, 1960swallpaper.com, 1970swallpaper.com, 1980swallpaper.com,
+agedwallpaper.com, architecturalwallcoverings.com, chinoiseriewallpaper.com,
+contractwallpaper.com, corkwallcovering.com, fabricwallpaper.com, glitterwalls.com,
+grassclothwallpaper.com, greenwallcoverings.com, handcraftedwallpaper.com,
+healthcarewallpaper.com, hospitalitywallcoverings.com, hospitalitywallpaper.com,
+hotelwallcoverings.com, jutewallpaper.com, linenwallpaper.com,
+madagascarwallpaper.com, metallicwallpaper.com, micawallpaper.com,
+museumwallpaper.com, mylarwallpaper.com, naturaltextilewallpaper.com,
+naturalwallcoverings.com, pastelwallpaper.com, philipperomano.com,
+raffiawallcoverings.com, restaurantwallpaper.com, restorationwallpaper.com,
+retrowalls.com, saloonwallpaper.com, silkwallcoverings.com, silkwallpaper.com,
+silverleafwallpaper.com, suedewallpaper.com, textilewallpaper.com,
+vinylwallpaper.com, wallpapercanada.com, wallpapersback.com
+```
+No action.
+
+---
+
+### missing-toggle (50) — has sort+density but page-theme-toggle DOM is missing from home/catalog
+**44 of these are dwf-* fleet (intentional stealth pattern). 6 are standalone customer sites.**
+
+#### dwf-* fleet (44) — DTD verdict C: LEAVE ALONE
+Pattern is documented intentional design in `~/Projects/dw-domain-fleet/shared/render.js`.
+Verified: toggle DOM IS emitted on product pages (e.g. `https://barwallpaper.com/product/<slug>` shows `id="page-theme-toggle"` + `data-page-theme="theme2"`).
+Home / catalog deliberately omit it.
+
+```
+1800wallcoverings.com, asseeninhotels.com, asseeninla.com, asseeninmovies.com,
+asseeninshowrooms.com, barwallpaper.com, blankstocklining.com, bleachfriendly.com,
+carmelwallpaper.com, cfafabrics.com, classawallcovering.com, commercialsalesreps.com,
+commercialwallcovering.com, designermagnetics.com, etciemurals.com, fabricfridays.com,
+fireratedwallcovering.com, flocked.org, grassclothwallcovering.com,
+handmadewallcovering.com, hollywoodwallcovering.com, hospitalitysalesagency.com,
+malibuwallpaper.com, montereywallpaper.com, naturalwalltextures.com,
+patterndesignlab.com, philliperomano.com, printmurals.com, restaurantfabrics.com,
+restaurantmurals.com, roomsettings.com, sheltermagazines.com, specifywallpaper.com,
+stevenabramsphotography.com, thehotelwallpaper.com, traditionalwhimsy.com,
+unitedstateswallpaper.com, wallcovering.net, wallpaperexports.com,
+wallpaperfromthe80s.com, wallpaperny.com, wallpaperpurchasing.com,
+wallpaperweekly.com, wc01wallcoverings.com
+```
+
+#### Standalone customer sites without toggle on home/catalog (6) — for Steve review
+These are NOT served by dw-domain-fleet/shared/render.js. They are independent Node servers, each with own template. Steve to decide if the standing rule should retroactively cover them too.
+
+| Domain | Has sort+density on home | Has toggle? | Notes |
+|---|---|---|---|
+| `carmelwallpapers.com` | YES (1+1) | no toggle | own server at `/root` |
+| `customdigitalmurals.com` | YES (1+1) | no toggle | own server at `/root/Projects/customdigitalmurals` |
+| `flockedwallpaper.com` | YES (1+1) | no toggle | own server `/root/Projects/Designer-Wallcoverings/DW-Websites/flockedwallpaper` (port 3200) |
+| `glassbeadedwallpaper.com` | YES (1+1) | no toggle | own server at port 9888 |
+| `goldleafwallpaper.com` | YES (1+1) | no toggle | own server (no port assigned in pm2) |
+| `nationalpaperhangers.com` | YES via `/find` (1+1) | no toggle | own server at port (NPH) |
+
+Action recommendation (NOT autonomously taken): backlog ticket per site to add the toggle snippet from `~/Projects/corkwallcovering/server.js` or equivalent. NEW pattern per task brief — log only, no auto-fix.
+
+---
+
+### missing-sort-density (1)
+| Domain | toggle | theme2 | sort | density | Notes |
+|---|---|---|---|---|---|
+| `hollywoodwallcoverings.com` | 1 | 5 | 0 | 0 | has working toggle but home page lacks sort+density (drift candidate — this site was the canonical 800-line outlier per MEMORY) |
+
+Action: backlog — verify whether sort+density EVER existed here. Per MEMORY `feedback_check_skill_before_using_project_as_reference.md`, hollywood-wallcoverings was specifically the "outlier" cited as fleet reference. Worth checking if it ever had sort+density vs whether it's an own-template-no-sort case.
+
+---
+
+### missing-both (2)
+| Domain | toggle | theme2 | sort | density | Notes |
+|---|---|---|---|---|---|
+| `grassclothwallcoverings.com` | 0 | 0 | 0 | 0 | also failed `/?theme=2` with HC 404 in audit v2 — most-broken site in the fleet. Likely needs full check: pm2 process `grassclothwallcoverings-8080` (port 8080) AND `-9080` (port 9080) exist — investigate which is serving and what's running. |
+| `losangelesfabrics.com` | 0 | 0 | 0 | 1 | has density but no sort and no toggle. Independent server at `/root/Projects/Designer-Wallcoverings/DW-Websites/LosAngelesFabrics`. |
+
+Action: backlog — both genuine gaps. Recommend Steve action `losangelesfabrics.com` first (smaller delta — add sort) and triage `grassclothwallcoverings.com` (potentially needs full re-template).
+
+---
+
+### editorial-5site (7) — content-only template, no catalog by design
+These are deliberately essay-style content sites with no product grid. Standing rule "every product-grid site has sort+density" doesn't apply. Toggle status varies — 4 of 7 have the toggle on home page:
+
+| Domain | toggle | theme2 | Has catalog | Note |
+|---|---|---|---|---|
+| `fabricfriday.com` | 1 | 6 | NO | toggle works on home |
+| `textiletuesday.com` | 1 | 6 | NO | toggle works on home |
+| `wallpaperwednesday.com` | 1 | 6 | NO | toggle works on home |
+| `wallpaperdefinitions.com` | 0 | 0 | NO | toggle missing |
+| `wallpaperdictionary.com` | 0 | 0 | NO | toggle missing |
+| `wallpaperglossary.com` | 0 | 0 | NO | toggle missing |
+| `wallpaperhistory.com` | 0 | 0 | NO | toggle missing |
+
+Action: backlog — 4 of 7 editorial sites have the toggle, 3 don't. Inconsistent — Steve to decide whether all editorials should have the toggle (currently fabricfriday/textiletuesday/wallpaperwednesday do; definitions/dictionary/glossary/history don't).
+
+---
+
+### redirect-retired (20) — 301/302 redirects to canonical sister
+Sites have been retired/consolidated. Not in scope for toggle audit.
+
+| Domain | Redirects to |
+|---|---|
+| `1800swallpaper.com` | `https://1890swallpaper.com/` |
+| `1850swallpaper.com` | `https://1890swallpaper.com/` |
+| `1860swallpaper.com` | `https://1890swallpaper.com/` |
+| `1880swallpaper.com` | `https://1890swallpaper.com/` |
+| `1930swallpaper.com` | `https://1920swallpaper.com/` |
+| `apartmentwallpaper.com` | `https://wallpapersback.com/` |
+| `bestwallpaperplace.com` | `https://1890swallpaper.com/` |
+| `bleachresistantfabrics.com` | `https://1890swallpaper.com/` |
+| `blockprintedwallpaper.com` | `https://handcraftedwallpaper.com/` |
+| `designerwallcoverings.ai` | `https://1890swallpaper.com/` |
+| `embroideredwallpaper.com` | `https://fabricwallpaper.com/` |
+| `raffiawalls.com` | `https://raffiawallcoverings.com/` |
+| `recycledwallpaper.com` | `https://naturalwallcoverings.com/` |
+| `screenprintedwallpaper.com` | `https://blockprintedwallpaper.com/` |
+| `selfadhesivewallpaper.com` | `https://apartmentwallpaper.com/` |
+| `stringwallpaper.com` | `https://linenwallpaper.com/` |
+| `wallpapercontractor.com` | `https://1890swallpaper.com/` |
+| `wallpaperdistributors.com` | `https://1890swallpaper.com/` |
+| `wallpaperestimator.com` | `https://1890swallpaper.com/` |
+| `wallsandfabrics.com` | `https://1890swallpaper.com/` |
+
+Action: none. Steve may want to delist some of these if SEO doorway-page risk is too high (see `project_decade_microsite_duplication_20260526.md`).
+
+---
+
+### special-master (2) — intentionally outside grid pattern
+| Domain | Notes |
+|---|---|
+| `novasuede.com` | Rotating hero homepage (Gucci-style), color grid is the main UX. Toggle would not fit theme. Standing rule may not apply. |
+| `wallco.ai` | Master/admin site — homepage is curator-focused, not a customer product grid. Admin pages DO have the date-chip rule satisfied (cactus-curator confirmed `.when` + `fmtDate`). |
+
+Action: none — both intentional.
+
+---
+
+### http-error (0)
+None — all 128 domains returned 2xx or 3xx.
+
+---
+
+## Admin page created-date chip rule
+
+Spot-checked `wallco.ai/admin/cactus-curator` — canonical implementation present (`.when` chip + `fmtDate()` + `toLocaleString` confirmed in served HTML).
+
+Per task brief, admin chip rule applies to ANY admin card. wallco.ai is the only site in the fleet with a public admin surface (`/admin/*` returned 200). DWF / standalone sites returned 404 on `/admin` — they have no admin pages, so the rule is vacuously satisfied.
+
+Future work (out of scope tonight): if `philipperomano.com` ever gets a memo-sample admin board, that board must follow the cactus-curator pattern.
+
+---
+
+## Drift analysis
+
+**Mac2 ↔ prod render.js (dwf-* fleet):** MD5 match — `fbfb636ae921f35bd767103a2ae9cd72`. No drift. dwf "stealth toggle on product pages" pattern is in sync between local source and prod.
+
+**Mac2 ↔ prod for the 6 standalone sites + 2 missing-both:** NOT checked tonight (each site has its own repo; would require per-site md5-diff). RECOMMENDATION: future yolo task — extend `machine-sync` skill to walk these 8 sites and surface drift.
+
+**No reverts triggered.** No pm2 reload / rsync issued tonight. All deltas are READ-ONLY observations.
+
+---
+
+## Open items (for Steve)
+
+1. **Decide** on dwf-* stealth vs visible toggle (DTD said C: leave alone; reaffirm or override).
+2. **Triage** `grassclothwallcoverings.com` — most-broken site in the fleet; sort/density/toggle all missing AND `/?theme=2` 404s. Likely needs template refresh from `~/Projects/corkwallcovering` reference.
+3. **Add sort selector** to `losangelesfabrics.com` — only missing sort (already has density).
+4. **Investigate** `hollywoodwallcoverings.com` — has toggle but lost sort+density. Per MEMORY this was the "800-line outlier" reference. Either re-add controls or document why this site is canonically different.
+5. **Decide** editorial-5site toggle policy — 4 of 7 have the toggle, 3 don't. Pick consistent pattern.
+6. **Add toggle** to 6 standalone customer sites (carmelwallpapers, customdigitalmurals, flockedwallpaper, glassbeadedwallpaper, goldleafwallpaper, nationalpaperhangers) — these have sort+density but no toggle. NEW sites per task brief, so backlog-only.
+7. **Optional** — review the 20 redirect-retired sites for SEO doorway-page risk.
+
+---
+
+## Reproducibility
+
+Audit script: `~/.claude/skills/<not-a-skill>/audit-v3.sh` (also stored at `root@45.61.58.125:/tmp/audit3.sh`).
+
+Raw CSV: `~/.claude/tmp/audit-v3.csv` (also `root@45.61.58.125:/tmp/audit-v3.csv`).
+
+DTD run: `/tmp/dtd-20260529-233450-22657/` (codex+claude verdicts; qwen errored).
+
+To re-run:
+```bash
+ssh root@45.61.58.125 'bash /tmp/audit3.sh'
+scp root@45.61.58.125:/tmp/audit-v3.csv /tmp/audit-v3.csv
+```
← 70fedce docs: mac2-prod parity audit 2026-05-29 (5/5 files identical
·
back to Wallco Ai
·
rooms: unified dual-path resolver (resolveRoomUrl/resolveDes 39851c6 →