docs(pwa): adopt Carol's voice in user-facing copy (#145) #173
No reviewers
Labels
No labels
area:auth
area:ci
area:db
area:infra
area:native
area:pwa
area:service
epic
feature
foundation
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
james/carol!173
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "145-voice-rewrite"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #145.
Dependency order note: the i18n migration (#146) landed first, so this PR touches
messages/en.jsondirectly — no JSX edits except wiring the previously-hardcodedaria-label="Main"onSidebarNavto a newnav.primaryAriakey.Summary
Rewrite user-facing strings to match
../carol-design/design_system_readme.md→ CONTENT FUNDAMENTALS:String changes
notes.lede: drop the dev-doc "Reference surface for the TanStack Query + Form + Table pattern (ADR-0012)" — replaced with a real Notes blurb.createTitle,emptyalso rewritten.chat.blurb: third-person "she reviews" → first-person "I'll review"; drop the "conversational home of the product" trailer.applications.blurb: "Carol's notes" → "my notes"; drop "command center" hyperbole.projects.blurb: tighten phrasing.network.blurb: clearer "how you met / keep in touch" phrasing.offline.body: third-person "Carol can't reach its server" → first-person "I can't reach my server".profile.picture.viewHint: third-person "Shown across Carol" → first-person "Used on your profile and when you chat with me".account.tokens.blurb+screen.lede: re-cast in Carol's voice ("Let external agents act as you"). Drop the decorative "→" arrow fromtokens.managenow that the button supplies its own affordance.skills.lede: drop the dev-doc parenthetical, tighten the wording.Other
nav.primaryAria("Primary") and wireSidebarNavto it. That was the only hardcoded English string left in the(app)tree.CLAUDE.mdgets a new Conventions bullet linking the design guide as the canonical voice reference, with the four rules inline and the out-of-scope list (marketing on/,docs/*, ADRs, API error JSON,/dev/components).Audit results
messages/en.jsonTitle-Case scan after rewrite: 0 hits (excluding proper nouns).grep -i "click here"acrossapp/+messages/: 0 hits.messages/en.json: 0 hits.Test plan
npm run lint/npx tsc --noEmit/npm testall clean (440 passed)./chat,/skills,/notes,/account/tokens— new strings appear in the rendered DOM.🤖 Generated with Claude Code
Rewrite the user-facing strings in messages/en.json to match the design system's voice guide (../carol-design/design_system_readme.md → CONTENT FUNDAMENTALS). Carol now speaks first-person where she addresses the user; sentence-case holds everywhere it already did; the dev-doc ledes are replaced with feature copy that actually helps a user understand the surface. Changes: - notes.lede: replace the TanStack reference with a real Notes blurb; createTitle "Create note" → "Add a note"; empty state rewritten too. - chat.blurb: third-person "she reviews" → first-person "I'll review"; drop the dev-doc "conversational home of the product" trailer. - applications.blurb: "Carol's notes" → "my notes"; drop "command center" hyperbole. - projects.blurb: tighten phrasing, drop word-on-word "projects". - network.blurb: clearer "how you met / keep in touch" phrasing. - offline.body: third-person "Carol can't reach its server" → first-person "I can't reach my server". - profile.picture.viewHint: third-person "Shown across Carol" → first-person "Used on your profile and when you chat with me". - account.tokens.blurb + screen.lede: re-cast in Carol's voice ("Let external agents act as you"); drop decorative "→" from account.tokens.manage now that the button supplies its own affordance. - skills.lede: drop the dev-doc parenthetical and tighten. Add the missing nav.primaryAria key and wire SidebarNav to it so the sidebar's aria-label is no longer the only hardcoded English string in the (app) tree. CLAUDE.md gets a new Conventions bullet that links the design guide as the canonical voice reference and summarises the four rules — first person, sentence case, lead with the takeaway, no emoji — plus the out-of-scope list (marketing on /, docs, ADRs, API errors, /dev/components). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>Trivy (container image)
Threshold:
high· Total findings: 121 · At/above threshold: 16.27.0, 7.28.0, 8.5.0📊 Test coverage
Patch coverage: 0.0% (0/1 added lines) ⚠️ (soft target ≥ 80%)
Overall (
app/,lib/,db/, excluding UI per ADR-0019):Changed files in this PR (source only — tests excluded):
app/(app)/components/sidebar-nav.tsxSoft thresholds per ADR-0019. Coverage is informational and does not block merge.