| Button, menu item | verb + object; bare verb when the object is the dialog subject; in-flight = gerund + … | Create task, Delete, Creating…. Not OK, Yes, Submit, Confirm, Got it |
| Success toast | title = object + past participle; partial success: title names the win, description the miss | Draft saved. Token created / The token list could not be refreshed. |
| Error | 1 what happened Could not <verb> <object> 2 what it means for your work 3 what to do or an action button | Could not send. Your draft was restored. Not Failed to, Unable to, Error, Unknown error |
| Blocked state | the precondition as an instruction | Connect a host to launch |
| Integration prompt | Connect <Product> to <payoff>; payoff is one clause naming what appears or what the agent can do; optional cost hint as status facts | Connect GitHub to see pull requests and checks here · about a minute · opens github.com |
| Capability limit | limit + alternative | Terminal is not available for sessions on remote hosts. |
| Permission denial | who can fix it | Only organization admins can manage billing. Ask an admin. |
| Retry | only when it can succeed, with a how or when; never bare Please try again. | Refresh billing and try again. |
| Raw backend text | never a title; description or Show details | |
| Confirm dialog | title <Verb> <object>?; body = consequence, what is preserved, undoable?; confirm = title verb; Cancel + Esc; confirm = ⌘+Enter | Archive project? / Existing workspaces are not deleted. / Archive |
| Reversible action | no dialog; undo toast | Session archived + Undo Z |
| Warning | list the consequences; never an intensifier | not Use with extreme caution! |
| Empty state | fact, then what fills it or what to do, with key | No tasks yet / Create a task to organize your sessions + Create task T |
| Loading | name the work or actor | Creating worktrees…, Asking the agent…; plain Loading… only when nothing more is true |
| Step list | short noun phrase; states Pending / In progress / Complete / Failed / Skipped | Prepare launch |
| Placeholder | noun phrase, instruction, or format example; no …, no period; a key hint is keycap + text | Search tasks, you@company.com, ENG-123 or a Linear issue URL, Enter to start typing |
| Setting label | noun phrase, not Enable X | Default coding agent |
| Setting description | one sentence: on, and off if not the obvious inverse; experiments say what changes and what does not | Send all queued messages together as soon as the session is ready. Turn off to send one at a time. |
| Org lock | | Your organization has turned this off. |
| Tooltip (icon button) | action label + keycap | Toggle terminal ⌘+T |
| Tooltip (explainer) | one or two full sentences | |
| aria-label (control) | verb + object, no key, no period | Copy file link |
| aria-label (region) | noun phrase | Document outline |
| Toggle state (aria) | {label}: on / : off | |
| Hotkey description | verb + object, no article | Open command palette. Reuse hotkeysCatalog.ts wording |
| Banner | title fragment + one-sentence body; route non-admins to a person | Payment overdue / Update billing details to avoid blocked writes. |
| Notification toast | title = event; body = session or task; action = verb + key | Needs approval / Jump to session ⌘+⇧+J |
| Money, rates | as charged | $3.84 / commit, 2–4× |