|
| 1 | +--- |
| 2 | +name: openbot-copy |
| 3 | +description: The words and the voice for every piece of text a person reads in OpenBot — screen headings and descriptions, buttons, empty states, notices, chat cards, and the server's error and refusal messages that reach the browser. Holds the glossary (Bot, app, admin, OpenBot) and the style rules. Use when writing or changing any text that is shown to a person, naming a screen, a section, a button or a state, writing an error or refusal message, or reviewing a diff that adds user-facing strings under app/src or server/src. Don't use for text written for the model (tool descriptions, standing instructions, system prompts), for code comments, or for the docs under docs/. |
| 4 | +--- |
| 5 | + |
| 6 | +# OpenBot Copy |
| 7 | + |
| 8 | +## When To Use |
| 9 | + |
| 10 | +Any string a person reads: a heading, a description, a button, a placeholder, an empty state, a |
| 11 | +notice, a chat card, a server error that the browser shows. Server messages count: a 409 that says |
| 12 | +what to do next is read by a person as much as any screen is. |
| 13 | + |
| 14 | +Not text written for the model. Tool descriptions, standing instructions and prompts steer how a Bot |
| 15 | +behaves, and changing their wording is a behaviour change with its own review. Not code comments, |
| 16 | +and not `docs/`, which has its own register. |
| 17 | + |
| 18 | +## The Glossary |
| 19 | + |
| 20 | +One word for one thing, everywhere a person can see it. |
| 21 | + |
| 22 | +| Say | For | Not | |
| 23 | +|---|---|---| |
| 24 | +| **Bot**, **Bots** (capitalised) | What a person creates, talks to and gives work to. | agent, coworker, assistant, AI | |
| 25 | +| **agent** | Only an outside framework's program, in the places that are about connecting one: "an agent you already run", "AG-UI agent". | Bot, when the thing is a Bot | |
| 26 | +| **app** | A service a Bot uses: Gmail, Google Drive, Notion. | connector, integration, plugin (outside Admin) | |
| 27 | +| **Connections** | The apps and accounts a Bot uses as you, and the page that lists them. | connected accounts, linked accounts | |
| 28 | +| **connect / disconnect / reconnect** | What a person does to their own account. | link (except GitHub and Slack identity, where "link" is the vendor's own word) | |
| 29 | +| **Capabilities** | Your skills and your Bots' memory of you, and the page with both. | plugins | |
| 30 | +| **skill** | A named instruction invoked with `/`. | command, prompt | |
| 31 | +| **admin** | The person who runs OpenBot for everybody. | administrator, owner, operator | |
| 32 | +| **OpenBot** | The product the person is using. | this deployment, the server, the instance | |
| 33 | +| **turn on / turn off** | An admin switching an app or a feature. | enable / disable (in sentences; a switch may still read "Enabled") | |
| 34 | +| **conversation** | A thread with one or more Bots. | channel, chat (in sentences) | |
| 35 | + |
| 36 | +**Admin is allowed exact names.** An admin page may name `COMPOSIO_API_KEY`, OAuth and "deployment", |
| 37 | +because the admin is the one who sets them. A page anybody can open may not. |
| 38 | + |
| 39 | +## The Style |
| 40 | + |
| 41 | +1. **Say what happened, then what to do.** "Gmail isn't connected. Connect it to let Bots read your |
| 42 | + mail." Not why the screen is built the way it is. |
| 43 | +2. **One idea per sentence. Short sentences.** A description is one or two sentences, about 20 words. |
| 44 | +3. **Plain words.** "use", not "hold a grant on". "can't", not "is unable to". Contractions are fine. |
| 45 | +4. **No "rather than", no em dashes, no "which is why", no "so that nothing … that may be wrong".** |
| 46 | + These are the marks of text that is explaining itself. Cut the clause or make it its own sentence. |
| 47 | +5. **No internals outside Admin.** Composio, OAuth client, credential, token, grant, scope, |
| 48 | + deployment, broker, endpoint: say what the person sees instead ("not set up yet", "your account", |
| 49 | + "this Bot can use it"). |
| 50 | +6. **Second person.** "Your apps", "you can". The Bot is "it". |
| 51 | +7. **Sentence case** for headings and buttons: "New Bot", "Your connections". |
| 52 | +8. **Buttons are verbs**: Connect, Request access, Create, Save. A button never says "Click here" or |
| 53 | + "OK" when it does something specific. |
| 54 | +9. **Errors**: what failed, in the person's terms, and one next step. "Couldn't load your |
| 55 | + connections. Reload the page." No stack of reasons, no blame. |
| 56 | +10. **Empty states** say what will appear and how: "No skills yet. Write one with New skill." |
| 57 | + |
| 58 | +## Before And After |
| 59 | + |
| 60 | +| Before | After | |
| 61 | +|---|---| |
| 62 | +| Your connected accounts could not be loaded, so nothing is listed here rather than a list that may be wrong. Reload the page, and tell an administrator if it persists. | Couldn't load your connections. Reload the page, or ask an admin if it keeps happening. | |
| 63 | +| Sent to the coworker it is for. Type @ to choose one yourself. | OpenBot picks the right Bot. Type @ to choose one. | |
| 64 | +| Gmail is a Composio app, and this deployment has no Composio key. (to a non-admin) | Gmail isn't set up yet. An admin has to turn it on. | |
| 65 | +| The agent is still working on another request. Please wait or stop that task first. | This Bot is still working on something. Wait for it, or stop it first. | |
| 66 | + |
| 67 | +## Red Flags |
| 68 | + |
| 69 | +| Signal | Do instead | |
| 70 | +|---|---| |
| 71 | +| "agent" or "coworker" for a Bot | Bot | |
| 72 | +| "administrator" | admin | |
| 73 | +| "this deployment" on a page anybody can open | OpenBot, or say what is missing | |
| 74 | +| A sentence over ~25 words | Split it, or cut the clause that justifies the screen | |
| 75 | +| "rather than", an em dash, "which is" in UI text | Rewrite as two short sentences | |
| 76 | +| An env var, OAuth, Composio or "grant" outside Admin | Say what the person sees | |
| 77 | +| A test asserting long explanatory copy | Assert the short sentence, or the role and the key words | |
0 commit comments