Skip to content

Copy pass: one word for each thing, and plainer text everywhere - #820

Merged
guidovizoso merged 1 commit into
mainfrom
guido/copy-pass
Oct 21, 2026
Merged

guidovizoso merged 1 commit into
mainfrom
guido/copy-pass

Conversation

@guidovizoso

@guidovizoso guidovizoso commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Stacked on #818, which is stacked on #814. The base is guido/plugins-screen; retarget as those merge.

What this changes

A copy pass over every screen and the server messages people read: one word for each thing, and plainer text.

Glossary and style guide. .claude/skills/openbot-copy is a new project skill so new text stays consistent.

  • Glossary: Bot (never agent, coworker or assistant), app, Connections, Capabilities, admin (not administrator), OpenBot (not "this deployment" outside Admin), conversation.
  • Style rules:
    • Say what happened, then what to do.
    • Write short sentences.
    • No "rather than", em dashes or self-explaining clauses.
    • No internals outside Admin.
    • Buttons are verbs.

The word swap across the app:

  • About 30 on-screen strings change "agent" or "coworker" to Bot, and about 40 change "administrator" to "admin".
  • "Agent" stays only where it means an outside agent, such as "an agent you already run" or "Agent address".
  • Text written for the model is unchanged on purpose: tool descriptions, Bot proposals and voice tool results. That's a behaviour change with its own review.

First area: home, sidebar, Bots list, New Bot sheet

Where Before After
Home title Start a new channel Start a conversation
Under the message box Sent to the coworker it is for. Type @ to choose one yourself. OpenBot picks the right Bot. Type @ to choose one.
Home error Your coworkers couldn't be loaded, so there's no one to send this to yet. Couldn't load your Bots, so there's no one to send this to. Reload the page.
Home carousel Explore agents Explore Bots
Sidebar, empty You don't have channels yet. Start talking to agents… No conversations yet. Start talking to a Bot…
Sidebar search Search channels Search conversations
Bots page Every Bot you can reach: what each is doing, what it needs from you, and whether it is paused. Your Bots and the ones shared with you. See what each is doing and what it needs from you.
Bots, empty You have no Bots of your own yet. You don't have any Bots yet. Create one with New Bot.
Bots, hidden 3 Bots you took off this list. Nobody else's list changed. 3 Bots you hid. Only your list changes.
New Bot: Run it here OpenBot runs it for you. Nothing to set up — it can start work as soon as it is made. OpenBot runs it for you. Nothing to set up, and it can start right away.
New Bot: unavailable Not available yet. Whoever set OpenBot up has to switch this on first. Not available yet. An admin has to turn this on first.
New Bot: Instructions How it behaves in every conversation. Left blank, it helps with whatever it is asked. How it should work. Leave it blank and it helps with anything.
New Bot: Public Everyone in the deployment can find and use it. Everyone in your OpenBot can find and use it.
New Bot: address Anything that speaks AG-UI works. This server dials your agent, so an agent on your own machine has to be reachable from here. Any agent that speaks AG-UI works. OpenBot connects to it, so it has to be reachable from OpenBot's server.
New Bot: Key Sent as an Authorization header on every run, and kept in the credential vault. Sent as an Authorization header with every request, and stored encrypted.

The other areas, each in its own commit:

