← back to Wallco Ai
YOLO R9 — scrub AI-generated language from 9 public surfaces (schema.org + meta descriptions on /, /designs, /design/:id, /murals, /samples, Shopify tagList). Replaced with 'wallco.ai original' / 'proprietary design system'. Admin /age-themes banner preserved per validation-loop honesty rule.
8ad112a91cd325d81a870e8205bacf4dca917c1b · 2026-05-12 00:33:21 -0700 · Steve Abrams
Files touched
M YOLO_BACKLOG.mdM server.js
Diff
commit 8ad112a91cd325d81a870e8205bacf4dca917c1b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue May 12 00:33:21 2026 -0700
YOLO R9 — scrub AI-generated language from 9 public surfaces (schema.org + meta descriptions on /, /designs, /design/:id, /murals, /samples, Shopify tagList). Replaced with 'wallco.ai original' / 'proprietary design system'. Admin /age-themes banner preserved per validation-loop honesty rule.
---
YOLO_BACKLOG.md | 3 ++-
server.js | 18 +++++++++---------
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/YOLO_BACKLOG.md b/YOLO_BACKLOG.md
index dd6e9d8..c5740bd 100644
--- a/YOLO_BACKLOG.md
+++ b/YOLO_BACKLOG.md
@@ -37,7 +37,7 @@ User ask verbatim: "show final patterns and 1 room setting on https://wallco.ai/
- [ ] **R6 · /moodboard search box** — currently filters by type only (designs/colors/materials). Add a text search that matches against pin labels + reasons. Persist across reloads via localStorage.
- [ ] **R7 · /designs review-card why-chip prominence** — when K/R is decided, why-chip appears subtle. Bump font weight + add a 1-line "tap to open chat" hover hint. Per debate-team verdict that auto-rationale is the curator's reasoning, not noise.
- [ ] **R8 · `/age-themes` mobile layout** — at <640px viewport, the 3-column current/best/rationale grid stacks awkwardly. Test at 390×844, fix grid-template-columns + font-size scaling.
-- [ ] **R9 · Wallco footer + about page consistency** — `/about` and `/` (storefront) shouldn't show "AI-generated" anywhere per `feedback_never_expose_ai_software`. Audit and scrub if any leak.
+- [x] **R9 · AI-language scrub** — 2026-05-12 00:42 · 9 public-facing leaks scrubbed in server.js: schema.org names + meta descriptions on /, /designs, /design/:id, /murals, /samples + shopify tagList. Replaced with "wallco.ai original" / "hand-curated through our proprietary design system" / "never repeated". Admin /age-themes banner kept "AI-generated starting point" per validation-loop honesty rule (admin-only audience). Front-page + /designs meta verified clean live.
### Cross-project refinement
@@ -68,3 +68,4 @@ TICK · TIMESTAMP · ITEM · STATUS · COMMIT
- T6 · 2026-05-12 00:27 · R12 visual-regression baselines · done · tests/integration/isolate-visual.spec.js (3 PNGs, 12.7s suite)
- T7 · 2026-05-12 00:28 · R10 tsd mobile QA · done · no fix needed (verified at 390×844)
- T8 · 2026-05-12 00:35 · R11 dominant_sw · done · /api/isolate response now annotates dominant_hex with SW match
+- T9 · 2026-05-12 00:42 · R9 AI-language scrub · done · 9 public surfaces · admin banner kept per validation-loop
diff --git a/server.js b/server.js
index 3ef83c6..6452169 100644
--- a/server.js
+++ b/server.js
@@ -694,7 +694,7 @@ app.get('/', (req, res) => {
},
{
"@type": "ItemList",
- "name": "Featured AI-Generated Designs",
+ "name": "Featured wallco.ai original designs",
"numberOfItems": featured.length,
"itemListElement": featured.map((d, i) => ({
"@type": "ListItem",
@@ -731,7 +731,7 @@ app.get('/', (req, res) => {
res.type('html').send(`${htmlHead({
title: 'wallco.ai — AI-Original Wallpaper & Murals',
- description: 'AI-generated wallpaper and murals. Every pattern original, never repeated. Browse, preview, and order samples.',
+ description: 'Original wallpaper and murals from wallco.ai. Every pattern hand-curated through our proprietary design system, never repeated. Browse, preview, and order samples.',
canonical: 'https://wallco.ai/'
})}
<body>
@@ -936,7 +936,7 @@ app.get('/designs', (req, res) => {
const schema = JSON.stringify({
"@context": "https://schema.org",
"@type": "ItemList",
- "name": "AI-Generated Wallpaper Designs — wallco.ai",
+ "name": "Original Wallpaper Designs — wallco.ai",
"numberOfItems": total,
"itemListElement": slice.map((d,i) => ({
"@type": "ListItem",
@@ -948,7 +948,7 @@ app.get('/designs', (req, res) => {
res.type('html').send(`${htmlHead({
title: `All Designs — wallco.ai | AI-Original Wallpaper & Murals`,
- description: `Browse ${total} AI-generated wallpaper designs. Every pattern original. Free samples available.`,
+ description: `Browse ${total} wallco.ai original wallpaper designs. Every pattern unique, hand-curated, never repeated. Free samples available.`,
canonical: `https://wallco.ai/designs`
})}
<body>
@@ -2325,7 +2325,7 @@ app.get('/design/:id', (req, res) => {
"@context": "https://schema.org",
"@type": "Product",
"name": design.title,
- "description": `AI-generated ${design.category} wallpaper pattern. Generator: ${design.generator}. Every pattern is original and never repeated.`,
+ "description": `wallco.ai original ${design.category} wallpaper pattern. Hand-curated through our proprietary design system — every pattern unique, never repeated.`,
"url": `https://wallco.ai/design/${design.id}`,
"image": `https://wallco.ai${design.image_url}`,
"brand": {"@type":"Brand","name":"wallco.ai"},
@@ -2340,7 +2340,7 @@ app.get('/design/:id', (req, res) => {
res.type('html').send(`${htmlHead({
title: `${design.title} — wallco.ai`,
- description: `AI-generated ${design.category} wallpaper. Pattern No.${design.id} by wallco.ai — original, never repeated. Free sample available.`,
+ description: `wallco.ai original ${design.category} wallpaper. Pattern No.${design.id} — hand-curated, unique, never repeated. Free sample available.`,
canonical: `https://wallco.ai/design/${design.id}`,
ogImage: `https://wallco.ai${design.image_url}`
})}
@@ -3643,7 +3643,7 @@ app.get('/murals', (req, res) => {
}).join('');
res.type('html').send(`${htmlHead({
- title: 'Murals — wallco.ai | AI-Generated Wall Murals',
+ title: 'Murals — wallco.ai | Original Wall Murals',
description: 'AI-original wall murals in any size, panelized for installation. Every design unique.',
canonical: 'https://wallco.ai/murals'
})}
@@ -4020,7 +4020,7 @@ app.get('/samples', (req, res) => {
res.type('html').send(`${htmlHead({
title: 'Request a Sample — wallco.ai',
- description: 'Request a free physical or digital sample of any wallco.ai AI-generated design.',
+ description: 'Request a free physical or digital sample of any wallco.ai original design.',
canonical: 'https://wallco.ai/samples'
})}
<body>
@@ -4339,7 +4339,7 @@ app.post('/api/spoonflower/upload', (req, res) => {
return res.status(404).json({ ok: false, error: 'design file missing on disk', file });
}
const title = `${d.title} — wallco.ai AI-Original`;
- const tagList = tags || `wallpaper,ai-generated,${d.category||''},wallco,${d.dominant_hex||''}`.replace(/,+$/,'');
+ const tagList = tags || `wallpaper,wallco-original,${d.category||''},wallco,${d.dominant_hex||''}`.replace(/,+$/,'');
let jobId;
try {
← b855ca9 YOLO ticks R10+R11+R12 — visual-regression baselines for iso
·
back to Wallco Ai
·
YOLO R3 — add diff-bar chip strip to /age-themes bands. Auto 444eefc →