Consulting Designerwallcoverings Com
Search the build
-
c46dce52026-07-27 TK-22 signin: hydrate front door from /api/client (fixes stale empty tagline + dangling 'Reach ·') -
4fcf3302026-07-27 TK-22 admin-UX: add created date+time chip to Low Hanging Fruit cards -
b28b7412026-07-27 TK-22 red-team FINDING 4: fix XFF-spoof rate-limit bypass on /api/intake -
fdbc2a72026-07-27 TK-22 red-team FINDING 2: validate admin bucket writes + atomic write w/ .bak -
3cc6bd72026-07-27 TK-22 red-team: harden ungated POST /api/intake (rate-limit + size cap + FIFO cap) -
9d15ef62026-07-27 TK-21: honest fleet per-site depth — rank/report by crawled handleCount, drop aggregators (DTD verdict B) -
afc0d962026-07-27 auto-save: 2026-07-27T20:24:23 (5 files) — build.mjs data/dw-analysis.json public/portal.html public/versions/gallery.html scripts/collect-dw.mjs -
97105b72026-07-27 TK-17: generate read-only Batch A (9684) + Batch B (813) execution worklists -
774241d2026-07-27 TK-17: execution runbook + Batch B canary worklist (Steve-approved A+A′ quote-tags, B canary, C hold) — maps to canonical bucketA-add-roll-variants.js + tagsAdd; live --apply stays supervised -
b2061592026-07-27 TK-17: Phase-2 dry-run — batched, rule-enforced, contrarian-gated (813 Hollywood variant-eligible, 9,301 quote-tag, 12,397 HOLD; Batch C→0 GO after brand-integrity pulls) -
0c7e77f2026-07-27 Fix contrarian-caught join errors: Greenland already-buyable (0 in backlog, not a canary); Hollywood is the cost-ready canary (813/843 join via mfr_sku=alt_sku on hw_price) -
44551192026-07-27 Correct Phase-1 cost-sourcing: momentum cost col is NULL (join hw_price); surface Greenland/Hollywood as cost-ready canary vs cost-blocked Osborne -
9d147c42026-07-27 Phase-1 cost-sourcing plan for the 5 GO lines (read-only) -
d4a35272026-07-27 Add Phase-0 go/no-go worksheet for sample-only backlog top lines (read-only) -
6b2948a2026-07-27 auto-save: 2026-07-27T14:21:14 (1 files) — data/media.json -
ef333032026-07-27 Refresh sample-only backlog work orders (22,895 rows, 130 vendors, malformed 0) -
7ca0f692026-07-27 TK-19: reconcile attribution docs to live GA4 measurement ID G-53F1QBZSG0 (property already existed; create-property memo void) -
4bcdbe72026-07-27 TK-19 CLOSE: GA4 already live (G-53F1QBZSG0, $6.9k/7d revenue tracked) — brief finding corrected; Consent Mode v2 region-scoped installed on live theme + verified; theme.liquid backup + findings doc -
befbf292026-07-26 TK-20 EXECUTED: collection FAQ metafields SET (versace/osborne/zuber) + dw-aeo-jsonld snippet & page.liquid hook live on theme 144396058675; LIVE-BACKUP preserved; portal deployed to dw.agentabrams.com -
5f94a3d2026-07-26 TK-20: apply vp-dw-commerce REVISE — collection JSON-LD branches emit FAQPage-only -
f2191dc2026-07-26 TK-20: harden APPLY-page-jsonld.sh step[2] — fetch-live + abort-on-drift + append-one-line (vp-dw-commerce REVISE resolved); no blind PUT of stale .PROPOSED -
d9016b72026-07-26 TK-20: AEO JSON-LD injector draft + read-only render-verify -
b5fc1de2026-07-26 TK-20 verify: Playwright render-check (all 3 published, but 2 collection body_html blocks HIDDEN by Boost SD display:none); read-only theme investigation → dw-collection-hero SECTION is metafield-driven & already emits FAQPage; draft handle-keyed dw-aeo-jsonld.liquid snippet + page render-hook + collection custom.faq/category metafieldsSet payloads + gated APPLY scripts + findings doc -
63824ff2026-07-26 refine: fix 3 contrarian FIX-FIRST findings (DTD opt1, 5/5) — disjoint concept galleries (60-item collector, zero overlap), honest sorts (drop fabricated hue/tier -> Newest/Title/Vendor/Type), hero wordmark APCA clears Lc>=60 (dark-plateau gradient + text-shadow + hero-only champagne gold) -
788d55d2026-07-26 TK-20 PUBLISHED: AEO blocks live via Admin API (versace smart-collection 3688c, osborne 2681c, NEW page wall-coverings id 219525742643); aeo-render.mjs deterministic md→HTML; rollback baselines preserved -
10291a72026-07-26 auto-save: 2026-07-26T20:45:50 (11 files) — build.mjs data/dw-analysis.json public/portal.html public/versions/atelier.html public/versions/gallery.html -
ca970152026-07-26 weekly snapshot refresh: dw-analysis + build + work-orders (2026-07-26) -
39e8e992026-07-26 refinement round: fresh collector snapshot (80,756 active / 174 vendors / 281 fleet) + rebuild -
d94d7322026-07-26 TK-20: README handle-verification note RESOLVED — bake in Admin-API-verified handles (versace-wallpaper, osborne-little, zuber-wallcoverings); wall coverings + designer wallpaper have no collection (NEW-page decision validated) -
ca962902026-07-26 TK-20: compliance REVISE fix — drop implied-authorization adjacency from O&L FAQ (vp-compliance-policy sign-off) -
30c247e2026-07-26 TK-20: correct zuber AEO handle zuber -> zuber-wallcoverings (verified via Shopify Admin API; prevents 404 JSON-LD injection) -
99bcb112026-07-26 TK-20: verify live Shopify handles for top-3 AEO targets — correct versace-home→versace-wallpaper (543 products), confirm osborne-little (1041), wall-coverings page free -
d98f9012026-07-26 TK-21 P2 polish: hairline ring on doughnut legend markers so dark hues (Black rgb43) read on the #171310 panel (DTD verdict A, 5/5 unanimous) -
601d1212026-07-26 TK-20: AEO drafts for top-5 striking-distance queries (DTD-C hybrid, draft-only) -
bd9f3522026-07-26 portal P2 polish: gold-styled density slider (matches select) + count/% doughnut legends -
95aeb4a2026-07-26 chore: lint, refactor, v0.1.1 (session close) -
f0b70632026-07-26 TK-17 Phase 0: per-line GO/NO-GO decision sheet for the 22,952 backlog (awaiting Steve rulings) -
a4ad6c62026-07-26 attribution prep (DTD-A): per-channel UTM+coupon scheme (data/attribution-scheme.json), attribution-spec + gtag theme-install docs, inert G-XXXX gtag snippet; GA4 property + gtag-install gated to pending-approval -
2a832f22026-07-26 Traffic & Search Reality section: GSC 28d totals, 51% organic-click decline flagged, striking-distance table, branded split, GA4 gap; sections renumbered -
ec345622026-07-26 weekly-refresh.sh: harden with set -euo pipefail note; drop risky in-job log truncation (vp-operations APPROVE) -
9568f612026-07-26 weekly snapshot refresh: dw-analysis + build + work-orders (2026-07-26) -
4e62b5a2026-07-26 sample-only backlog WORK ORDERS: per-vendor remediation CSVs (22,952 non-quote sample-only actives, 130 lines) + SUMMARY.md in /admin media bucket, gated /work-orders route; read-only from dw_unified mirror -
27e394b2026-07-26 designer LOW follow-ups: 2x16px line-marker HTML legends on the two doughnuts, styled select+caret chrome on concept sort controls, thin vertical-rule accent on section headers -
26ca9ee2026-07-26 Unlikely Revenue: quantify sample→roll funnel (Pool 2) from dw_unified mirror -
bf9f3442026-07-26 preserve prior loop: GSC traffic-collector wired into snapshot (collector-side) -
9b9d09a2026-07-26 graphic-designer advisory pass: chart typography/gridlines, decisive rose accents, burger UR, hero overlay, metric labels -
d75255d2026-07-26 graphics+analysis pass: catalog DNA (style/color/needs-tags), 46x ramp chart, gradient fills, real product imagery in mosaic + concept grids/heroes, #all deep-link -
d4a733e2026-07-26 P2 fixes: honest null fleet counts, Gallery concept to light marketplace-luxe -
2c9b6e02026-07-26 contrarian FIX-FIRST pass: data-layer forbidden-vendor filter + product-array coercion, snapshot sanity gate, roadmap KPIs -
4c656f42026-07-26 auto-save: 2026-07-26T08:11:40 (1 files) — scripts/collect-dw.mjs -
f141e572026-07-26 seed growth buckets with live channel state + $0 competitor pixel scan; bind ad-gap finding into brief -
153dc6e2026-07-26 flagship 14-section DW analysis app + 6 luxury-leader concepts, snapshot-bound -
5f513da2026-07-26 collector + /api/refresh + deploy conf; live at dw.agentabrams.com :9703 -
030bfa02026-07-26 auto-save: 2026-07-26T07:41:30 (1 files) — scripts/ -
65efc012026-07-26 enrich from live DW site: phone, tagline, linkedin -
cb206b62026-07-26 DW intake scaffold on :9702 with verified auth gates -
e4e5bef2026-07-26 scaffold consulting portal for Designer Wallcoverings
Authors
- Steve57
Agents used
- vp-dw-commerce2
- vp-compliance-policy1
- vp-operations1
Skills used
- /client4
- /intake3
- /versions3
- /dw-analysis2
- /portal2
- /gallery2
- /collect-dw2
- /osborne2
- /zuber2
- /chip1
- /design-curator1
- /health1
- /empty1
- /null1
- /report1
- /microsites1
- /no-go1
- /media1
- /aeo-drafts1
- /dw-aeo-jsonld1
- /aeo-render-verify1
- /tk20-aeo-jsonld-snippet-and-nav1
- /category1
- /tier1
- /atelier1
- /attribution-scheme1
- /work-orders1
- /gridlines1
- /color1
- /needs-tags1
Creative ideas + design notes
c46dce5 · 2026-07-27 · TK-22 signin: hydrate front door from /api/client (fixes stale empty tagline + dangling 'Reach ·')
The signin page rendered hard-coded static HTML: an empty <p class=sub> tagline and a 'Reach: email · ' field with a trailing separator and no phone — even though client.json now carries a tagline + phone and server.js already serves /api/client as the "public-safe summary for signin page" that the page never consumed. Wire the page to hydrate #tagline / #meta / #reach from /api/client (HTML-entity-decoded for text), keeping the static markup as graceful fallback. Also drop the trailing ' · ' from the static Reach so the no-JS state is clean too. Verified in headless Chrome: tagline + email·phone render, no double-escape, no console errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4fcf330 · 2026-07-27 · TK-22 admin-UX: add created date+time chip to Low Hanging Fruit cards
Standing rule (global CLAUDE.md): every admin card/chip MUST show the record's created date AND time. The admin command-center's Low Hanging Fruit cards showed none. Backfill created_at into suggestions.json (basis = file creation 2026-07-26) and render a 🕓 when-chip via fmtDate() (admin local tz, full ISO in title=), mirroring the /admin/design-curator reference impl. Verified headless: 8/8 chips, 0 console errors, gating intact. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b28b741 · 2026-07-27 · TK-22 red-team FINDING 4: fix XFF-spoof rate-limit bypass on /api/intake
The /api/intake rate limiter keyed off the raw, client-controllable
X-Forwarded-For header, so rotating XFF per request bypassed the 5/IP/60s
cap entirely (reproduced: 7 rotating-XFF POSTs all 200), defeating FINDING 1.
Now: app.set('trust proxy','loopback') (nginx->Node over loopback on this host,
env-overridable via TRUST_PROXY) + key the limiter off Express's trusted req.ip
instead of the raw header. Verified: rotating attacker-XFF now trips 429 after 5
while distinct real clients stay allowed; oversized still 413, boot/health OK.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fdbc2a7 · 2026-07-27 · TK-22 red-team FINDING 2: validate admin bucket writes + atomic write w/ .bak
POST /api/admin/:bucket blind-wrote req.body, so one malformed/empty admin
POST (e.g. {} or a scalar) to 'client' corrupted the PUBLIC /api/client the
signin page reads. Now: require a JSON object|array, reject scalars/null (400),
cap at 512KB (413), and refuse an empty payload that would wipe existing
non-empty content (409). writeJSON is now atomic (tmp+rename) and keeps a
single-copy .bak so any accepted-but-wrong write is recoverable. .bak/.tmp
gitignored. Verified 7 cases locally; deploy Steve-gated.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3cc6bd7 · 2026-07-27 · TK-22 red-team: harden ungated POST /api/intake (rate-limit + size cap + FIFO cap)
FINDING 1 (HIGH, confirmed live): the only unauthenticated write had no rate-limit, no per-field size cap, and no stored-record cap. A single 400KB POST grew intakes.json 2KB->402KB, and every POST rewrites the whole growing file -> unbounded disk-fill DoS with quadratic CPU amplification on the public dw.agentabrams.com host. Fix (reversible, local): validate body is an object, reject payloads >16KB (413), rate-limit to 5/IP/60s (429), and FIFO-cap retained records at 500 so the file and every rewrite stay bounded. Verified: oversized->413, flood->429, valid submission->200, file stays small. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
9d15ef6 · 2026-07-27 · TK-21: honest fleet per-site depth — rank/report by crawled handleCount, drop aggregators (DTD verdict B)
The all.dw /api/microsites feed exposes per-site productCount, but naively using it was dishonest: type=internal directory sites (all.dw reports productCount=201504 while its OWN handleCount is 49 — it rolls up the whole fleet) and cf-zone mirrors report inflated rolled-up figures. The old collector summed all productCounts into products_total=458655 (~123x inflation) and ranked 'Deepest sites by real catalog depth' by productCount, so the aggregator + mirrors dishonestly topped the list. Fix (DTD 5/5 Option B): - collect-dw.mjs: drop type=internal aggregator sites; per-site depth = crawled handleCount (summing non-internal handleCounts ~= server total_handles=125624, proving it's the faithful signal); retain productCount only as products_rollup context; flag capped=200 (feed page-size) sites. Replace inflated products_total with the server's honest total_handles + a transparent handles_sum. - build.mjs: page-capped sites render '200+' so the figure is not misread as exact. - Result: fleet count 280->271 (aggregators dropped), chips led by real crawled depth (japan 29,073, astek 6,167) not the 201,504 aggregator; 0 pageerrors x7, leak-scan clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
5f94a3d · 2026-07-26 · TK-20: apply vp-dw-commerce REVISE — collection JSON-LD branches emit FAQPage-only
dw-collection-hero.liquid already emits CollectionPage+BreadcrumbList on collection pages, so the snippet's versace-wallpaper + osborne-little branches now emit FAQPage only (avoids duplicate same-URL CollectionPage entities). Page branch keeps WebPage+FAQPage (verified structured-data.liquid emits WebPage for ARTICLE templates only, never plain pages). Draft layer only; no theme write.
d9016b7 · 2026-07-26 · TK-20: AEO JSON-LD injector draft + read-only render-verify
- docs/aeo-drafts/dw-aeo-jsonld.liquid: handle-keyed FAQPage/CollectionPage/WebPage JSON-LD snippet (versace-wallpaper + osborne-little collections, wall-coverings page), generated from the committed .jsonld graphs, mirrors visible body_html FAQ verbatim. DTD verdict A (unanimous 5/5) — single snippet rendered from theme.liquid head. - scripts/aeo-render-verify.mjs: read-only Playwright render check (all 3 render body_html; hasJsonLdFaq=false confirms the gap this snippet fills). - render-proof/: saved render-verify JSON. Gated theme-write memo -> pending-approval/tk20-aeo-jsonld-snippet-and-nav.md. No theme write.
30c247e · 2026-07-26 · TK-20: correct zuber AEO handle zuber -> zuber-wallcoverings (verified via Shopify Admin API; prevents 404 JSON-LD injection)
Out-of-top-3 courtesy fix completing the handle-verification pass; same approved deliverable. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
601d121 · 2026-07-26 · TK-20: AEO drafts for top-5 striking-distance queries (DTD-C hybrid, draft-only)
5 Julian-Goldie-style AEO blocks (direct-answer + FAQ + JSON-LD + entity mentions): - versace/osborne/zuber -> AEO blocks appended to EXISTING vendor collection pages - wall coverings / designer wallpaper -> NEW head-term landing pages DTD verdict C (hybrid) unanimous 5/5. vp-dw-marketing sign-off REVISE (2 conditions applied at draft layer). No live theme write; publish memo gated to pending-approval. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
bd9f352 · 2026-07-26 · portal P2 polish: gold-styled density slider (matches select) + count/% doughnut legends
- versionPage: density input[type=range] now custom-styled to the gold system (custom track w/ value-tracking --fill, gold thumb, focus-visible) so the Sort+Density controls row reads as one designed system; caret hardened (transform-origin centering, focus-visible). All 6 concept versions. - htmlLegend: doughnut legend rows now carry a right-aligned tabular count + percentage (visible-only re-normalization on toggle); .hleg CSS gains .lgvl (tabular-nums) + flexed .lgtx. - Rebuilt; Playwright: 0 pageerrors across portal + 6 concepts; leak-scan (schumacher|momentum|wallquest|greenland|tokiwa|rigo)=0. TK-21.
26ca9ee · 2026-07-26 · Unlikely Revenue: quantify sample→roll funnel (Pool 2) from dw_unified mirror
Collector: sample_roll block — funnel (78,244 sampleable → 66% buyable, 26,580 gap split 3,790 quote-only / 22,790 recoverable), per-vendor recoverable leak, and order-data provenance (no shopify_orders; mp_orders seed, digital_sample_orders thin). Brief: Pool 2 rewritten with measured figures, one stacked sample→roll chart by line, and a Tier A/B/C provenance box — upper-bound labeled, Tier-C names the instrumentation gap as the recommendation. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
File tree
- .deploy.conf
- .gitignore
- build.mjs
- data/ads.json
- data/attribution-scheme.json
- data/best-times.json
- data/client.json
- data/competitors.json
- data/content-calendar.json
- data/directories.json
- data/dw-analysis.json
- data/enrichment.json
- data/intakes.json
- data/media.json
- data/socials.json
- data/suggestions.json
- data/work-orders/1838-wallcoverings.csv
- data/work-orders/DRY-RUN.md
- data/work-orders/EXECUTION-RUNBOOK.md
- data/work-orders/GO-NO-GO.md
- data/work-orders/PHASE-0-GO-NO-GO.md
- data/work-orders/PHASE-1-COST-SOURCING.md
- data/work-orders/SUMMARY.md
- data/work-orders/a-s-cr-ation.csv
- data/work-orders/alan-campbell.csv
- data/work-orders/ananbo.csv
- data/work-orders/andrew-martin.csv
- data/work-orders/anna-french.csv
- data/work-orders/architectural-fabrics.csv
- data/work-orders/architectural-wallcoverings.csv
- data/work-orders/arte-international.csv
- data/work-orders/as-creation.csv
- data/work-orders/atomic-50-ceilings.csv
- data/work-orders/backdrop.csv
- data/work-orders/baker-lifestyle.csv
- data/work-orders/black-edition.csv
- data/work-orders/brand-mckenzie.csv
- data/work-orders/british-walls.csv
- data/work-orders/brunschwig-and-fils.csv
- data/work-orders/celerie-kemble.csv
- data/work-orders/charles-burger.csv
- data/work-orders/china-seas.csv
- data/work-orders/christian-lacroix-europe.csv
- data/work-orders/clarke-and-clarke.csv
- data/work-orders/cloth-and-paper.csv
- data/work-orders/cole-and-son.csv
- data/work-orders/contrado.csv
- data/work-orders/coordonn.csv
- data/work-orders/daisy-bennett.csv
- data/work-orders/de-gournay.csv
- data/work-orders/dedar.csv
- data/work-orders/designer-wallcoverings.csv
- data/work-orders/designers-guild.csv
- data/work-orders/dolce-and-gabbana.csv
- data/work-orders/donghia.csv
- data/work-orders/dupenny.csv
- data/work-orders/dw-bespoke-studio.csv
- data/work-orders/dw-exclusive-wallpaper.csv
- data/work-orders/dw-home.csv
- data/work-orders/dwhd.csv
- data/work-orders/emiliana-parati.csv
- data/work-orders/execution/batchA-quotes-tag-worklist.tsv
- data/work-orders/execution/batchB-hollywood-canary.tsv
- data/work-orders/execution/batchB-hollywood-full.tsv
- data/work-orders/fabricut.csv
- data/work-orders/farrow-and-ball.csv
- data/work-orders/fentucci.csv
- data/work-orders/franquemont-london.csv
- data/work-orders/glambeads-by-dw.csv
- data/work-orders/glass-beaded.csv
- data/work-orders/glitter-walls.csv
- data/work-orders/gp-and-j-baker.csv
- data/work-orders/graduate-collection-uk.csv
- data/work-orders/graduate-collection.csv
- data/work-orders/graham-and-brown.csv
- data/work-orders/hand-crafted.csv
- data/work-orders/happy-menocal.csv
- data/work-orders/harlequin.csv
- data/work-orders/holland-and-sherry.csv
- data/work-orders/hollywood-acoustical.csv
- data/work-orders/hollywood-wallcoverings.csv
- data/work-orders/home-couture.csv
- data/work-orders/index.json
- data/work-orders/innovations-usa.csv
- data/work-orders/jeffrey-stevens.csv
- data/work-orders/kelly-wearstler.csv
- data/work-orders/kirkby-design.csv
- data/work-orders/koroseal.csv
- data/work-orders/kravet.csv
- data/work-orders/la-walls.csv
- data/work-orders/laura-ashley-wallpaper.csv
- data/work-orders/lee-jofa.csv
- data/work-orders/leed-walls.csv
- data/work-orders/lincrusta.csv
- data/work-orders/linherr-hollingsworth.csv
- data/work-orders/los-angeles-fabrics.csv
- data/work-orders/madagascar-walls.csv
- data/work-orders/malibu-wallpaper.csv
- data/work-orders/malibu.csv
- data/work-orders/marburg.csv
- data/work-orders/marimekko-exclusive.csv
- data/work-orders/mark-alexander.csv
- data/work-orders/maya-romanoff.csv
- data/work-orders/milton-and-king.csv
- data/work-orders/mind-the-gap.csv
- data/work-orders/missoni-wallpaper.csv
- data/work-orders/newmor-wallcoverings.csv
- data/work-orders/nina-campbell.csv
- data/work-orders/nobilis.csv
- data/work-orders/osborne-and-little.csv
- data/work-orders/patty-madden.csv
- data/work-orders/peg-norriss.csv
- data/work-orders/phillip-jeffries.csv
- data/work-orders/phillipe-romano.csv
- data/work-orders/phyllis-morris.csv
- data/work-orders/pierre-frey.csv
- data/work-orders/pixels.csv
- data/work-orders/plains.csv
- data/work-orders/pr-faux-leather.csv
- data/work-orders/primo-leathers.csv
- data/work-orders/ps-removable-wallpaper.csv
- data/work-orders/quadrille.csv
- data/work-orders/ralph-lauren.csv
- data/work-orders/rebecca-moses.csv
- data/work-orders/rebel-studio.csv
- data/work-orders/rebel-walls.csv
- data/work-orders/retro-walls.csv
- data/work-orders/roberto-cavalli-wallpaper.csv
- data/work-orders/romo.csv
- data/work-orders/ronald-redding.csv
- data/work-orders/sacha-walckhoff.csv
- data/work-orders/sancar.csv
- data/work-orders/sandberg.csv
- data/work-orders/sara-bergqvist.csv
- data/work-orders/sarah-bartholomew.csv
- data/work-orders/scalamandre-fabrics.csv
- data/work-orders/scalamandre-wallpaper.csv
- data/work-orders/steve-abrams-studios.csv
- data/work-orders/steven-abrams-photography.csv
- data/work-orders/studio-ditte.csv
- data/work-orders/suncloth.csv
- data/work-orders/surface-stick.csv
- data/work-orders/thibaut.csv
- data/work-orders/threads.csv
- data/work-orders/traditional-whimsy.csv
- data/work-orders/ultrasuede.csv
- data/work-orders/vahallan.csv
- data/work-orders/versace.csv
- data/work-orders/villa-nova.csv
- data/work-orders/william-morris.csv
- data/work-orders/winfield-thybony.csv
- data/work-orders/witch-and-watchman.csv
- data/work-orders/wolf-gordon.csv
- data/work-orders/zeuxis-parrhasius-europe.csv
- data/work-orders/zinc-textile.csv
- data/work-orders/zoffany.csv
- docs/aeo-drafts/README.md
- docs/aeo-drafts/TK-20-VERIFY-FINDINGS.md
- docs/aeo-drafts/collection-metafields/APPLY-metafields.sh
- docs/aeo-drafts/collection-metafields/osborne-little.faq.json
- docs/aeo-drafts/collection-metafields/osborne-little.metafieldsSet.json
- docs/aeo-drafts/collection-metafields/versace-wallpaper.faq.json
- docs/aeo-drafts/collection-metafields/versace-wallpaper.metafieldsSet.json
- docs/aeo-drafts/collection-metafields/zuber-wallcoverings.faq.json
- docs/aeo-drafts/collection-metafields/zuber-wallcoverings.metafieldsSet.json
- docs/aeo-drafts/designer-wallpaper.jsonld
- docs/aeo-drafts/designer-wallpaper.md
- docs/aeo-drafts/dw-aeo-jsonld.liquid
- docs/aeo-drafts/osborne-and-little.jsonld
- docs/aeo-drafts/osborne-and-little.md
- docs/aeo-drafts/render-proof/render-verify-20260726-2053.json
- docs/aeo-drafts/rollback/collection-298974314547.body.html
- docs/aeo-drafts/rollback/collection-79911911536.body.html
- docs/aeo-drafts/theme-snippets/APPLY-page-jsonld.sh
- docs/aeo-drafts/theme-snippets/dw-aeo-jsonld.liquid
- docs/aeo-drafts/theme-snippets/sections-page.liquid.LIVE-BACKUP-20260726T211927
- docs/aeo-drafts/theme-snippets/sections-page.liquid.PROPOSED
- docs/aeo-drafts/versace-wallpaper.jsonld
- docs/aeo-drafts/versace-wallpaper.md
- docs/aeo-drafts/wall-coverings.jsonld
- docs/aeo-drafts/wall-coverings.md
- docs/aeo-drafts/zuber-wallpaper.jsonld
- docs/aeo-drafts/zuber-wallpaper.md
- docs/attribution-spec.md
- docs/ga4/FINDINGS.md
- docs/ga4/theme.liquid.LIVE-BACKUP-20260727T082512
- docs/gtag-theme-install.md
- package-lock.json
- package.json
- public/admin/index.html
- public/intake.html
- public/portal.html
- public/signin.html
- public/versions/atelier.html
- public/versions/gallery.html
- public/versions/heritage.html
- public/versions/maison.html
- public/versions/studio.html
- public/versions/texture.html
- scripts/aeo-build-collection-metafields.mjs
- scripts/aeo-build-jsonld-snippet.mjs
- scripts/aeo-render-verify.mjs
- scripts/aeo-render.mjs
- scripts/build-work-orders.mjs
- scripts/collect-dw.mjs
- scripts/seed-buckets.mjs
- scripts/weekly-refresh.sh
- server.js
- snippets/gtag.html