Area Examples
A Bot's pages "Granted" → "What it can use". "This Bot is not one you can reach." → "Couldn't open this Bot. It may not be shared with you." "Paused. No routine, responsibility, hand-off or follow-up starts for you…" → "Paused. Nothing runs for you until you turn it back on." The key panel's "Calling tools back / Rotate token" → "Key for tools / Make a new key".
Capabilities "A skill is a named instruction you invoke with / and a Bot follows…" → "Type / and a skill's name to give a Bot that instruction. Only you see yours, and they work on Bots you own." Memory statuses "Disabled / awaiting review" → "Turned off / needs review".
Connections "Reached through Composio, which holds the account…" → "Bots use this as you, and see only what you can see." "…Connecting takes you to Composio and then to the vendor to consent." → "Connecting takes you to {App} to approve access." Key-check failures cut from 60+ words to four short sentences.
Settings, onboarding, sign-in, sidebar "No sign-in provider is configured for this deployment." → "Sign-in isn't set up yet. An admin has to set it up first." "Pin channel / Delete channel…" → "Pin conversation / Delete conversation…". "Log out" → "Sign out". "Your team has switched personal rules off…" → "An admin has turned off personal rules. Yours are kept but don't apply."
Conversations and the Bot's computer "This coworker has been deleted…" → "This Bot was deleted. You can still read this conversation, but the Bot can't reply." "The assistant needs you." → "The Bot needs you." "'x' is an SVG, which can carry scripts and is not accepted." → "'x' can't be attached. SVG files aren't accepted."
Admin Same shape everywhere: "Couldn't load plugins. Reload the page." Plugins' "Held but not offered" + a four-clause paragraph → "Given but no longer listed" + four short sentences. Exact names an admin sets stay, e.g. COMPOSIO_API_KEY, INITIAL_ADMIN_EMAILS.
Server messages "X is shared across this deployment and no account is connected to it yet. Ask an administrator to connect it." → "X uses a shared account, and nobody has connected it yet. Ask an admin to connect it." "Live voice requires a channel with exactly one agent." → "Voice calls only work in a conversation with one Bot." "Administrator access required." → "Only an admin can do this." The Bot-not-found 404 is now "Couldn't find that Bot.", so the app's not-found check, which never matched "Agent not found.", now works.

Left alone on purpose:

  • Text written for the model: tool descriptions, prompts, the guidance blocks, Bot-proposal and skill-proposal answers, voice tool results, and computer-call results.
  • Model-facing refusals: these were shortened, but they still name the app and the person's next step, and the [connect-app] marker and JSON are intact.
  • A few long Composio vendor sentences and the key re-check sentences, whose wording is pinned by server/tests/helpers/refusals.ts. They're mostly seen by admins or in logs, and can follow later.
  • One non-copy change: server/src/agents/endpoint.ts matched the old "assistant" wording with a regex, so the regex now matches the new sentences.

Where it runs

  • New state that outlives a request? None. This changes text only.
  • What happens on the second replica? Nothing different.
  • Anything serialised? No.
  • Anything fanned out to a browser? No.
  • New listener, port, or schedule? None.

Boundary and audit

  • No gateway, refusal or audit behaviour changes. Audit outcome labels changed wording only.

Changelog

  • "Plainer words, and one word for each thing" under Unreleased.

Proof

  • Tests: app 1277 pass / 0 fail, colocated app tests 139 / 0, server 4768 / 0, shared 247 / 0. Assertions on changed text now check the new sentences.
  • Manual check: Bots, Connections, Capabilities → Memory, Settings → Approvals and Admin all render the new wording on the local stack.
  • Format, lint, types: bunx biome format . and bunx biome lint --error-on-warnings . exit 0, and tsc --noEmit is clean for app and server.

@guidovizoso guidovizoso changed the title Copy pass: one word for each thing, and plainer text Copy pass: one word for each thing, and plainer text everywhere Oct 21, 2026
@guidovizoso
guidovizoso marked this pull request as ready for review October 21, 2026 20:26
Base automatically changed from guido/plugins-screen to main October 21, 2026 20:50
Bot everywhere a person reads it (agent only for an outside program), admin rather than administrator, conversation rather than channel, and OpenBot rather than this deployment outside Admin. Shorter headings, descriptions, empty states, errors and server messages that say what happened and what to do next. Adds .claude/skills/openbot-copy, the glossary and style guide. Text written for the model is unchanged.
@guidovizoso
guidovizoso merged commit 74051c1 into main Oct 21, 2026
19 checks passed
@guidovizoso
guidovizoso deleted the guido/copy-pass branch October 21, 2026 21:12
@linear-code

linear-code Bot commented Oct 21, 2026

Copy link
Copy Markdown

FOR-344

pricezone added a commit to pricezone/NoeBot that referenced this pull request Oct 22, 2026
Work-branch stage. App keeps Noë Bot's English (Greek-keyed); server takes
upstream's wording with Noë Bot navigation; product name swapped at display.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant