--- name: generated-page-qa description: QA and fix large batches of generated or semi-internal web pages until they read as real customer-facing, owner-reviewable websites with proof-backed local verification. triggers: - generated page batch - owner-reviewable websites - customer-facing copy QA - forbidden phrase scan - local page crawl - screenshot proof - noindex/noarchive batch QA --- # Generated Page QA Use this when turning many generated/prospect/demo pages into customer-facing websites, especially when the user cares about proof, local QA, screenshots, no internal language, and deployment gating. ## Contract Before saying the batch is done: - Shared templates/components are fixed before one-off page copy. - Pages read like real business websites, not audits, strategy notes, AI demos, proof ledgers, campaign pages, or internal sales docs. - Weak-source details stay in proof artifacts, not visible customer copy. - Every page has local verification for HTTP status, noindex/noarchive, metadata, schema where practical, CTAs, owner verification note, and forbidden/internal language. - Representative desktop and mobile screenshots are captured and inspected. - After the last patch, the full crawl is rerun. Never claim a final `100/100` from a pre-final QA run. - Deploy/publish remains approval-gated when the user asks for local QA first. ## Workflow 1. **Identify shared causes first.** Inspect the route template, reusable components, layout wrappers, schema/metadata, and data mapping/sanitizer logic before editing individual pages. 2. **Patch global customer-facing foundations.** Fix hero contrast, card text inheritance, CTA readability, mobile layout, owner verification note, metadata, schema, and global copy cleanup. 3. **Move internal material out of the body.** Keep source notes, weak-fit notes, research/proof language, and campaign/outreach logic in proof artifacts or QA reports, not page body copy. 4. **Patch data only after the template pass.** If screenshots or crawls show specific bad visible text, patch source data or sanitizer rules for that language class. 5. **Build locally.** Run the project build before treating the crawl as meaningful. 6. **Run a full local crawl.** Check every route for status, robots/noarchive, metadata, schema, owner note, CTA presence, and forbidden/internal phrases. 7. **Capture screenshots.** Use representative desktop and mobile screenshots, including weak-source pages, recently failed pages, and at least one polished/control page. 8. **Visually inspect screenshots.** Look for readable contrast, no horizontal overflow, usable CTAs, and whether the copy sounds like a business website. 9. **Expand the scan list from visual findings.** Add newly discovered bad-language classes such as doubled sanitizer words, `source note`, `research pass`, `outreach`, `automation`, `proof`, `demo`, `campaign`, `AIBB`, or CTA labels that are internal. 10. **Rerun after final patch.** The final reported pass must come after the last code/data change. ## Forbidden visible language classes Scan exact user-provided forbidden phrases plus broader classes: - AI/demo/proof terms: `AI-built`, `demo`, `proof`, `public proof`, `AIBB`, `Hermes`. - Campaign/outreach terms: `postcard`, `QR campaign`, `campaign`, `outreach`, `recipient`, `mail was sent`, `spend`. - Internal QA/research terms: `audit`, `internal strategy`, `source notes`, `weak-source`, `research pass`, `proof ledger`. - Template/process terms: `the page should`, `the site should`, `launch version`, `owner-safe`, `customer path`, `client journey`, `booking journey`. - Sanitizer artifacts: doubled words like `the the`, awkward substitutions like `private the website team page`, or CTAs like `Verify Before Outreach`. ## Screenshot QA cues A page can pass text scans and still fail. Reject or patch if screenshots show: - Hero text over an image without a strong enough overlay or solid panel. - Light cards inheriting white text or dark cards inheriting dark text. - CTAs that say internal actions instead of customer actions. - Copy that talks to Sam/the operator instead of the business’s customers. - Source confidence caveats presented as marketing copy instead of a small owner-verification note. - Mobile layout with cramped CTAs, horizontal overflow, or buried phone/directions actions. ## Reporting format ```text Done: - ... Proof: - Build: - Crawl: - Screenshots: - Screenshot QA: Blocked: - ... Need approval: - Deploy/publish? ``` ## Pitfalls - Do not approve a batch because one crawl passed before the final patch. - Do not let sanitizer substitutions create unnatural customer copy. - Do not leave weak-source/research/proof notes in visible body text. - Do not deploy/publish without explicit approval when the requested scope is local QA. - Do not let source-specific proof artifacts become customer-facing content.