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

129 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
<!-- dev-agent: record model/version used during implementation -->
### Debug Log References
<!-- dev-agent: link to any debug logs or traces generated -->
### Completion Notes List
<!-- dev-agent: notes about completion, issues encountered, resolutions -->
### File List
<!-- dev-agent: list all files created/modified/affected during implementation -->
## QA Results
<!-- qa-agent: append review results and gate decision here -->