Browse all of Kata

Terms

Source docs/design/voice/terms.mdMarkdown

One name per thing, per surface, so a person moving between the app, Studio and the site is never told two names for one thing — or one name for two things. Route names and test IDs stay as they are; only what a person reads changes.

Decided terms point at their decision. Open rows are collisions this file records but does not settle: they are Galen's call, and until then each surface keeps its current word.

Thing App (staff Teach tab) Studio Not Source
A staff member's own list of things to act on Follow-ups (the app's tasks section inside it is "Assigned to you") Follow-ups To do, Your work, Inbox, My work Decided D-114 (Galen, 2026-10-24): one word on both surfaces; the app's "To do" became "Follow-ups" (route MyFollowUps, test IDs and the old /teach/to-do address unchanged).
Asking another instructor to teach a class Subs · "1 class needs a sub" · Request a sub · Claim Subs (nav, page title; the class role is "Sub"), Coverage (route only) Substitutes, cover, Coverage as a label Decided D-114 (Galen, 2026-10-24): Studio's "Substitutes" became "Subs" (route /coverage and test IDs unchanged).
Person-to-person chat in the app Messages — DMs, chat, inbox App navigation.
Staff email/text to members — Messages (Compose, Templates, Automations, Scheduled, Delivery log) Blasts, campaigns, broadcasts in UI Studio navigation. Decided D-114 (Galen, 2026-10-24): both keep "Messages".
The forecast of what automations will send next — Scheduled (title, tab and nav) What's about to send PQ-15 (K-447).
The reason an incident's open tasks are not needed when it closes — Reason the open task is not needed / Reason the N open tasks are not needed waiver PQ-15 (K-371): "waiver" means a liability waiver everywhere else.

Formatting rules that go with the words

  • Recurrences say the weekday in full and plural: "Thursdays at 6:00 PM" (weekdayPlural), never a short label with an "s" on it ("Thus").
  • Counts pluralise the word, never "(s)": "1 open task", "2 open tasks".
  • Relative days come from Intl.RelativeTimeFormat on the dojo's clock: "today", "yesterday", "3 days ago" — never "1 days ago".
  • Money goes through formatMoney ("$3,447.00"). Only machine files keep bare decimals (the QuickBooks journal lines).
  • Possessives go through possessive(): "Kestrel Martial Arts’", "Blue Heron’s".
  • Open ranges are said in words: "Green and up", "Up to Brown" — never "Any – Kudan" or "Green+". A one-day range says one date.
  • Dates in copy are the dojo's words ("Saturday, November 7"), never an ISO string; copy never names a route ("/members").

scripts/verify/copy-check.mjs (run by npm run design:check) fails on the two patterns a grep can catch reliably: a weekday built with a suffix (}s at) and a count followed by "(s)" inside a template or JSX text. A line that must keep one says copy-check-ok.