foolish-bandit teaches Gary to talk like a lawyer

A frontend-only sweep replaces generic placeholder copy with action-oriented prompts that name the next step.

chat-uibranding

foolish-bandit went through roughly two dozen surfaces in Gary's interface - sidebars, modals, project lists, the review table, document cards, the chat panel, drop zones, sign-in and sign-up - and rewrote the empty, loading, and error strings. Instead of "No projects found", a new user sees a nudge to create one per client, case, or matter. Instead of "No documents yet", they're told to upload a PDF or Word file. "Processing..." becomes "Reading the document...". "An error occurred" becomes a real Try Again button next to Return Home.

The sweep stops where it should. Developer-facing log messages stay technical. The settings page that holds AI provider keys keeps its existing labels, since renaming them would mislead users or drag route changes in. Feature names in the navigation are left alone.

So what A small change that matters for adoption: lawyers landing on an empty Gary now get a clear next step instead of a shrug.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from foolish-bandit/gary, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
da89931b Make empty/loading/error copy lawyer-friendly Claude 2026-05-07 ↗ GitHub
commit body
Sweeps the frontend for generic empty, loading, and error strings
and replaces them with action-oriented, lawyer-friendly copy that
explains what to do next. Adds a Try Again CTA to the global error
boundary so users aren't stuck on a dead page.

Highlights:
- Empty states (sidebar, file directory, modals, list pages, project
  detail) now name the next step (upload, create, ask, search by
  client/title) instead of just stating the absence.
- "Processing..." on a freshly uploaded doc → "Reading the document..."
  Upload buttons → "Uploading your document..."
- error.tsx and global-error.tsx now expose Next's reset() handler
  via a Try Again button; copy says Gary hit a problem and offers a
  return-home link.
- not-found.tsx CTA renamed Go home → Return Home.
- Login/signup error messages and progress labels rewritten
  ("Could not sign in. Check your email and password and try again.").
- Account/models alerts ("Failed to save X.") rewritten ("Could not
  save your X. Try again.").
- Tabular review streaming error: "An error occurred. Please try
  again." → "Something went wrong. Try asking again."

No backend changes, no behavior changes, no removed functionality.
Console/log/internal error details are unchanged.

https://claude.ai/code/session_019pRkhcGDRKQWHjzAnV5yCL

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-273.md from inside the repo you want the changes in.

⬇ Download capture-thread-273.md