united-tattoo/docs/stories/pub-7-brand-language-remediation.md

7.2 KiB
Raw Blame History

UT-PUB-07 — Brand Language Remediation (Sitewide Copy)

Status

Ready for Dev

Story

As a site visitor,
I want clear, human, nononsense copy without buzzwords or hype,
so that I can understand services and artists quickly without feeling marketed to.

Acceptance Criteria

  1. Given I visit key public pages (/, /artists, /gift-cards, /services, /specials),
    When I read the visible copy,
    Then no disallowed phrases or hype terms appear per docs/united_tattoo_brand_language_guidelines.md, and revised copy matches the guidelines tone and examples.

  2. Given the SEO metadata (app/layout.tsx),
    When I review the meta description,
    Then it uses plain language with no hype words (e.g., “stunning”, “exceptional”), following the guidelines.

  3. Given artist bios and marketing blurbs (data/artists.ts),
    When I read bios,
    Then language is concrete and justified (years, specialties, examples), with no absolute superlatives (e.g., “powerhouse”, “unparalleled”, “nextlevel results”).

  4. Given a brandlanguage lint test is added to CI,
    When the test runs on PR,
    Then it fails if disallowed phrases are introduced anywhere under app/, components/, data/ and passes after remediation.

  5. Given the guidelines require Grade7 reading level as a standard,
    When I spotcheck revised copy with a readability tool,
    Then copy approximates Grade7 or lower (short sentences, concrete nouns/verbs) and avoids abstract metaphors.

Tasks / Subtasks

  • Apply copy rewrites in components (AC: 1)

    • components/artists-page-section.tsx
      Replace: “Our exceptional team… unique expertise and artistic vision… your perfect tattoo.”
      With: “Meet our artists. See their work and specialties. Well match you to the right artist for what you want.”
    • components/artists-grid.tsx
      Replace: “talented… unique style… create your perfect tattoo.”
      With: “Browse artists by style and experience. Pick the one whose work matches what you want.”
    • components/gift-cards-page.tsx
      Replace: “Give the gift of exceptional tattoo artistry. Perfect for …”
      With: “Give a tattoo gift card. Good for any service. Never expires.”
    • components/services-section.tsx
      Replace: “Transform… into stunning new pieces… bold blackout designs.”
      With: “Coverups and blackout. We design a new piece to cover the old one. Free consult to pick the best approach.”
    • components/services-mobile-carousel.tsx and components/services-mobile-only.tsx
      Mirror the servicessection rewrite above.
    • components/specials-page.tsx
      Replace “Perfect for firsttime clients” / “Perfect gifts …”
      With: “Good for firsttime clients” / “Good gift for anyone who wants a tattoo.”
    • components/artist-portfolio.tsx (marketing blurbs only; authentic client quotes may remain as quotes)
      Replace hype (“powerhouse”, “exceptional”, “nextlevel results”)
      With concrete: “22+ years. Focus: coverups, makeovers, illustrative work. See recent coverups in the portfolio.”
  • Normalize artist bios (AC: 3)

    • data/artists.ts — Christy
      Replace: “powerhouse… exceptional… nextlevel results… name you trust… creativity and expertise thrive”
      With: “22+ years. Coverups, makeovers, illustrative designs. Based in Fountain/Colorado Springs. See coverup examples.”
    • data/artists.ts — Donovan
      Replace: “unparalleled passion and creativity”
      With: “Bold illustrative work with fine detail. See recent pieces.”
    • data/artists.ts — Heather
      Replace: “unmatched artistry… turns skin into stunning, wearable art”
      With: “Vibrant watercolor and embroiderystyle designs. Portfolio shows healed results.”
    • data/artists.ts — Other entries
      Remove/replace “perfect”, “exceptional”, “stunning”, “trusted name/name you trust”, “nextlevel”, “powerhouse”, “thrive(s)”. Use concrete facts (years, styles, favorite subjects) and link to work.
  • SEO meta description (AC: 2)

    • app/layout.tsx
      Replace: “explore stunning tattoo portfolios”
      With: “Browse artists portfolios and book with the artist you want.”
  • Add brandlanguage lint tests (AC: 4)

    • Create tests/content/brand-language-lint.test.ts
      Fails on banned patterns (regex: “exceptional|unique|perfect|world[- ]class|cutting[- ]edge|unparalleled|next[- ]level|powerhouse|trusted name|name you trust|premium experience|seamless experience|unforgettable|thrive[s]?|elevat\w+|stunning|incredible|exceeded all my expectations”).
      Scope: scan text content of app/, components/, data/.
    • Wire test in CI (existing Vitest runs): ensure it executes with the rest.
    • Document how to extend the banned list from docs/united_tattoo_brand_language_guidelines.md.
  • Spot readability checks (AC: 5)

    • Run a quick readability check (manual or script) on changed files; shorten or simplify where needed (Grade7 target).
    • Ensure sentences are short; replace abstract phrasing with concrete (sizes, hours, examples).
  • Regression & QA

    • Visual check of updated pages for layout shifts after copy changes (line wraps, responsiveness at sm/md/lg).
    • Verify no snapshot or RTL tests fail due to text changes (update snapshots where intended).
    • Confirm no banned phrases remain (re-run search and tests).

Dev Notes

Authoritative source:

  • docs/united_tattoo_brand_language_guidelines.md (Version 1.0)

Remediation scope (from prior audit):

  • components: artists-page-section.tsx, artists-grid.tsx, gift-cards-page.tsx, services-section.tsx, services-mobile-carousel.tsx, services-mobile-only.tsx, specials-page.tsx, artist-portfolio.tsx (marketing blurbs)
  • data: data/artists.ts (bios and detail lists)
  • app: app/layout.tsx (SEO description)

Guidelines to enforce:

  • No hype/buzzwords; plain speaking; justified confidence only
  • Concrete facts over abstract claims
  • Grade7 reading level target; short sentences, contractions OK
  • Authentic client quotes can remain as quotes (not repeated as brand claims)

Testing

  • Vitest: brandlanguagelint.test.ts ensures banned phrases absent in text sources
  • RTL/component: update any snapshots impacted by copy changes
  • Manual: readability spotchecks; crossdevice text wrap checks

Change Log

Date Version Description Author
2025-09-20 0.1 Initial draft of PUB07 remediation story Scrum Master

Dev Agent Record

Agent Model Used

Debug Log References

Completion Notes List

File List

QA Results