# Answer a decision An agent that needs you to choose something while you are not talking with it puts the question in your decision queue instead of a GitHub comment. Each question comes with its options, the one the agent recommends, and a **default-by** day. You answer it in Starlings, on the web, the Mac or the phone, without the agent's conversation open. The agent reads your answer back. ## Where decisions show Decisions are the first rows in **INBOX** on Work's Overview and on Home's WORK card, on every client. An overdue decision comes first, then the one whose default-by day is soonest. A row shows the question, who asked it, the recommended option, and the default-by day. After the default-by day has passed, the row says **Overdue**. ## Answer one 1. Open the row. The sender is named above the context and links. Every option is a visible button, with the recommendation marked **Recommended**. 2. Optionally write a note. 3. Choose an option. On the Mac, press **Answer** to send your selection; no option is preselected. On the web and phone, choosing sends it immediately. The row leaves INBOX. The row's menu (right-click on the Mac and the web, long-press on the phone) also lists each option as **Answer: …**, to answer without opening it. When the decision is about a subject, your answer is recorded as a decision on that subject, and its channel gets a line about it. If Core cannot be reached, the answer is kept and the record is written when the answer is sent again. ## The default-by day The default-by day is a deadline, not a timer. Nothing is decided for you when it passes. The row shows **Overdue**. The agent, or you, can then apply the recommendation on purpose, and the agent says so when it does. ## For agents A connected Claude with write access uses the `ask_decision` tool: - `ask` files a question: `question`, markdown `context`, two to six `options` (`key` and `label`), a `recommendation` that is one of the keys, and `default_by` as `YYYY-MM-DD`. Pass a `subject` door when the decision is about a subject, and `links` for the issue or pull request. - `list` reads decisions back: `status` open, resolved or all, and `since`. `now` also returns `decisions_waiting` and `decisions_answered` (the last week), and `open` on a subject returns its `decision_asks`. - `withdraw` takes a question back. `apply_default` applies the recommendation, and only after the default-by day. The queue is not the first place to ask. When the member is talking with you — in Claude Code, a chat or an IDE — ask there, even if the answer can wait. Use the queue when nobody is in the conversation, and only for a real choice: options that lead to different outcomes, one of which you could go ahead on if nobody answers. A step the member has to do by hand — a secret, a permission, a dashboard click — is not a decision; say it in the conversation, or put it on the issue the work belongs to. Keep one open decision per issue, and run `list` before asking. Read the answer back before acting on it. To pair a Claude, see [Connect Claude](connect-claude.md). --- # Book a time 1. Open `/book/`, or press **Book a time** on a bare room page. 2. Pick a date, then a time. Change the city if the times are not in yours. 3. Enter your name, email and company, and what the meeting should cover. 4. Press **Confirm booking**. You are on the calendar. The confirmation email carries the room link with a token. 5. To move or cancel it later, open the link in that email and press **Change**. The owner sees the booking on Calendar and on Home's UPCOMING. --- # Call a colleague There are two ways to get a colleague's attention: **Wave** and **Call**. **Wave**: press **Wave** on their row in Team. When their status is Active, the row has no inline Wave button; choose **Wave** from the row menu or person profile. A client they have running plays one chime. The wave expires after 45 seconds. They do not have to answer. **Call**: press **Call** on their row. - If they are in a meeting, you knock on the room they are in and go in. That is their own room, or a colleague's when they are a guest there. **Join room** in their row menu does the same. - If they are available but not in a meeting, they see **Open room / Not now**. If they open the room, you go in. If they do not answer within a minute, they are away. Starlings does not transcribe a room that a call opened. If the call becomes a meeting, turn captions on during the call. You cannot wave or call an agent. Send it a message. --- # Connect a repository Starlings reads GitHub through its own App, installed on the `envisioning` org. To set up the App itself, see docs/GITHUB_CONNECTOR.md. 1. Open `/admin/connectors/github`: Admin → Connectors → the GitHub card. Only an org admin can make changes. 2. Find the repository. Map it to the project. 3. Press **Sync now**. The row shows `Synced · n pulls`. 4. Open the project in Work. Issues and pull requests are on the Issues pane; **New Issue** creates an issue through the App. Any member can also link a repository from Work, on the Mac or iPhone: **Edit details** on the project, then **Repository**, or **Link GitHub repository…** on the project's context menu. This link writes the same mapping. Starlings refuses a repository that is already linked to another subject. A project shows the Issues pane only once a repository is linked. To unmap, reverse the mapping on the same row. --- # Connect Claude Only a member of this workspace can pair Claude. Starlings has no self-serve workspace yet. The pairing signs in as that member, and Claude reads only what the member can read. The public Starlings site publishes the help pages; use your workspace address for pairing, including `/connect` and `/mcp`. 1. Add Starlings as a connector in Claude. Use the address `/mcp`. The client registers itself. - claude.ai or Claude Desktop: Settings → Connectors → **Add custom connector**. - Claude Code: run `claude mcp add --transport http --scope user meet /mcp`, then open `/mcp` in a `claude` session, choose **meet** and **Authenticate**. 2. The browser opens `/connect`. Sign in as yourself. To let Claude write, tick **Also write** before you allow the pairing. Without it, Claude only reads. 3. Claude now has these tools: `search`, `open`, `now`, `transcript`, `schedule`, `start_meeting`, `send_message`, `task`, `create_issue`, `record_decision`, `ask_decision`, `set_goal`, `cms`, `docs_write`. A read-only pairing lists only the read tools. `ask_decision` puts a question in your decision queue when you are not in the conversation (a background or scheduled run); while you are talking with Claude it asks you there. You answer it from INBOX ([Answer a decision](answer-a-decision.md)). `task` also creates a lead: pass `action: "create_lead"` and a title, and Claude gets the lead's door and its channel, where Core posts **New Lead Created**. Claude can also set a lead's five qualification checks, on create or later with `update_lead`. Claude cannot delete a lead. Claude reads your Quick Notes through `now` and files one by passing its id as `quick_note` to `task`, `create_issue`, `send_message` or `docs_write`; the note is marked filed there, as **File…** does. Claude cannot delete a note. Claude can merge duplicate contacts or organizations in Core with `cms` and `merge`: Core keeps the oldest, moves everything from the others onto it, and records the merge; Claude names the survivor to you first. Claude also gets the resources and prompts, and an index of the product at `/llms.txt`. 4. When Starlings refuses a call, or the call fails, Claude gets the reason and a suggested next step. Claude can tell you both. A read-only pairing refuses every write. To allow writes, **Revoke** the pairing and pair again with **Also write** ticked. 5. A message Claude sends with `send_message` is yours, and shows a quiet **via claude.ai** (or your client's name) beside the time, so the people reading it can tell. 6. Starlings records every call. See yours under Settings → Account → **Connected Claudes**, or all of them on Admin. **Revoke** ends the pairing. 7. **Pause** stops a Claude at its next call and keeps the pairing. Starlings refuses each call and tells Claude that you paused it. **Resume** lets the next call through. You do not pair again. ## Have a Claude start a meeting Ask Claude to start a meeting. Claude calls `start_meeting`. This puts the meeting on the calendar, in your own room, and asks your devices to open the room. Each of your running clients shows **Open room** or **Not now**. You have 45 seconds to answer, the same limit as a Wave. The room opens only when you choose **Open room**. If you do not answer, the meeting stays on the calendar and the room stays closed. Starlings **transcribes** a room opened this way, because it is a convened meeting with a title and attendees. Starlings does not transcribe a room opened from a colleague's Call. For an ordinary calendar event, use `schedule`. It does not ask your devices and does not open a room. --- # File a task on GitHub The subject must be a project with a linked repository. 1. Open the task: in MINE, or on the subject's Tasks pane. 2. Choose **File on GitHub** from the row's menu. On the web, the open task has it too. 3. The task becomes an issue on the repository, with a link back to the task. The task and the issue stay one card. The board sets the card's column from the issue's `agent:*` labels. To start from an issue instead, use **New Issue** (⌥⌘I) on the subject. Star the task or issue from its Work row to keep it in Starred. This does not change its issue state or board column. --- # Hand off a card to an agent 1. Open Work and find the card: a task or an issue on a subject. 2. Drag it onto the agent in the sidebar, or choose **Hand off** from the card's menu. 3. Starlings sends the agent a message that carries the card. The agent answers in the subject's Talk. The card's labels change as the agent works. If an agent stops answering, the watchdog resets it. The card goes back to the queue. Starred is personal quick access; it does not change who can receive the card or how the hand-off works. --- # Host a meeting You need an `@envisioning.com` sign-in and a room in `OWNER_ROOM_MAP`. You cannot host from the browser. 1. Open Home. On the Mac that is ⌘1; on the phone, the Home tab. 2. Press **Start room** (⌘↩ on the Mac). The room opens and you are on the stage. 3. Press **Copy room link** (⌘⇧C) and share the link. The link is `/room/` and does not change. 4. When a guest knocks, the stage banner shows their name. Press **Admit** (⌘⇧↩) or **Decline** (⌘⇧⌫). If more than one guest waits, use the WAITING ROOM block on the rail. From Launch, **Start & Admit** opens the room and admits in one step. Declared recording notetakers also wait for admission. Before you admit an unbooked notetaker, attribute it to a teammate. Set the standing notetaker policy in **Settings → Room**. 5. While you host, your device runs the captions. Only the transcript text leaves your device. 6. Press **End meeting** to end it for everyone. Starlings finalizes the transcript and notes and files them on the subject. If you use two devices, the first device to host is the host and transcribes. The second device joins muted, as a companion. From the CLI on the Mac: `meetctl host ` after `meetctl status --no-launch` and `meetctl devices`. See docs/OPERATIONS.md. To file the meeting record on a subject, start the meeting from Work with **Meet about this**. --- # Join a room No account needed. 1. Open the link: `/room/`, or `/room//` from a booking. On the Mac and the phone, press **Join** on Home and enter the slug. 2. Enter your name and email. Press **Continue**. 3. Check your camera and microphone. Press **Ask to join**. 4. Wait for the owner to admit you. If the owner is away, the page says so. Do not wait. 5. Press **Leave** when you are done. A signed-in member who joins a colleague's room follows the same steps, but does not wait in the queue. From the CLI on the Mac: `meetctl join --name [--email ]`. --- # Labels the board reads Each issue on a connected repository is a card in Work. Four labels set the card's column. The board ignores all other labels, so you can add your own triage labels. [Connect a repository](connect-a-repository.md) first. ## The four stage labels | Column | The issue is | | --- | --- | | queued | open, with `agent:queued`, **or with no stage label** | | doing | open, with `agent:building` | | review | open, with `agent:review` | | blocked | open, with `agent:failed` | The table gives three rules. - **No label means queued.** A brand-new issue is already in the first column. It does not mean that anyone has started. - **With more than one stage label, the highest wins.** The order is blocked, then review, then doing. - **Any other label is inert.** `bug`, `needs-triage`, your own vocabulary, and even `agent:out-of-scope` leave the card where it is. The board ignores letter case in labels. - **A stage label means an agent holds the issue.** An open issue with no assignee and no stage label shows in Overview's **UNOWNED**; any of the four stage labels, or an assignee, takes it off. Other labels do not. ## Closing a card | Close it as | The board reads | | --- | --- | | completed | done | | not planned, or duplicate | dropped | If you close an issue with the default reason, the board shows it as done. For work you decided against, close it as **not planned**. ## Tasks, for a subject with no repository A task uses its own status rather than a label: `pending`, `in_progress`, `review`, `blocked`, `completed`, `cancelled`, in the same six columns. A task filed to GitHub stays one card. While the task and the issue both exist, the task's status sets the column. --- # Message a colleague 1. Open Team: ⌘4, the Team tab, or `/team`. 2. Choose the person. The conversation opens in the column. 3. Write the message and send it. The message waits for them. Nothing rings. To start a group, press **New group…** and choose up to twelve people. The group's name is the names of its people. To message everyone at once, use **Everyone**, pinned at the top of Groups. To talk about a project or a lead, do not use Team. Open the subject in Work. Its **Talk** is the one conversation on that subject. Unread messages show on Home's MESSAGES, the Team badge, and the Mac's Team button. --- # Read a meeting transcript Starlings does not email the transcript. After Starlings finalizes the meeting, participants with artifact access read the transcript and notes in Starlings. - From the subject: Work → the subject → **History**. The meeting is an interaction; open it. - From Home: the meeting on UPCOMING once it has ended, or QUICK ACCESS. - From an agent: the `transcript` tool, or the `meet://meeting/{room}/{meeting_id}` resource. For the `transcript` tool, get `room` and `meeting_id` from a meeting row returned by `search`, `now` or `open`, or from a `meeting` item in `meet://changes/{cursor}?kinds=meeting`. The record has the notes and the transcript text. On the web, **Decisions** under the notes lists what the notes proposed as settled, each with its line. **Record** writes the decision on the meeting's project or lead, with the meeting as its source. **Dismiss** removes it from the list. An unfiled meeting offers Dismiss only. Each participant consented to captions separately. Starlings filters the record by that consent. A meeting captured on the Mac without hosting (docs/AMBIENT_CAPTURE.md) files the same way. ## Share it, copy it, download it The meeting's page is `/meetings//`. Its top shows the title, the date, who attended and the subject the meeting is filed on. | Control | Does | | --- | --- | | Copy link | Puts the page's address on the clipboard. The address always uses `https://meet.envisioning.com` | | Share… | Opens the browser's share sheet with the link, where the browser has one | | Copy transcript | Puts the whole transcript on the clipboard as plain text | | Download .md | The transcript as Markdown: a header with the title, date, attendees, subject and link, then `**Speaker** (hh:mm:ss): text` for each line | | Download .txt | The same header and lines as plain text, `[hh:mm:ss] Speaker: text` | The link has no token and grants nothing. A person who opens it signs in, and then reads the meeting only if they could read it already. Everyone else sees the not-allowed notice. Starlings has no public or anonymous transcript links. A copy or a download is the record as it stands. Lines you struck are not in it. A renamed speaker appears under the new name. Every client writes the same file. While a meeting runs, the room owner gets the same choices from the live transcript: on the Mac, the share button beside the Live transcript heading; on iPhone, the share button in the transcript sheet. They copy the record, not the captions on screen. --- # Read project status A connected Claude can answer "where does this stand" without you opening Work. Ask it plainly, or use the **project_status** prompt. To pair a Claude, see [Connect Claude](connect-claude.md). **Status is a read of the subject.** The record of the tools an agent called shows who looked. It does not show where the work stands. ## Which read answers which question | Ask | The agent reads | | --- | --- | | Everything open, at once | `meet://board/`: every open subject with its open tasks and issues, plus what finished in the last `` (1 to 90) | | One subject | `search`, then `open` on that row's `door`: recent interactions, open tasks, open issues | | One subject, with goals | `meet://subject//`, where `kind` is `lead`, `project`, `partner` or `event` | | What changed lately | `meet://feed/`: interactions, newest first, 1 to 100 | | Which subjects are busy | `meet://subjects/`: open-task counts and last activity | | Today | `now`: people around, the next 24 hours, your tasks and issues, quick notes | | A meeting's transcript | `transcript`, on a meeting link from an interaction | The **brief** prompt makes the one-subject read for you. The **prep_next_meeting** prompt makes the read before a call. ## The six stages A stage is one of `queued`, `doing`, `review`, `blocked`, `done`, `dropped`. No other stage exists. Starlings computes the stage from the row and never stores it. "In progress" and "waiting" are the agent's words, not stages. An open issue with no `agent:*` label is **queued**. This does not mean that anyone has started. ## What a status read does not do - **It does not write.** `task`, `record_decision` and `set_goal` change the thing you asked about. A Claude answering a status question should ask before touching any of them. - **It does not post to Talk.** Reads leave no line in a subject's Talk. Only writes do. - **It is not the call record.** Every read adds a row that you can see under Settings → Account → **Connected Claudes**. That row shows that the agent looked. It does not answer the status question. --- # Remove a channel without a subject A channel belongs to a project, lead, partner or event. When Core deletes the subject, the channel stays in everyone's list. An admin can remove it. Removing hides the channel for everyone; its messages are kept, and you can restore it. ## Remove one 1. Open **Admin**, then **Jobs**. Find **Channels without a subject**. 2. The card lists every channel whose subject Core says is gone, with its kind, when it was created, its last message and how many messages it holds. 3. Choose **Remove** on the row. The channel leaves everyone's list, search and INBOX at their next refresh. If the card says some channels were not checked yet, choose **Check more**. If it says some **couldn't be checked**, Core did not answer for them. They are not listed and not removed. Try again in a moment. ## Put one back The card lists channels you removed, newest first. Choose **Restore** on the row. The channel returns with its whole history. A channel also comes back by itself when its subject does: an event filed on the subject, a message arriving for the channel, or someone opening the subject again. Nothing is lost by removing one too early. ## What can't be removed - A direct message, a group or Team. Only a project, lead, partner or event channel can be removed. - A channel whose subject Core still has. Starlings asks Core for that subject by its id. If Core fails, times out or answers with anything but "no such subject", nothing is removed. Removing and restoring are admin actions and appear under **Changes** in Admin. --- # Admin The org account, for verified members. Open `/admin` on the web, or the Admin link in Settings. ## Five pages Settings is about you. Admin is about the org. Devices and Connected Claudes appear on both: Settings shows yours, Admin shows the org's. | Address | Holds | Changes | | --- | --- | --- | | `/admin` | **Operations**: what is happening, the meetings hosted, the usage ledger and its thresholds, the failures the Worker counted about itself in the last seven days (refused signatures, Core's events gone quiet, a route answering 5xx, a deploy check that could not run), LiveKit participant-minutes, measured downstream RTP receive bytes with the latest client-report time, Connector calls: every MCP call, with client, tool, outcome and whether a retry replayed its first result, and, for org admins, model calls and tokens per day | read-only | | `/admin/agents` | **Agents**: each agent's identity avatar, plus the last 30 days of handoffs, runtime acceptance or refusal, finalized replies observed by Starlings, delivery issues, watchdog reset outcomes, each configured endpoint's origin, and whether it is frozen, when and by whom | freeze, unfreeze | | `/admin/people` | **People**: the human roster and Changes | visibility, role, access, devices; hide, restore, revoke; sign a device out | | `/admin/connectors` | **Connectors**: the environment rows from the deploy at the top, then Granola, GitHub, Slack and the Mac recorder; each card opens its page at `/admin/connectors/` | mappings, Sync now, backfill | | `/admin/jobs` | **Jobs**: the one-off admin actions, each with what it touches and when it last ran | the jobs themselves | Any verified member can read these pages. Only an org admin can make changes. The monthly downstream figure is the sum of RTP media bytes received by browser, Mac and iOS clients. Clients report about once a minute, and Admin refreshes automatically. It shows observed bytes only: it has no plan cap or projection, omits data-channel and transport overhead, may miss clients that have not reported, and can differ from LiveKit's billed total. ## Freezing an agent **Freeze** on `/admin/agents` stops one agent from its next call, with no deploy. A frozen agent gets no messages, cannot read Starlings and cannot post. A person who writes to it sees a quiet line in the conversation saying it is frozen. **Unfreeze** lets it back in. Admin's trail records who did each. ## Leads to A meeting's transcript; a person in [team](team.md). --- # Calendar Your calendar, with the meetings that Starlings knows about. ## Where | Client | Reach it | Views | | --- | --- | --- | | Mac | ⌘2 | Day / Week / Month, ⌃⌘1 / ⌃⌘2 / ⌃⌘3; sidebar of sources and the mini month; inspector for the chosen event; ✕, Esc, or a click on empty grid closes it, and the toolbar's right-sidebar toggle (⌃⌘I) brings it back | | iPhone and iPad | The Calendar tab | Day, 2-day, 3-day, week, month, agenda; long-press moves an event; resize is in the editor | | Web | `/calendar` | One Google week at a time, plus read-only Events, Milestones, Tasks and My availability layers | A timed event's tile says more as it gets taller, on every client: the title, then the time (`start – end`), then the place, or the meeting's platform when it has no place. An event made in a zone with a different offset adds that zone's clock, as in `12:05 – 14:05 (10:05 GMT)`. A row shows whole or not at all; a half-hour tile at the default zoom is the title alone. The wording is `fixtures/calendar-tile.json`. On Mac, when you select an event, its title shows in the Calendar tab. When you clear the selection, the tab title goes back to Calendar. ## Controls | Control | Does | Where | | --- | --- | --- | | Today | Jumps to today | ⌘T on the Mac; the toolbar | | Previous / Next | Moves one period | ⌘← / ⌘→ on the Mac; Earlier / Later on the web | | New event… | An event at the next hour; the form has a one-sentence field that fills title, times, place and guests | ⌘N on the Mac; `+` on every client | | Open | The chosen event in the inspector | ⌘O | | Join | Joins the chosen event's meeting in the app | ⌘J | | Copy link | The event's meeting link | ⌘⇧C | | Duplicate | A copy of the event; the way to move something on Envisioning Internal | ⌘D on the Mac | | Delete | Removes a writable event; a recurring Google event asks This event or All events | ⌫ on the Mac; the editor on the web | | Hide from Next | Removes the event from Home's Upcoming and meeting alerts; it leaves the Calendar grid too. Turn on Show hidden events (Settings → Calendar on Mac and iPhone and iPad, the Calendars menu on the web) to see it faded, and use Show in Next to restore it | The event's context menu on Mac and web, or its editor on iPhone and iPad | | Reply | Accept, Maybe or Decline an invitation | The event's context menu on the Mac and the web | | Reload | Fetches again | ⌘R | | Search | Events in the window Search covers | ⌘F | | Calendar | Type to narrow the available calendars in an event editor | Event editor | | New events | Type to narrow writable calendars and choose where new events go by default | Calendar settings on iPhone and iPad | ## Row menus (web) Each event in the day list has a menu. Open it with the `…` on the row, a right-click, or ⇧F10. Blocks on the timeline have no menu. | Group | Items | | --- | --- | | Join | Join, when the event has a meeting | | Change | Edit…, when you can write the calendar; Hide from Next or Show in Next; Reply, when you are invited | | Copy | Copy link, when the event has a meeting link | Move to another calendar and Delete are in the editor. The web has no Duplicate. The Calendar field searches available writable calendars by name and account on Mac, iPhone/iPad and web. The New events setting uses the same searchable calendar list on iPhone and iPad. You choose sources on the Mac or the phone: which calendars show, which are hidden, and which subscribed feeds appear in Home's UPCOMING. The web uses those choices. Google calendars and selected subscribed feeds appear in Home's UPCOMING on Mac, iOS, and web. Subscribed feeds also appear in the web Calendar, read-only. EventKit events show only in the native Calendar view. The Upcoming display policy (how many following meetings, and so on) is under Settings → Upcoming on all three. A task, milestone or published event opens read-only where an event opens: double-click it on the Mac, tap it on the phone, click it on the web. It shows when it is, its project, who has it, its status and its notes, with buttons into Work. ## Leads to A task you own opens in Mine. Anyone's task opens on its project's Tasks pane, and a milestone opens on its project. A published event opens its event page. An event's meeting. Your own room opens with you as host. A colleague's room opens with a knock. Any other meeting opens in its own app. None open in the browser. --- # Docs Every document written at Envisioning or from Starlings, in one place. ## Where | Client | Reach it | | --- | --- | | Mac | ⌘5 | | iPhone and iPad | The Docs tab | | Web | `/docs` | On Mac, opening a document adds its title to the Docs tab, such as `Docs — Proposal`. On iPhone and iPad, use **Save link** in the Docs tab, or from a subject's Documents view to file the link on that subject. The Links row lists saved links. A saved link keeps the URL and page metadata, with space for your notes. It does not archive the full page. A saved link is yours alone until you file it on a subject or share it; the web marks it **Only you**. A link saved from a subject's Documents view is filed from the start. Connect Docs once, in Settings → Account, beside Core. If Docs is not connected, the surface says so and shows nothing. ## Shape When signed out on web, the page shows a centered card with the Docs heading and one sign-in action. The rail has Graph, Recent, Unfiled, one row per category, By project, By lead, Folders (the top-level folders) and Library (the mirrored writing). Each block folds, and the fold is remembered on that device; the order and the blocks that hide while empty are the same on Mac, iPhone, iPad and web. The list sits in the middle and the editor in the inspector. **Documents** on a subject in Work shows the same documents for that one subject. Graph shows up to the 5,000 most recent accessible documents as nodes, with a line for each resolved wikilink. Folder colors and grouping are shared across Mac, iPhone, iPad and web; links pull related documents together within their folder groups. Toggle a folder to focus on the remaining groups. Select a node to open its document. The layout is live: it unfolds as the graph loads, links pull documents into place as document details arrive, and it comes to rest on its own. Drag a node to pull its linked documents along; point at one to light up its links and fade the rest. Titles appear as you zoom in, sooner for well-linked documents. The view follows Fit until you pan or zoom, and Fit hands it back. Zoom ranges from 25% to 400% of Fit on every surface. Unfiled lists documents with no category and no project or lead that still sit in the default folder. The row shows only while there is something to file. On the Mac, ⌘-click adds a row to the selection and ⇧-click selects a range. Drag documents onto a rail row to file them there: a folder moves them, a project or lead links them, a category sets it. ## Floating (Mac) A document can open in its own small window. You can keep it in view and edit it while you work in other apps. A pinned window stays on top of every app and on every Space. An unpinned window is an ordinary window. When Starlings starts again, it reopens a floating document where it was. To put it away, close its window. You edit a document in one place at a time. While it floats, the inspector on it offers **Bring to Front** instead of a second editor. ## Controls | Control | Does | Shortcut | | --- | --- | --- | | New document… | A document in the open folder | ⇧⌘N | | Save link | Saves an HTTPS URL with its page metadata. The document body is for your notes; the page's full content is not archived | — | | Write / Preview | Markdown in, rendered out | — | | File | In a row's menu: Folder, Category, Project, Lead. A tick means the document is already filed there. Pick a ticked project or lead to take it off. On the Mac it applies to every selected row | — | | Star / Unstar | Keeps a document or folder in Home's QUICK ACCESS list | document row menu or editor; folder row menu. A top-left star badge marks starred rows | | Category | Sets the row's category | — | | Add a project, lead or partner | Links the document to a subject. The folder is where the document is stored. The subject is what it is about | — | | Show Right Sidebar / Hide Right Sidebar | Passage comments for the open document. On the web, one header control toggles a column on a wide window or a side sheet on a narrower one; it defaults to closed and remembers an open panel per surface | header on web | | Copy link | The document's address | — | | Move to… | In a row's menu or the document's menu on the web: pick a folder from the list; type to filter it | — | | Rename… | In a row's menu: a new title for the document | — | | Archive | In a row's menu or the document's menu: the document leaves every list; Docs keeps it | — | | Keep mine / Take theirs | Resolving a save that collided with another editor's | — | | Hide the rail and the list | The editor alone | — | | Graph | Opens the Docs graph: documents as nodes, wikilinks as connections, folder groups as colors | — | | Zoom in / Zoom out / Fit | Changes the graph scale or frames the visible nodes | scroll or pinch to zoom at the pointer on web; pinch to zoom on Mac, iPhone and iPad; drag the background to pan and a node to move it on every surface | | Open in Floating Window | In a row's menu: the document in a window of its own (Mac) | — | | Float Document | The document open in the inspector, in a window of its own (Mac) | ⇧⌘F | | Keep on Top / Unpin from Top | The floating window's pin: above every app, or an ordinary window | — | | Bring to Front | In the inspector, for a document that already floats | — | Mirrored bodies (newsletters, reports, research) are read-only, with **Open source** to where they live. ## Row menus (web) Every Docs row has a menu. Open it with the `…` on the row, a right-click, or ⇧F10. The `…` shows when the pointer is over the row or the row has focus; on a touch screen it is always there. A top-left star badge marks a starred document or folder; Star / Unstar stays in the row menu. | Row | Menu | | --- | --- | | A document, in the list or a subject's Documents pane | Open, Open page (a saved link), Copy link / Rename…, Move to… / Archive / Star | | The open document's menu | The same, without Open and Star | | A rail view, project or lead | Open, Copy link | | A folder | Open, Copy link / Star | A mirrored document has no Rename…, Move to… or Archive. A saved link copies the page it points at. The web has no menu for more than one selected row yet. ## Leads to The subject a document is about, in [work](work.md). --- # Ended The page after a call. It says whether the owner ended the room, the session was lost, or you were removed. It also says how long the call lasted. | Control | Does | | --- | --- | | Ask to join again | Back to [prejoin](prejoin.md), to knock again | | Enter another room | Back to Home | | Transcript and notes | For participants with artifact access, once finalized | ## Leads to Home, or [prejoin](prejoin.md). --- # Home What is happening today, and your room. One screen on the Mac, the phone and the browser. ## Where | Client | Reach it | Note | | --- | --- | --- | | Mac | ⌘1, or the switcher in any window | The Home window holds the room flow: Launch while idle, Stage in a meeting | | iPhone and iPad | The Home tab | For the signed-in owner, the top-bar **+** opens New Quick Note; Search and Settings are in More. Signed out there is no tab bar; the unsigned root is one card | | Web | `/` | Signed in: the member Home. Signed out: the visitor page | ## What is on it The clock is always first, the version line always last. Between them, the modules, in the order and set you choose in Settings → Home. Starlings hides a module that has nothing to show. The date beneath the clock uses the same weekday, day and month order on Mac, phone and web, in the selected app language. | Module | Holds | Row opens | | --- | --- | --- | | MESSAGES | Unread conversations, each with an accent dot and how long ago the last message came, kept current while Home is open | Work for a subject's, Team for a person's | | INVITATIONS | Calendar invitations waiting for an answer, with Accept / Maybe / Decline in place | The event | | WORK | Inbox items, then overdue and due today. Decision rows name the sender alongside the recommendation and default-by day | A task opens its details; other rows open their destination | | COMMERCIAL | Twelve-month offers, sales, pipeline and new-license totals from the CRM. On the web, a second card, **Signals accounts**, lists the Signals accounts to follow up: overdue first, then no owner, then no next task. Each row shows the stage, license, trial and partnership, the owner and next task, and the usage figures with their age. Accounts that are not now or lost are counted, not listed. The card reads Core again every 15 seconds while Home is in front. **All Signals accounts in Work** opens Work's Signals view. A row's **Tasks…** lists the account's open tasks, marks one done, and adds a task with a due date and assignee | A Signals account opens in Core | | QUICK NOTES | Capture now, file later | The note | | UPCOMING | The next meeting as the hero, then the following rows; on the web the hero includes event context and attendee status. **Join** appears ten minutes before the start and joins in the app | The event | | EVENTS | Upcoming published Envisioning events | The public event page | | YOUR ROOM | **Start** / **Join**, **Copy room link**; on the Mac, the WAITING ROOM queue is inside the room launcher. Cannot be hidden | — | | QUICK ACCESS | The final module: full-width across both columns on wide Home, one column on narrow Home. One horizontal row with no vertical scrolling inside the card; scroll sideways to reach more tiles. Starred things come first, then up to eight recent-only things from this device; each tile shows its type and starred mark, and an overlap appears once | As it does from Search | Events marked **Hide from Next** are omitted from UPCOMING and meeting alerts. They remain visible in Calendar, where **Show in Next** restores them. On the Mac, **WAITING ROOM** is part of the **YOUR ROOM** launcher, above the room action and with each guest's queue controls. The circular Watch next-meeting complication shows the Envisioning mark when it is not showing an imminent countdown. Tap the mark to open Meet Home on Watch. On iPhone and iPad the inline Quick Notes field wraps and grows up to six lines; Return still saves the note. On iPhone and iPad the inline Quick Notes field wraps and grows up to six lines; Return still saves the note. **File…** on a Quick Note opens a searchable destination picker on Mac, iPhone/iPad and web. Type to filter projects, leads or conversations; subject searches can reach entries beyond the first page. The choices are reused for five minutes and refreshed after their source lists change or the owner signs out. ## Controls | Control | Does | Shortcut | | --- | --- | --- | | Start room | Opens your permanent room and puts you on Stage | ⌘↩ (Start Meeting) | | Start & Admit | Opens the room and admits the next person in the waiting room | — | | Join | Enter a room by slug, as a guest | ⌘J on the Mac | | Copy room link | Puts `/room/` on the clipboard | ⌘⇧C | | Search | Opens the Search palette; on iOS choose **Search anything…** in More | ⌘K on Mac and web | | New Quick Note | Opens a capture drawer from the iOS Home bar; the unfiled note stays private | — | | Settings | The gear (web header, iOS toolbar) or ⌘, | ⌘, | | Home settings | The gear at the top right of the modules: Settings → Home, where the modules are ordered and switched | — | | File… | Opens the searchable destination picker for a Quick Note; the project, lead and conversation choices are cached for five minutes | QUICK NOTES row | ## Row menus (web) Every Home row and tile has a menu. Open it with the `…` on the row, a right-click, or ⇧F10. The `…` shows when the pointer is over the row or the row has focus; on a touch screen it is always there. Tab reaches the `…`; the arrow keys skip it. | Row | Menu | | --- | --- | | MESSAGES | Open, Copy link / Star | | INVITATIONS | Accept, Maybe, Decline / Open in Calendar; a proposed event: Add, Discard | | WORK | Task and issue details first; other inbox rows keep their available actions | | QUICK NOTES | Edit, File… / Delete | | UPCOMING | Join (a video meeting), then Open in Calendar | | EVENTS | Open, Copy link (an event with a sign-up page) | | QUICK ACCESS | Open, Copy link / Star | The Mac and the phone have more on some rows (Mute, Archive and Mark as read on a conversation, Hide from Next on a meeting). The web leaves those out until it has the call. ## Keyboard (web) Tab reaches every row. On a long Home, the arrow keys are faster: | Key | Does | | --- | --- | | ↓ / ↑ | Next / previous row, across modules | | ⌥↓ / ⌥↑ | First row of the next / previous module | | Home / End | First / last row | | ⇧F10 | The row's menu; Escape puts you back on the row | | ↩ | Open the row | ## Leads to Calendar, Work, Team, Docs (the other four surfaces); [meeting](meeting.md) through Start or Join; [settings](settings.md). --- # Meeting The live meeting. On the Mac it is the Home window in its Stage phase. On the phone it is a full-screen stage. In the browser it is the page after the waiting room. ## The stage All tiles are the same size. A screen share becomes the main view. During a share, choose Automatic, Over the share, or Beside or below. Automatic floats a short camera row when it fits and gives a larger group a fixed-size, scrollable rail beside or under the share. That device remembers the choice. There is no pin. In every client, camera thumbnails in the screen-share rail omit their visible name and connection-strength badge; both remain available to assistive technology. Other state badges stay visible. On the Mac, your own camera is a small self-view in one of six positions, in one of three sizes. Participant count and elapsed time sit in a pill at the top-left. Other tiles show connection strength as a bar count; the exact quality remains available to assistive technology. ## Controls Mute and camera turn red when off. | Control | Does | Mac shortcut | | --- | --- | --- | | Mute | Microphone on or off; the chevron picks the device | ⌘⇧A | | Camera | Camera on or off; the chevron picks the device | ⌘⇧V | | Background | Blur, or one of the Block themes; segmentation runs on the device | menu | | You | Hide me, Float me, Put me in the corner, Size | menu | | Share screen | A display or a window; the browser also offers a tab. Not on iOS | ⌘⇧S | | Screen share layout | Automatic, Over the share, or Beside or below; in the row on Mac/web and More on iPhone | — | | Chat | The in-meeting text panel, with reactions on messages | ⌘⇧H | | Take host | A Mac companion asks the current Mac host to hand over. When the host leaves or drops, a companion Mac takes host on its own | Meeting menu | | Move host… | The host picks another Mac, iPhone or iPad in the call: another of yours takes it at once; a colleague's is asked first. The new host admits guests and takes the notes. The room owner can take it back | Meeting menu on Mac; More on iPhone | | Host badge | *Host* beside a name marks the device that admits guests and takes the notes | Tiles and roster | | Leave / End meeting | Companions leave; a Mac host can leave without ending the meeting when another Mac is present; End meeting still closes everyone out | Meeting menu / ⌘⇧W | | Choose who sent this notetaker | Attribute an unbooked notetaker to a teammate before admitting it | — | ## The rail (Mac) and More (iPhone) On iPhone, Screen share layout is in More. | Item | Does | Mac shortcut | | --- | --- | --- | | People | Who is in the meeting, with mic, camera and share state; recording notetakers are marked, with their sender when known. Host actions: mute, stop share, remove | — | | Waiting room | The queue; declared recording notetakers identify themselves and wait for admission. Attribute an unbooked notetaker before admitting it. A knock is also answered on the stage banner. The room-wide notetaker policy lives in Settings → Room | ⌘⇧↩ / ⌘⇧⌫ | | Live Transcript | Captions from the hosting device; caption text only | menu | | Share transcript | For the room owner, beside the Live transcript heading. The link to the meeting's page, the system share with that link, and the record itself: Copy transcript and Download Markdown or Text on the Mac, the share sheet and Copy transcript on iPhone. It copies the record, with struck lines gone and renamed speakers, not the captions | — | | Raise hand / Lower All Hands | — | menu | | Mute Everyone Else | Closes microphones; opens none | menu | | Copy Invite Link | `/room/` | ⌘⇧C | | Hide Meeting Panel | The stage takes the window; End moves to the control row | ⌥⌘S | | Focus | Rail closed and transcript collapsed in one press | ⌥⌘F | | Enter Full Screen | macOS hides the chrome | ⌃⌘F | Reactions float on the stage. Starlings does not store them. ## What leaves the device Only caption text leaves, through the outbox. Starlings never stores audio or video. An admitted third-party notetaker may record through its own service. When the meeting ends, Starlings finalizes the transcript and the notes and files them on the subject. Participants with artifact access can read them. ## Leads to [ended](ended.md) when the room closes or you leave. --- # Prejoin The camera and microphone check before you knock. Every client labels it **Before you join**. | Control | Does | | --- | --- | | Camera, Microphone | On or off; pick the device | | Preview | Your own picture. The camera does not capture while nobody is looking at the page | | Ask to join | Sends the knock. The owner sees the request. Starlings issues no media token until the owner admits you | | Back | To [room-entry](room-entry.md) | The owner's Launch shows the guest as **Checking camera** while they are here. ## Leads to [waiting-room](waiting-room.md). --- # Room entry The first page a guest sees. `/room/` is the bare room; `/room//` adds the booking's title, time and subject to the card. ## What is on it | Element | Note | | --- | --- | | Owner and room | Who this room belongs to | | Booking card | Only with a valid token | | Name, Email | Email is required. No account | | Continue | To [prejoin](prejoin.md) | | Book a time | On a bare room, to [schedule](schedule.md) | A signed-in member who opens somebody else's link enters that room as a visitor. The link opens the room, not the member's own Home. An owner on their own room gets a link back to Your room. While the guest is here, the owner's Launch already shows them as **On the page**. ## Leads to [prejoin](prejoin.md) or [schedule](schedule.md). --- # Schedule Book time with a member. Open `/book/`, or press **Book a time** on [room-entry](room-entry.md). ## What is on it | Element | Note | | --- | --- | | Dates, then times | A month calendar from the owner's availability; times shown in a city you pick. A day with an Envisioning event carries the glyph and lists the event | | Name, Email, Company or team | Asked here if you came directly. Otherwise, filled in from Room entry | | What should we cover? | Goes on the booking | | Confirm booking | Then **You're on the calendar** | | Change | Reschedule or cancel an existing booking from its link | | Back | Up one step, to the room | Web only. The Mac and the phone open this page in the browser. ## Leads to A confirmed booking. Later, the booking token shows what the meeting is on the guest's [room-entry](room-entry.md) card. --- # Search One search field. It finds a subject, a person, an agent, a conversation, a document, an event, a task, an issue, a goal or a decision, and it jumps to a destination, a Settings page (Account, Home, Work, Calendar, Appearance or About: the pages every client has) or a verb. ## Where | Client | Open it | Scoped field | | --- | --- | --- | | Mac | ⌘K over the key window | ⌘F is the window's own field: the same search with that window's scope | | iPhone and iPad | The search field on each tab | Same | | Web | ⌘K on any member page, or the magnifier beside the gear | The shared search palette | Search uses the same matching and ranking rules everywhere. There is no separate search field in the Work sidebar. ## Rows Choosing a row opens the item where it lives. A goal opens its project, a decision its subject. Recent rows are what you opened last on this device; Home's Quick Access is the same list, with starred rows first. Core is in search on every client. Each Core entity you can read is a row: on Mac and iPhone it opens that entity in Work; on the web it opens Core's own list in a new tab. On the web, Core records also arrive after a pause, under **Core** below Docs: a project or lead opens on its Fields in Work, anything else on its page in Core. On Mac and iPhone, Search Core in Work finds the same records. A failed request says so, with Retry. An incomplete result set says `partial`. ## Leads to Anywhere. --- # Settings App preferences. Settings is not a surface: it has no switcher entry and no tab. Open it with ⌘, on the Mac, or with the gear on Home on the phone and in the web header. ## Pages | Page | Holds | Clients | | --- | --- | --- | | Account | Who you are, your picture, sign out; Core, Docs and Keep connections with their action beside the status; Connected Claudes (the MCP pairings, with Pause and Revoke); Devices signed in | all | | Calendar | Connect Google Calendar; calendar-only accounts; which calendars draw, whether hidden events show faded, and which subscriptions feed Home's UPCOMING | native selects, web connects | | Gmail and Drive | Connect Gmail, connect Google Drive, Disconnect Gmail and Drive: one read-only Google grant for the imports. Hidden until the deployment has the connector's Google client. | web | | Upcoming | The display policy for Home's UPCOMING: following meetings, density | all | | Home | The modules, their order, on or off | all | | Work | Sales on or off; which sources appear in Inbox | all | | Room | Refuse declared recording notetakers at the door to your permanent room | Mac, iPhone/iPad | | Video | Camera, background | native; web in the in-meeting Settings | | Audio | Microphone, speaker, modes | native; web in the in-meeting Settings | | Captions | Live captions on the hosting device, language | native | | Notifications | Knock sound, Dock alerts, host wake protection | Mac | | Language | English, Português | all | | Appearance | Light, dark, system; grid texture | all | | About | Version, update, Privacy and Terms | native; the web keeps Privacy and Terms in the footer | The Worker stores Home, Upcoming, Work and Language once, and every client uses them. Each device keeps its own video, audio and grid preferences. In Work, the Sales switch controls the lead pipeline and sales touches. Under Inbox, choose which sources appear; sales touches follow the Sales switch. The room's recording-notetaker policy is a standing room setting. A notetaker that declares it records still waits for owner admission when refusal is off. ## Controls | Control | Does | Shortcut | | --- | --- | --- | | Refuse recording notetakers | Rejects declared recording notetakers at the door for your permanent room; when off, they still wait for your admission | — | ## Leads to Nowhere. Close it. --- # Team The people and the agents, who is around, and the four ways to reach a person. ## Where | Client | Reach it | | --- | --- | | Mac | ⌘4 | | iPhone and iPad | The Team tab | | Web | `/team` | On Mac, the Team tab includes the open person or conversation in its title, such as `Team — Alex`. ## Shape When signed out on web, the page shows a centered card with the Team heading and one sign-in action. The rail: the **Lounge** row (the way back to who is around), **YOU** (your own row and status), **Groups** (Everyone pinned, then the private groups, newest message first), **PEOPLE**, **AGENTS**; whoever you have a conversation with first, latest message first. An unread conversation shows a dot and bold text. A video mark on a person's avatar means they are in a meeting. The column shows the lounge or the open conversation. The inspector shows the person. Their open tasks and, when they have connected GitHub, assigned open issues appear as separate clickable cards; issue cards include their GitHub labels. On Mac, selecting a task opens its editor in the inspector, with a way back to the person. On iPhone and iPad, task and issue cards open their existing detail screens. On the web, tasks open in Work and GitHub issues open in GitHub. **New task** opens a searchable project or lead picker and then the usual task editor; a new team task defaults to the person creating it. On a web phone, the person's details open as a sheet over the conversation; after you close it, press the person's name in the conversation head to reopen it. ## Their schedule The person's panel shows today's busy and free blocks from their Google Calendar, never titles or guests. When Google will not show their day, the panel says why instead of showing an error: **Their calendar isn’t shared with you** when their calendar is not shared with your account (a colleague on another Google Workspace domain often is not), **Connect Google Calendar in Settings** when you have not connected yours, and **Google Calendar access expired** when you need to reconnect. A real failure shows **Couldn’t load their calendar** with Copy (web and iPhone and iPad), and the copied text carries the cause, the Worker's code and its request id. ## Reaching a person | Gesture | Asks for | Effect on them | | --- | --- | --- | | Message | Nothing now; it waits in a thread | Nothing | | Wave | Their attention | One chime. The wave expires after 45 s. Best-effort: only a running client plays it | | Call | Into their room | A knock if a meeting is running; an ask (Open room / Not now) if they are only available. A room opened this way does not transcribe | | Join room | Into their room while a meeting is running | Opens the room's ordinary lobby and admission flow | | Hand off | An agent to take a card | The agent starts a run. You hand off from Work, not here | You can message an agent. You cannot wave or call it. Wave and Call are actions in the person row menu. The row has no inline Wave or Call buttons. When the roster says a person is in a meeting, the menu offers **Join room**; otherwise a callable person has **Call**. While an agent is working, its latest step appears beneath the timer as a one-line preview with Markdown marks hidden. The completed reply is a normal message and keeps its Markdown formatting. ## Formatted messages On iPhone and iPad the message field grows line by line up to a cap, then scrolls inside itself. Open **Format message** beside the composer to format a draft. Select text for inline styles; with no selection, inline styles and links insert starter text you can edit. Lists and quotes apply to the current line or selected lines. The menu offers **Bold**, **Italic**, **Strikethrough**, **Inline code**, **Link**, **Bulleted list**, **Numbered list**, **Quote**, and **Code block**. Sent messages keep this formatting when they appear in the conversation on Mac, iPhone and iPad, and web. A Link starts with an example address you can replace before sending. ## Controls | Control | Does | | --- | --- | | Message | Opens or continues the thread with that person, group or agent | | Format message | Opens Markdown formatting for the selected text or current line | | Star / Unstar | Keeps a person, agent or conversation in Home's QUICK ACCESS list; a top-left star badge marks starred rows, and the row menu changes it | | Wave | Sends the nudge; Starlings confirms it with a toast | | Call | Knocks on their room, or asks them to open it | | Join room | Opens a person's live room through the ordinary lobby and admission flow | | New task | Choose a project or lead, then create a task in the usual editor; new team tasks default to you | | New group… | A private conversation with up to twelve people; the people are the name | | More actions | Opens the row or message menu; available actions depend on the item | | Status | Available, Focused; Unavailable always with an end | | Add a picture / Change picture | Your picture, shown everywhere you appear. Without one, Starlings shows your initials | | Everyone | The org-wide conversation | | Submit answer | Questions show who asked and offer full-width choice buttons. Sends the selected options for a multiple-select question. A single choice is sent when selected. Questions gather information; they do not approve an action | | Show Right Sidebar / Hide Right Sidebar | Show or hide the selected person's or conversation's context panel; the web defaults to closed and remembers an open panel per surface | header on web; toolbar on Mac | ## Row menus (web) Every person, agent and conversation row has a menu, including the People and Agents cards in the web Lounge, and so does every message. Open it with the `…` on the row, a right-click, or ⇧F10. The `…` shows when the pointer is over the row or the row has focus; on a touch screen it is always there. A top-left star badge marks a favorite; Star / Unstar stays in the row menu. | Row | Menu | | --- | --- | | A person | Message, Wave, Call or Join room / Copy email / Star | | An agent | Message / Copy email / Star | | You | Notes to self / your status / Star | | A conversation | Star | | A message | Reactions / Copy, Reply, Decide / Save as Quick Note, Edit, Withdraw when yours | Wave and Call show only when the person can take them; Join room appears while their meeting is live. You can react to any message, including your own. On your own text messages, **Save as Quick Note** makes a private copy in Work's Quick Notes; the message stays in the conversation, and you can triage the copy there with the usual **File…** action. Edit and Withdraw are also for your own messages. A message a member's connected Claude sent shows **via** and the client's name beside the time. The same person menu is on the TEAM and AGENTS rows beside a conversation. In Work's person panel, use the person row menu for Wave, Call or Join room. Team Room, `/room/team`, is not this surface. Team's card opens it with you as host. Members enter directly. There is no waiting room. ## Leads to A person's room through Call or Join room, into [meeting](meeting.md). A subject a person mentions opens in [work](work.md). --- # Waiting room **Knock sent.** The guest waits. The owner admits or declines. In the protocol, this state is the lobby. | State | The guest sees | | --- | --- | | Waiting | Please wait; the owner's name | | Admitted | Straight into [meeting](meeting.md) | | Not admitted | Ask to join again | | Owner away | The knock is refused outright; the page says so | | Cancel | Withdraws the knock and returns to [prejoin](prejoin.md) | This page has no Back. To leave, press Cancel. If the guest reconnects, they keep their place in the queue. ## Leads to [meeting](meeting.md), or back to [prejoin](prejoin.md). --- # Work Projects, leads, partners and events, with their goals, tasks, issues, decisions, documents and the one conversation on each. ## Where | Client | Reach it | | --- | --- | | Mac | ⌘3; Mine is ⌥⌘3 | | iPhone and iPad | The Work tab | | Web | `/work` | ## Shape When signed out on web, the page shows a centered card with the Work heading and one sign-in action. On Mac and web the rail is a jump list: **Overview**, then **SUBJECTS** with Browse at its foot. **INBOX** and **MINE** are Overview's two columns, each with its filter beside its heading; on a wide window each column scrolls on its own. **Quick Notes** has a separate list below INBOX in that same scroll column, and **UNOWNED** a separate list below MINE in its column. Every one of these headers folds: click its chevron to close or open the list; each device remembers its own folds. Web search is the shared ⌘K palette, opened from the header search button or the keyboard shortcut. On iPad the Work tab follows the Mac: a sidebar of **Overview**, then **SUBJECTS** with Browse at its foot, and Overview shows INBOX with Quick Notes below it in one column and MINE with UNOWNED below it in the other. On iPhone, and on an iPad in a narrow Split View, the Work tab is one list: Today, then INBOX, Quick Notes, MINE and UNOWNED as separate sections, then SUBJECTS. On every device INBOX, Quick Notes, MINE and UNOWNED stay separate lists; they are never merged into one. The column shows what you chose. The inspector shows the one item you chose inside the column. On Mac, the selected task, issue or Quick Note stays marked in its list while the inspector shows it. A subject's context groups (Team, Agents, Work, Relationship, About and Views) sit beside its panes on Mac and web, and at the top of the subject overview on iOS. Choosing a person or agent opens their direct message in Team. Mine and each subject's Tasks pane list open tasks. **Recently finished** keeps your completed or cancelled tasks and closed GitHub issues from the last seven days, newest first. Choose it in Mine's filter menu, under **Due**, on every client: it replaces the open list until you choose another Due option or **Reset**. Choose **Reopen** to put one back into open work. Home's **QUICK ACCESS** module is what you opened, not what you completed. To find older closed GitHub issues, open a project's **Issues** pane and set **State** to **Closed**; **Order** can sort by **Recently updated**. On Mac, the Work tab includes the open subject or direct item in its title, such as `Work — Project name`; returning to Overview clears the item title. When filing a Quick Note, the destination picker searches as you type. It searches projects and leads beyond the first page, and filters the conversation list in place. The choices stay cached for five minutes and clear when their source lists change or the owner signs out. New leads and projects require an organization. Search the Core directory in the Organization picker on Mac, iPhone/iPad or web; when no exact match exists, create the organization from that picker. Editing older unassociated records remains possible. In Mac Browse, leads use the same openable subject rows as projects, with the organization logo when available and a lead icon when one is not on file. Browse → **EVENTS** lists upcoming events. Each row shows the days remaining, or **Today** when the event is today. The same searchable picker is used for long subject, assignee, owner and goal choices in Work task and goal forms, and Mac's board filters. Calendar source choices in the event editor use it on all three clients. Web CMS relation and time-zone fields use it too. Each list keeps its existing order; short fixed choices such as status and responsibility stay compact. | Destination | Holds | | --- | --- | | Overview | Today's meetings, INBOX above Quick Notes in one column, and MINE beside them; the column with nothing chosen. On Mac, a task or issue from either list, or a Quick Note or document, opens in the right inspector and keeps the lists visible | | INBOX | Items you need to resolve; each row leaves when resolved. Overdue tasks and assignment reminders start off because MINE and subject Tasks / Issues already list that work; turn them on in Settings → Work → Inbox if you want reminders. Decisions an agent asked you name their sender and come first, overdue first ([Answer a decision](../howto/answer-a-decision.md)) | | Quick Notes | Captured notes without a subject, in their own list below INBOX. File… or delete a note here | | MINE | What you owe, by when. Complete a task from its row: it starts fading out immediately on the web and iPhone/iPad, while Mac shows its completed mark. Right-click a task (long-press on the phone) for Done or Cancel Task, and an issue for Close issue, Close as not planned or Reopen issue. A failed write restores the task. The same menu is on every list that shows them | | UNOWNED | Open work on any open subject that nobody on Envisioning's side holds: a task with no assignee that the client does not owe, and a GitHub issue with no assignee and no `agent:*` stage label. Same order and rows as MINE; its filter menu shows **Tasks** (the default), **GitHub issues** or **All work**, then **Subjects**: one checkmark per subject with unowned work of that type; uncheck one to hide its rows, and **Show all subjects** brings them back. Both are remembered on each device. A row you complete, cancel, close or assign leaves the list at once. Right-click a row (long-press on the phone) and choose **Assign to ▸** a teammate (you are first, as **Me**): a task becomes theirs on Envisioning's side, an issue gets their GitHub username as its assignee (teammates with no GitHub username cannot take an issue). Shown only when there is something in it, and a row leaves the list once someone holds it | | Recently finished | A choice in MINE's filter menu: your own recently completed or cancelled tasks and closed issues, in place of the open list; Reopen puts the row back into open work | Reopen button | | SUBJECTS | Every open subject, starred first, the ones with new talk first | | A subject | Its Overview: **Talk** beside Goals / Tasks / Issues / Decisions / Documents / History; metadata, open goals and Fields in the inspector. Context groups fold independently; choosing someone in Team or Agents opens their direct message. On the web, goals head the Tasks pane and decisions head History, and **Fields** is a tab after History | | Fields | Every field Core's registry lists for the record behind a project, lead or partner, grouped as Core groups them. Change what you need, then **Save**; **Revert** drops the draft. Core decides what you may change. On the web, text, numbers, dates, toggles and choices edit in place; relations, lists, countries and industries show read-only and edit on the Mac, the phone or in Core. An event's fields are its Event page | | Sales | An optional section inside Work for leads; switched on in Settings → Work | | Signals | On the web, with Sales on: every Signals account in the CRM at `/work/signals`. **Pipeline** shows a column per stage (Target, Contacted, Demoed, Testing, Active); **List** shows one list, overdue first, then no owner, then no next task. Not now and lost accounts fold below. Drag a card to another column to move the account in Core. A card opens the account pane: stage and owner pickers (both write to Core), contact, license, trial, partnership, usage with its age, trial terms, Partner 50 years, demo learning and the account's tasks. **People** shows everyone on the funnel: prospects by outreach state (To notify, Notified, Replied, Interested) and the people already using Signals. Change a person's state, open Core's mail draft, and take a suggestion: move the account to Contacted, or add a task to book a demo. Nothing moves by itself. A person entering outreach puts their organization on the pipeline at Target. **Needs review** lists people with no organization and Signals users whose email matches more than one contact. Everything else is edited in Core. Mac and iPhone follow | ## Controls | Control | Does | Shortcut | | --- | --- | --- | | New Project… / New Lead… / New Document / New Quick Note… | The `+` menu; new leads and projects require an organization, searchable or created from the picker | — | | Edit details… | Update a project's organization, contacts, name, status, dates, URL and description | project menu on Mac; subject menu on iPhone and iPad | | New Task | A task on the open subject; on a project it names the goal it serves | ⌥⌘T | | New Goal | A goal on the open project: title, target date, owner. A goal row settles as Met or Dropped, and reopens | Overview header + | | Record Decision | A decision on the open subject, citing a live goal when there is one. Written once. Starlings posts a line about it in the channel | Overview header + | | Open Decision | A decision in INBOX: the sender, context and links, and a button per option with the recommended one marked. Choose one to answer, with an optional note; on the Mac, press Answer to send the selection. The row's menu lists each option as **Answer: …** | decision row menu | | Mark as Decision | The channel line, verbatim, becomes a decision on the subject | line menu | | More message actions | On a Talk message: reply, react (including to your own), copy, mark as a decision, save your own text as a Quick Note copy, or edit and withdraw your own message | message menu | | Save as Quick Note | Copies your message text into your private Quick Notes list; the original stays in Talk. Use **File…** on the copy to triage it into shared work | your message menu | | Submit answer | Sends the selected options for a multiple-select question. A single choice is sent when selected. Questions gather information; they do not approve an action | interactive question | | New Issue | An issue on the open subject's repository | ⌥⌘I | | New Document | A document filed on the open subject | ⌥⌘D | | Float Document | The document open in the inspector, in a window of its own that stays on top (Mac) | ⇧⌘F | | Meet about this | Opens your room with the subject attached, so the record files there | — | | Message | Opens a person's or agent's direct message in Team from the subject context | person row | | Overview | Back to the lounge | ⌥⌘0 | | Back / Forward | Through what you opened | ⌘[ / ⌘] | | Show Right Sidebar / Hide Right Sidebar | Show or hide the selected item's context panel; the web defaults to closed and remembers an open panel per surface | header on web; toolbar on Mac | | Board | The card board in the column (Mac only; not on the phone or the web) | toolbar | | Search | Mac: Subjects and Docs with this window's scope; web: global search. Type in a searchable picker to narrow its list. File Quick Note searches projects and leads beyond the first page | ⌘F on Mac; ⌘K on web | | Filters | Narrow the open task or issue list by its available facets | list header | | State | Show Open, Closed or All GitHub issues; ordering is a separate choice | a project's Issues pane | | Core | The Core layer beneath Work: organizations, contacts, notes, offers, edited in place. Mac and iPhone browse it entity by entity; the web finds Core entities and records in Search instead, and opens anything that is not a subject on Core's own page | Work menu ▸ Core | | Keep vault | Mac and iPhone: opens the project's vault in Keep. Web: says to open it on Mac or iPhone, with the download links; a browser never holds vault keys and the web shows no vault material | project menu | | File on GitHub | Turns a task into an issue on the linked repository, from the task row | row menu | | Star / Unstar | Keeps a CRM/CMS subject, task or issue in Home's QUICK ACCESS list; subject stars also lift it to the top of SUBJECTS | row menu; a top-left star badge marks starred rows | | Hand off to %@ | Gives a card to an agent: drop it on the agent in the sidebar, or use the card's menu. The hand-off is a message to the agent that carries the card | drag, or the card menu | ## Row menus (web) Every Work row you can act on has a menu. Open it with the `…` on the row, a right-click, or ⇧F10. The `…` shows when the pointer is over the row or the row has focus; on a touch screen it is always there. A top-left star badge marks a starred row; Star / Unstar stays in the row menu. The groups and their order come from one registry across the clients; each client omits actions it cannot perform. The Mac marks destructive actions in red. | Row | Menu | | --- | --- | | A subject, in SUBJECTS and Browse | Star, Mute / Open, Edit details… / Open tasks, Open issues, New task, New issue / Keep vault (a project), Open in Core. A partner: Star, Mute / Open, Open talk, Open history / Open tasks, New task / Open in Core | | A task, in MINE, INBOX and a subject's Tasks | Done, Cancel task / its door / File on GitHub / Open in Core / Star. A proposed task: Accept, Decline / its door / Open in Core | | An issue, in MINE and a subject's Issues | Close issue, Close as not planned, or Reopen issue / Open in Core / Star. Assigned to you in INBOX: also Seen and Open `repo#n` | | INBOX: unread talk | Open the subject / Mark as read, Mute / Open in Core | | Quick Notes | File… / Delete | | INBOX: a sales touch | Start a lead… / Dismiss, Copy contact email | | INBOX: a document comment | Open document, Open the subject / Resolve / Open in Core | | INBOX: a booking | Open in Calendar, Copy contact email / Dismiss | | INBOX: interest | Copy contact email / Dismiss | | A goal | Met, Drop; or Reopen | The web leaves out what it cannot do yet: Rename… on a subject, Meet about this and Link GitHub repository…. Keep vault on the web is a handoff to Mac and iPhone, never a vault. A decision row has no menu, as on the Mac. Task and issue lists share one native filter scope: status and search stay visible, facet choices open from **Filters**, and sorting remains separate. Task facets are responsible party, assignee and due date; issue facets are labels, assignee and milestone. On the web, you can read details and activity, and take the same actions with repository pickers. A direct task link opens that task's details; **Edit task** opens its editor. ## Leads to A subject's Talk is the conversation on it; a person in it opens [team](team.md). A document opens in [docs](docs.md). A chip under a line in Talk opens what the line is about, and reads as a link when it does: a task or an issue opens in place; a decision opens History and a goal opens Tasks (both open Overview on iPhone and iPad); a pull request, commit, CI run or release opens on GitHub. A meeting's chip is a label. --- # Capabilities One row per capability: the stance (have / partial / want / dont-want / tbd), where it works (mac-host, mac-join, web, ios), and the doors an agent has into it. "none" means no agent can reach it yet. - entry-room · Open a permanent room link and see room / invite context · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/AUDIENCES_AND_IA.md Bare room links stay opaque; booking tokens can add title, time, and subject. - entry-book · Book a time from a room · have · mac-host=not-available mac-join=handoff web=works ios=not-available · agent: none · doc: docs/AUDIENCES_AND_IA.md The Mac in Join mode opens the public web booking page from Book a time; Host mode has no such button. The phone joins; booking is a web door. - entry-identity · Enter guest name and email · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/ROOM_ENTRY.md Human guests do not need an account and provide email; a declared notetaker omits email and joins through the same owner-admission path. - entry-prejoin · Before-you-join camera and microphone check · have · mac-host=works mac-join=works web=works ios=works · agent: none Each surface uses its platform-native permission and device flow. - entry-waiting · Ask to join, waiting-room status, cancel, and reconnect · have · mac-host=works mac-join=works web=works ios=works · agent: meetctl join · doc: docs/ROOM_ENTRY.md No LiveKit media token is issued until the owner admits the request. Every client can withdraw the knock and lands back on Prejoin. - entry-owner-auth · Verified Envisioning owner sign-in · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/SECURITY.md Google Workspace identity is required for owner actions. On the Mac sign-in belongs to the app, not the mode: Join mode fills in the signed-in owner's own name and email when you call a colleague. - entry-lease · Host presence / lease protection · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/SECURITY.md The control plane gates admission and token exchange on the owner device lease. - media-mic · Mute and unmute microphone · have · mac-host=works mac-join=works web=works ios=works · agent: none Available before joining and during the meeting. - media-camera · Start and stop camera · have · mac-host=works mac-join=works web=works ios=works · agent: none Camera-off tiles retain participant identity across clients. - media-devices · Choose camera, microphone, and output device · have · mac-host=works mac-join=works web=works ios=partial · agent: none Every surface picks camera and microphone before joining and from the same chevron beside mute and camera in the call. iOS output stays with the system audio-route picker. - media-spatial · Spatial audio: voices from where the tiles are · have · mac-host=works mac-join=works web=works ios=works · agent: none Starlings places each remote microphone on an arc in front of you, where that person's tile is on the stage, and moves the voice when the tile moves. HRTF on headphones, plain panning on speakers. On by default, with a switch on every surface. Screen-share audio stays centred. - media-stage · Participant video grid, participant count, and People panel · have · mac-host=works mac-join=works web=works ios=works · agent: none Tuned for small rooms with a hard ~100-participant guardrail. People lists who is in the meeting with microphone, camera, and screen-share state; host actions stay native. - media-share-publish · Publish a screen share · have · mac-host=works mac-join=works web=works ios=not-available · agent: none Mac uses a display / window picker; browsers also expose their native tab option. - media-share-receive · Watch and identify a remote screen share · have · mac-host=works mac-join=works web=works ios=works · agent: none Shared tiles are named and visually distinguished from camera video. - media-share-stop · Stop your own screen share · have · mac-host=works mac-join=works web=works ios=not-available · agent: none iOS does not publish screen shares. - media-share-moderate · Host stops another participant’s screen share · have · mac-host=works mac-join=not-available web=not-available ios=works · agent: none Host surfaces only; it stops the active share but does not ban future sharing. - media-mute-moderate · Host mutes a participant, or everyone else · have · mac-host=works mac-join=not-available web=not-available ios=works · agent: none Mac and iOS owners. Closes microphones and opens none — unmuting stays with the person muted, on every surface. - media-mute-notice · Told who muted you · have · mac-host=works mac-join=works web=works ios=works · agent: none The SFU mute is what silences the mic; the notice is what stops it reading as broken hardware. - media-remove · Host removes a participant mid-call · have · mac-host=works mac-join=not-available web=not-available ios=works · agent: none Mac and iOS owners, with confirmation. Disconnects them and spends the admission, so re-entry is a fresh knock. - media-remove-notice · Told you were removed, not dropped · have · mac-host=works mac-join=works web=works ios=works · agent: none All clients distinguish removal from connection loss. iOS observes the session phase and shows an ended receipt with the reason and a way to join again. - media-background · Background blur and branded background effects · have · mac-host=works mac-join=works web=works ios=works · agent: none Mac, web, and iOS have blur, the same small set of Block themes, and your own picture (scaled down and re-encoded on the device, with no metadata carried over; 1.7.8). Segmentation runs on the device — the room sees only composited frames. - media-self-view · Hide self view · have · mac-host=works mac-join=works web=works ios=works · agent: none Hiding the preview does not stop publishing the camera. - media-quality · Connection quality and reconnect handling · have · mac-host=works mac-join=works web=works ios=works · agent: none iOS shows per-person quality and an explicit reconnecting state in the participants panel. - media-leave · Leave the meeting or end it for everyone · have · mac-host=works mac-join=works web=works ios=works · agent: none Guests and owner companions leave their own session. Mac and iOS hosts can end a personal room for everyone; ending the shared internal room for everyone is a separate confirmed action. - collab-chat · Room text chat · have · mac-host=works mac-join=works web=works ios=works · agent: none One room-wide text channel; file attachments and private DMs are not offered. - collab-link-previews · Embedded preview for a pasted link · have · mac-host=works mac-join=works web=works ios=works · agent: none The Worker reads the page and answers text; no client ever fetches a pasted link, so a site never learns who was in the room. In a meeting the read is authorized by the meeting itself, because a guest has no account. The page’s picture comes through the Worker too, on a signed address — without that signature the route would be an open image proxy. - collab-reactions · Ephemeral emoji reactions · have · mac-host=works mac-join=works web=works ios=works · agent: none Six reactions float in the room and are not stored. - collab-chat-reactions · Reactions on a chat message · have · mac-host=works mac-join=works web=works ios=works · agent: none The same six emoji, on a message rather than on the room. Reliable rather than lossy, because a tally has to still be right in ten minutes — but stored nowhere: they last as long as the chat does, which is the call, and never reach the record or the summary. - collab-captions · Live captions from the owner device · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/TRANSCRIPTION.md Speech-to-text runs locally on whichever owner device is the host; only caption text is shared. - collab-transcript-ui · Show and hide the live transcript / captions view · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/TRANSCRIPTION.md iOS keeps the caption strip on the stage and opens the full transcript from More. - collab-artifacts · Finalized transcript and AI summary delivery · have · mac-host=works mac-join=works web=works ios=works · agent: MCP tool transcript, MCP resource meet://meeting/{room}/{meeting_id}, MCP resource meet://changes/{cursor}, /api/rooms/:slug/meetings · doc: docs/TRANSCRIPTION.md Read in Starlings once finalized, by participants with artifact access; consent-filtered. Share a link to the meeting page (it grants nothing), copy the text, or download .md or .txt: on the web from the meeting page, on the Mac and iPhone from the live transcript. Nothing is emailed and nothing is recorded. - collab-duration · Meeting duration and ended receipt · have · mac-host=works mac-join=works web=works ios=works · agent: none Joining clients explain when the owner ended the room or the session was lost. - owner-home · Home / own room status / copy room link · have · mac-host=works mac-join=not-available web=works ios=works · agent: MCP tool now Home is today on web too — the clock, then the modules in the order you chose in Settings → Home, among them your room with its link, a copy button and Schedule…, with Home / Calendar / Work / Team / Docs navigation. The member room/Meet flow belongs to Home; `/join` remains a direct public room door. On the Mac the launch card is Host mode only. Starting the room is native (see Start room, admit / reject guests). - owner-calendar · Connect Google Calendar and subscribed feeds, view the Upcoming agenda · have · mac-host=works mac-join=works web=partial ios=works · agent: MCP resource meet://calendar/{days_back}/{days_ahead}, /api/calendar/events, /api/calendar/upcoming · doc: docs/CALENDAR.md Account attachments, Google calendar selection, and subscribed-feed selection use the shared control-plane contract; refresh tokens stay encrypted there, not on the device. Home Upcoming includes selected Google calendars and subscribed feeds on Mac, iOS, and web; events marked Hide from Next are omitted there and from alerts, while remaining visible in Calendar. Web reads the Google week or month at `/calendar`, shows explicit travel duration metadata when present, and can start the Google connect flow. Its Calendars menu turns each account, Google calendar and the subscribed feeds on or off in the same owner-wide choice the Mac and iPhone read. It can create timed events, edit and delete writable ones, and answer an invitation. EventKit calendars are read on the Mac and iPhone only. - owner-calendar-window · Native Calendar views (Google + EventKit + subscriptions) · have · mac-host=works mac-join=works web=partial ios=partial · agent: none · doc: docs/CALENDAR.md Mac has the full window/sidebar and direct grid move/resize; iOS has day/2-day/3-day/week/month/agenda, source management, and deliberate long-press movement, while resize stays in the editor. Upcoming rows show explicit travel duration metadata when supplied; Starlings never estimates routes. Envisioning Internal remains writable shared context but is not a move source or destination; Duplicate is the copy path. Web shows one Google week or one month at a time, with no day or multi-day grid and no drag. It adds read-only Events, Milestones, Tasks, and Core-computed My availability layers, which it toggles only in the browser. - owner-schedule · Create a meeting invitation from the owner workspace · partial · mac-host=works mac-join=works web=partial ios=works · agent: MCP tool schedule · doc: docs/CALENDAR.md Native clients create meeting invitations; web creates timed or all-day Google events with invitees, location and notes. Adding a Starlings booking token remains native; visitor booking is separate. - owner-calendar-quick-add · Describe an event in one sentence · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/CALENDAR.md A field above the new-event form fills in title, times, place and guests from one sentence, on all three surfaces; nothing is saved until Add. One grammar in Swift and TypeScript on one fixture; a sentence it cannot read goes to the notes engine, and the form says so. - owner-calendar-from-email · Forward a mail to calendar@ and add the events it describes · have · mac-host=works mac-join=not-available web=works ios=works · agent: none · doc: docs/CALENDAR.md A member forwards a booking or an invitation to calendar@ on the inbound domain; Home proposes each event on the INVITATIONS module with Add and Discard, on all three surfaces. Add writes to the primary Google calendar. The mail body is read once and not kept. Needs INBOUND_EMAIL_DOMAIN, which production does not have yet. - owner-calendar-tools · Calendar selection, display preferences, timezone/weather, public events, and contacts · have · mac-host=works mac-join=works web=partial ios=works · agent: none · doc: docs/CALENDAR.md Source selection is one owner-wide choice that the Mac, iPhone and web Calendars menu all write, and Upcoming display policy is shared and editable from Settings on all three surfaces. Device-local grid preferences, timezone/weather, and contacts remain native. Web lists and locally toggles the read-only Events, Milestones, Tasks, and Core-computed My availability layers. Web edits all-day dates and chooses This event or All events on a recurring Google event; the Mac adds All future on EventKit calendars, which the browser does not read. - owner-admit · Start room, admit / reject guests, and end room · have · mac-host=works mac-join=not-available web=handoff ios=works · agent: meetctl host · doc: docs/OPERATIONS.md iOS hosts its owner’s permanent room: start, waiting room, admit and decline, end. Web still explains the native requirement and offers “Join my room” while the room is open, rather than starting one. - owner-host-handoff · Move the host between devices and members · have · mac-host=works mac-join=works web=not-available ios=works · agent: none · doc: docs/help/surfaces/meeting.md The host sees a Host badge on its tile, and so does everyone. Move host… hands the host to another Mac, iPhone or iPad in the call: another of the same member takes it at once; another Envisioning member is asked and, on yes, rejoins as the host, in any room. A connected Mac companion can also take the host; the current Mac drains local transcription and uploads pending text first. When the host leaves or its lease runs out, a connected companion Mac takes host on its own. The room owner keeps room settings and End meeting, and can take the host back. A live phone host is asked to hand over only when it offered the host itself. - owner-alerts · Guest knock alerts and host wake protection · have · mac-host=works mac-join=partial web=not-available ios=partial · agent: none · doc: docs/OPERATIONS.md Mac owns waiting-room sound / Dock alerts and the host wake assertion; in Join mode it still sounds and badges a knock at your own room, but holds no wake assertion. iOS posts a local knock notification while the app is running — there is no push — and holds the screen awake instead of a wake assertion. - owner-settings · Account, audio/video, captions, calendar, privacy, and update settings · have · mac-host=works mac-join=works web=partial ios=partial · agent: none Mac has the complete settings area, in either mode. Web has Settings at /settings from the header gear — account and picture, Google Calendar connection, the Gmail and Drive grant, appearance, about, sign out; audio, video and background stay in the in-meeting Settings. Privacy remains available from the site footer. iOS exposes its applicable subset. - owner-team-presence · Team presence — who at Envisioning is around, and call a peer · have · mac-host=works mac-join=works web=works ios=works · agent: MCP tool now, MCP tool search, /api/peers · doc: docs/PRESENCE.md Members only, never guests. Every client reads the roster and offers Message, Wave, Call, and Join room from a person's context menu; a video mark on the shared avatar shows a live meeting. Agents are messageable but never waved or called. - owner-profile-picture · Profile picture — one face per member, drawn everywhere a person is · have · mac-host=works mac-join=works web=works ios=works · agent: none Members only, never guests: the roster carries the version, the image is a member-gated read, and every surface falls back to the same initials. Uploaded from the Team window on macOS, the Team tab on iOS, and your own row at `/team`. Seeded once from the Google account picture, which an upload replaces. - owner-direct-messages · Direct messages between members · have · mac-host=works mac-join=works web=works ios=works · agent: MCP tool send_message, MCP resource meet://thread/{id}, MCP resource meet://changes/{cursor}, /api/threads/:id/messages, /api/threads/messages · doc: docs/CHANNELS.md Team opens DMs, notes to self and Everyone on all clients. Format message text with bold, italic, strikethrough, inline code, links, lists, quotes, and code blocks; each client renders the same Markdown subset. React to any message, including your own; copy your own text to private Quick Notes for the usual Work triage. Web supports send, older history, visible-tab polling, bounded read receipts, and per-member archive; a new message brings an archived DM back. - owner-agent-interactive-questions · Interactive questions in agent conversations · have · mac-host=works mac-join=works web=works ios=works · agent: HMAC callback /api/internal/channel-events · doc: docs/AGENTS_SURFACE.md An agent can ask a short informational question with two to eight choices in its DM or a thread it belongs to. A single choice submits immediately; people select several options and explicitly submit them. Starlings stores one winning human reply and resumes the same Eve thread session. Available in Web, Mac and iOS chats. It does not request approval or authorization. - owner-group-dms · Private group conversations · have · mac-host=works mac-join=works web=works ios=works · agent: MCP tool send_message, MCP resource meet://thread/{id} · doc: docs/CHANNELS.md A DM with more than one other person in it — same kind, same authorization, no name: the people in it are the name. Started from Team on every client, and found there again afterwards. Up to twelve people; past that the answer is Everyone. Not a channel, and not discoverable — you cannot browse to one, only be in one. - owner-channels · Channels on the work itself · have · mac-host=works mac-join=works web=works ios=works · agent: MCP tool send_message, MCP resource meet://thread/{id} · doc: docs/CHANNELS.md One conversation on each project and lead, reached by opening the subject in Work — never by making a channel. Unread routes to Work on every client: the Mac launch button, the iOS tab badge and Home card, and Work's Mine pane, which lists subjects with something new first. Web opens the subject conversation from Talk in Work. - owner-work · Projects and leads, with their tasks and issues · have · mac-host=works mac-join=works web=works ios=works · agent: MCP tool search, MCP tool open, MCP tool task, MCP tool record_decision, MCP tool set_goal, MCP resource meet://subject/{kind}/{id}, MCP resource meet://subjects/{kind}, MCP resource meet://board/{days}, /api/crm/tasks, /api/crm/mine, /api/crm/recently-closed, /api/crm/unowned, /api/crm/goals, /api/crm/decisions, /api/crm/subjects, /api/crm/organizations · doc: docs/WORK.md Work: Mine, Envisioning Projects, Projects and Leads — a foldable sidebar on Mac and a single work list on iOS, with the same work graph on web. New leads and projects require a Core organization; the Mac, iPhone/iPad and web pickers search Core and can create an organization inline. Create, assign, date, complete and file a task on GitHub; read, comment on, close and file GitHub issues on a linked project. Mine completes in place on every client (a tick on Mac and web, a swipe on iOS) and files on GitHub from the row natively. Team person details on every client also list assigned open tasks and, when GitHub is connected, issues; task rows open in the client task view, and New task starts the usual editor after a searchable project/lead choice. Recently finished work stays available for seven days on all three clients, with a Reopen action for tasks and issues. Overview lists UNOWNED below Mine on all three clients: open tasks and issues on any subject that nobody on Envisioning's side holds. All three clients create and edit supported project/lead fields through the Worker; Core stays the system of record. A member's Claude creates a lead through MCP `task` with `action: "create_lead"`, and Core posts "New Lead Created" in its channel. Web also creates, edits, comments on, closes/reopens and manages metadata for issues. - owner-goals-decisions · Goals on a project, decisions on any subject · have · mac-host=works mac-join=works web=works ios=works · agent: MCP tool search, MCP tool open, MCP tool record_decision, MCP tool set_goal, MCP tool task, MCP tool transcript, MCP resource meet://subject/{kind}/{id}, /api/crm/goals, /api/crm/decisions · doc: docs/help/surfaces/work.md A goal is a title with a status, a target date and an owner on a project; tasks and decisions point at it. A decision is something the team settled on a project, lead, partner or event, written once, with its source: typed, a channel line marked as one, a Claude through MCP, or the meeting notes. Both live in Core. Every client lists them on the subject, picks a goal on the task sheet, marks a channel line as a decision, and finds both in search; the web meeting page records or dismisses what the notes proposed. Meet#261, #262, #278. - owner-decision-queue · A queue of decisions waiting on you · have · mac-host=works mac-join=works web=works ios=works · agent: MCP tool ask_decision, MCP tool now, MCP tool open, MCP resource meet://subject/{kind}/{id}, /api/decision-asks · doc: docs/help/howto/answer-a-decision.md An agent puts a question to a member through MCP `ask_decision` — options, a recommendation and a default-by day — when nobody is in the conversation with it, instead of burying it in an issue comment. It is the first row in INBOX on every client, overdue first; one tap on an option answers it, with an optional note, and opening it shows the context and links. The agent reads the answer back through `now` or `ask_decision`. An answer on a subject is recorded as that subject's decision in Core. Past the default-by day a decision shows as overdue; the recommendation is applied only when somebody asks for it. - owner-interactions · Interaction history on a project or lead · have · mac-host=works mac-join=works web=works ios=works · agent: MCP resource meet://feed/{limit}, /api/crm/feed · doc: docs/MEETING_LOG.md A read-only History pane shows durable Core history — Starlings and Granola meetings, notes, calls, emails and web touches — with type, date, people, duration/status and a preview. - owner-core-fields · Every field on a project, lead or partner · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/CORE_REGISTRY.md A subject's Fields pane draws every field Core's registry lists for the record behind it — the project, the lead, or a partner's organization — and saves only what changed, when you say, as you. Core decides what you may change. Mac and iOS read Core with a device token; the web reads and writes through Starlings as the member and holds no Core token. The web edits text, numbers, dates, toggles and choices; relations, lists, countries and industries show read-only there and edit on the Mac, the phone or in Core. An event's fields are its CMS page. - owner-core-search · Core in search · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/CORE_REGISTRY.md Search lists each Core entity you can read. On Mac and iOS it opens that entity in Work's Core browser, and Search Core finds records across them. On the web the entity opens on Core's own page, and the palette finds Core records below Docs: a project or lead opens on its Fields in Work, anything else on its Core page. Browsing Core entity by entity stays on Mac and iOS. - owner-keep · Keep: client credentials in sealed vaults · have · mac-host=works mac-join=works web=handoff ios=works · agent: none · doc: docs/KEEP.md Keep holds client credentials in vaults the server cannot read: every value is sealed on the device under keys only the vault's members hold. Mac and iOS open Keep from Work, and a project's menu opens its vault. The web is deliberately without Keep: a browser would have to trust whoever serves its JavaScript with the keys, so a project's Keep vault on the web says to open it on Mac or iPhone and never shows vault material. - owner-issues · Issues that read like GitHub's own · have · mac-host=works mac-join=works web=partial ios=works · agent: MCP tool create_issue, /api/crm/issue · doc: docs/WORK.md Both native clients have labels, assignees, milestones, server-backed filters/sort, pagination, issue details, comments and activity, and metadata editing. iOS uses Foundation markdown with fallback text; Mac has its own richer reading surface. Web reads details/activity and supports issue actions with repository metadata pickers; description text preserves markdown source, while native reading remains richer. - owner-today-work · Today's work on Home · have · mac-host=works mac-join=not-available web=works ios=works · agent: none What is overdue and what is due today, on the Mac launch card and menu bar, on the iOS Home and on the web Home (its Work card), each row opening its subject in Work on the Tasks pane. Decided on the device, so "today" is the day you are in. Hidden when there is nothing. - owner-meet-about · Meet about a project or lead · have · mac-host=works mac-join=not-available web=not-available ios=works · agent: none Start your room from a subject in Work and the meeting is filed under it the moment it opens — notes and tasks land where the conversation is. On the Mac a filed meeting's CRM sidebar opens the subject in Work; the phone's hosting screen owns the session and has no door out. - owner-channel-events · A meeting's trail in its channel · have · mac-host=works mac-join=works web=works ios=works · agent: none A project or lead channel carries quiet lines the work graph writes: a meeting filed here, ended and how long it ran, notes filed, a task the meeting proposed and somebody accepted. Never unread on their own, never the preview. Web renders these event rows in Talk too. - owner-event-subject · A calendar event knows its project or lead · have · mac-host=works mac-join=works web=partial ios=works · agent: none File any event under a subject from the Mac inspector or the phone's event sheet; the choice is owner-wide. The web event editor names the subject an event is filed on and links to it, but cannot file one. A room started from that event is filed under it, Home and the launch card name it, and Google events arrive filed from the control plane. - owner-cli · CLI / agent control through `meetctl` · have · mac-host=works mac-join=not-available web=not-available ios=not-available · agent: meetctl status, meetctl devices, meetctl host, meetctl join · doc: docs/OPERATIONS.md Same-user local socket for status, host, lobby, media, transcript, and leave commands. - owner-updates · Native auto-update · have · mac-host=works mac-join=works web=not-available ios=not-available · agent: none · doc: docs/UPDATER.md Mac checks the signed update feed; iOS uses App Store / TestFlight distribution. - owner-call · Call an available colleague · have · mac-host=works mac-join=works web=works ios=works · agent: none Call asks an available colleague to open their room, waits up to 45 seconds, and joins through the ordinary admission flow when it opens. When a meeting is already live, the person menu offers Join room directly. - owner-answer-call · Answer an idle-room Call · have · mac-host=works mac-join=not-available web=handoff ios=works · agent: none Native clients offer Open room / Not now; the browser explains the native hosting requirement and can decline. Calls do not enable notes by default on the answering native device; notes can be turned on deliberately. - owner-task-reader · Read a task directly from Mine · have · mac-host=works mac-join=works web=works ios=works · agent: none Every client opens task details and subject navigation from Mine, with edit and completion actions. iOS also opens the same reader from a subject task list. - invite-token-context · Token invite shows booking title / time / subject · have · not built · agent: none Booked links reveal that meeting only; bare slug stays opaque. - book-reschedule · Guest reschedules / cancels a booking · have · not built · agent: none Handled on Core’s pages so calendar and CRM stay in sync. - meeting-passcode · Meeting password / passcode · dont-want · not built · agent: none Lobby + owner admit is the gate. - one-off-room-codes · Disposable / one-off room codes · dont-want · not built · agent: none Permanent owner rooms only. - dial-in · Dial-in / PSTN phone audio · dont-want · not built · agent: none WebRTC clients only. - sip-rooms · SIP / hardware room systems · dont-want · not built · agent: none Out of scope. - output-device · Speaker / output device selection · have · not built · agent: none Mac Settings, in-meeting menus, meetctl; web prejoin + settings where the browser supports it; iOS route picker. - share-region · Share a region of the screen · want · not built · agent: none Natural third option in the Mac picker. - share-tab · Share one browser tab · partial · not built · agent: none Browser guests already can; Mac host shares a whole window. - share-computer-audio · Share computer audio with screen · tbd · not built · agent: none Common peer feature; not a first-class control today. - end-for-all · End meeting for all (host) · have · not built · agent: none Owner finalizes the room and notes path. - rejoin · Rejoin after brief disconnect · have · not built · agent: none Admitted credential → fresh token while the lease is live. - active-speaker · Speaker / active-speaker emphasis · partial · not built · agent: none Screen share auto-pins on web; no full Speaker View. - pin-spotlight · Pin / spotlight a participant · dont-want · not built · agent: none Removed. A screen share takes the big tile on its own; there is no local pin and no host spotlight. - gallery-speaker-toggle · Gallery vs Speaker view toggle · tbd · not built · agent: none Starlings is grid-first today. - full-screen · Full screen meeting window · partial · not built · agent: none OS window chrome; no dedicated in-app stage mode. - picture-in-picture · Picture-in-picture / pop-out video · partial · not built · agent: none Optional Mac self-view only; it can dock back to the stage. There is no generic participant pop-out. - together-mode · Immersive / together mode layouts · dont-want · not built · agent: none Novelty layouts. - chat-attachments · Chat file attachments · dont-want · not built · agent: none Text only; no file plane. - raise-hand · Raise hand · have · not built · agent: none Stays up until lowered, survives reconnects; badge on the tile, queue count on People. The host can lower every hand at once. - people-panel · Participant list panel · have · not built · agent: none People panel on every client with per-person mic, camera, and share state; host actions (mute, remove) stay native. - private-chat · Private / DM chat · dont-want · not built · agent: none One room chat. - whiteboard · Whiteboard · dont-want · not built · agent: none Use external docs. - in-call-docs · Collaborative docs / slides in-call · dont-want · not built · agent: none Out of scope. - polls · Polls / quizzes · dont-want · not built · agent: none Out of scope. - breakout-rooms · Breakout rooms · dont-want · not built · agent: none Explicit non-goal. - screen-annotation · Annotation on shared screen · dont-want · not built · agent: none Out of scope. - in-meeting-apps · Third-party in-meeting apps · dont-want · not built · agent: none No marketplace. - ai-summary · AI meeting summary · have · not built · agent: MCP tool transcript · doc: docs/TRANSCRIPTION.md Available in Starlings after finalization to participants with artifact access. - cloud-recording · Cloud A/V recording + playback URL · want · not built · agent: none · doc: docs/PRIVACY.md Proposed, not decided. Starlings does not record today; consent and retention still open. - local-recording · Local A/V recording · dont-want · not built · agent: none Cloud recording is the supported path if it ships. - livestream · Livestream to YouTube / Twitch · dont-want · not built · agent: none Out of scope. - artifact-management · Artifact viewer / delete / export · want · not built · agent: none Needed before broad transcript rollout. - crm-ingest · CRM / meeting log ingest · have · not built · agent: none · doc: docs/MEETING_LOG.md Hosted Starlings sessions and Granola notes can sync finalized meeting text into Core interactions; deployment needs the optional Core secret and migration. - brand-backgrounds · Virtual / brand backgrounds · partial · not built · agent: none Brand Block themes; not arbitrary image upload. - touch-up-filters · Beauty / touch-up filters · dont-want · not built · agent: none Out of scope. - noise-suppression · Browser noise suppression / AEC · have · not built · agent: none Explicit capture defaults on web. - voice-isolation · Advanced voice isolation · tbd · not built · agent: none OS-level on Mac; not a Starlings control yet. - hd-video · HD / 1080p video toggle · partial · not built · agent: none Capture around 720p-class; no user HD switch. - low-light · Low-light adjustment · dont-want · not built · agent: none Out of scope. - lock-meeting · Lock meeting (no new joins) · partial · not built · agent: none Implicit when the lease dies; no explicit lock toggle. - co-host · Co-host / alternate host · dont-want · not built · agent: none Exactly one verified Envisioning owner per room. - security-menu · Host tools security menu · dont-want · not built · agent: none Single-owner model. - domain-restricted-hosting · Domain-restricted hosting · have · not built · agent: none · doc: docs/SECURITY.md Google Workspace @envisioning.com / @envisioning.io owners only. - mac-host-app · macOS native host app · have · not built · agent: none AppKit Host mode. - mac-join · macOS native join · have · not built · agent: none Same admit contract as the browser. - browser-guest · Browser guest · have · not built · agent: none Primary guest path. - windows-linux · Windows / Linux native · dont-want · not built · agent: none Browser covers guests. - ios-client · iOS / iPad client · have · not built · agent: none SwiftUI Host and Join: start your room, admit at the door, transcribe on device, file the meeting. Screen sharing from iOS is still ahead. - android-client · Android client · tbd · not built · agent: none Browser may be enough. - meeting-info · Meeting info panel · partial · not built · agent: none Invite link + room status; no Zoom-style Meeting Info sheet. - webinar-roles · Webinar / presenter–audience roles · want · not built · agent: none Backlog; do not market webinars until roles and load work exist. - capacity-limit · Capacity hard limit (~100) · have · not built · agent: none Safety guardrail, not a webinar product. - one-wire-contract · One wire contract for every client · have · not built · agent: none · doc: docs/DOCUMENTATION.md Every shape the server sends or accepts is written once, as a schema. The web reads it as types, and the Mac, iPhone and watch read and write Swift generated from it. A field that changes fails the build, not the phone. - centaur-room · Notetakers attend as declared meeting participants · partial · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/CENTAUR.md The listening slice works on every client; the row stays partial for the speaking half. A link-joining recording notetaker declares itself, waits for owner admission, is marked across the room, can be refused per room, and leaves a transcript consent line. Speaking agents, their room-side worker, and live MCP tools remain planned. - owner-docs · Docs: the corpus, read and written from Starlings · have · mac-host=works mac-join=works web=works ios=works · agent: MCP tool docs_write, MCP resource meet://document/{id} · doc: docs/DOCS.md The fifth surface: newsletters, reports, research, notes and everything written from Starlings, on the shared shell. Documents on a subject in Work are the contextual slice of the same store. Connecting is one act in Settings → Account. - owner-docs-graph · Docs graph view · have · mac-host=works mac-join=works web=works ios=works · agent: none · doc: docs/help/surfaces/docs.md See up to 5,000 accessible Docs documents in the same graph across Mac, iPhone, iPad, and web. Folders group and color nodes; resolved wikilinks draw connections and pull related nodes closer. Filter groups, pan, zoom, fit visible nodes, and open documents. - cms-content · Website content from a Claude · have · not built · agent: MCP tool cms, MCP resource meet://cms/registry, MCP resource meet://core/registry · doc: docs/MCP.md A member's Claude reads and writes envisioning.com content — events, and the other CMS entities the registry publishes — through Starlings, as the member, with a cms-editor PAT. On the web, a member with that grant also edits an event's CMS record from the Calendar and Work (meet#530). The same tool lists and reads organizations, contacts, interactions, projects and leads, creates and edits all five (a note is an interaction), and deletes an organization only when no record points at it, as the member. - agent-meeting · An agent starts a meeting · have · not built · agent: MCP tool start_meeting, MCP tool schedule, meetctl host · doc: docs/MCP.md `start_meeting` schedules the meeting in the member's own room and asks their devices to open it: the ask rides `rings` with a 45-second life, and the member answers Open room or Not now. The Worker never hosts and nothing opens a microphone on its own, so an unanswered ask leaves the meeting on the calendar and the room shut. A meeting opened this way transcribes, because it is convened; a walk-up from Call does not. - admin-agent-activity · Agent activity in Admin · have · mac-host=not-available mac-join=not-available web=works ios=not-available · agent: none · doc: docs/ADMIN.md Web Admin › Agents shows the last 30 days of handoffs, runtime acceptance or refusal, final replies observed by Starlings, and watchdog reset outcomes. It does not show work inside an agent runtime or model costs. --- # Glossary - **owner**: An authenticated Envisioning member (`@envisioning.com` / `@envisioning.io`) who hosts from the Mac or iOS app. Not a role a guest can hold. [docs/PRIVACY.md] - **host**: The one device that runs a meeting: it admits guests, renews the lease and runs the recognizer. Another device of the same member joins as a companion with its microphone off. Also the product mode for running a room from a native client. Not the Google identity check; that is the owner. Called "the chair" until 5.8.9. [docs/SURFACES.md, docs/TRANSCRIPTION.md, docs/IOS_HOST.md] - **guest** (visitor): Anyone who is not the owner in a room: joining from a browser, Mac Join or iOS. No account. Name and email required; notes consent optional. [docs/PRIVACY.md, docs/SURFACES.md] - **peer**: Another Envisioning member, in presence copy and `GET /api/peers`. Not "user", not "contact" (that is Core). [docs/SURFACES.md] - **agent**: A non-human peer on the Team roster with its own runtime. Messageable, never waved or called; takes cards by hand-off. [docs/AGENTS_SURFACE.md] - **room**: The permanent slug and permalink, `/room/`. Not the live session. [docs/SURFACES.md] - **meeting**: The live session with a `meeting_id`. Chrome says meeting once media is up; permalinks say room. [docs/SURFACES.md] - **the internal room** (/room/team): The one room whose audience is Envisioning, addressed `/room/team`. Membership is the admission: no waiting room, no booking door. Written as the address, never "the team room". [docs/adr/0001-internal-room.md] - **waiting room**: The guest-facing admission surface. Every guest- and host-facing string says waiting room. [docs/SURFACES.md] - **lobby**: The same queue on the wire and in `meetctl`: `LobbyStatus`, the join-request routes. Never renamed casually. [docs/SURFACES.md] - **knock** (ask to join): What a guest does at a room's door. Answered by admitting. Not a colleague gesture. [docs/SURFACES.md] - **prejoin**: The camera and microphone check before a knock or a go-live. Not "preflight". [docs/SURFACES.md] - **launch**: The owner's idle home on the Mac: waiting room list, upcoming, Start room. [docs/SURFACES.md] - **stage**: The live video grid. [docs/SURFACES.md] - **surface**: What the person is looking at, a main page: Home, Calendar, Work, Team, Docs, and the guest flow. Each has a reference page under `docs/help/surfaces/`. [docs/SURFACES.md, scripts/docs-frontmatter.mjs] - **Home**: Today: the clock, the modules in your order, your room. ⌘1. [docs/SURFACES.md] - **Work**: The subject surface: projects, leads, partners, events, with tasks, issues, documents and Talk. ⌘3. Core stays the CRM. [docs/SURFACES.md, docs/WORK.md] - **Team**: The people surface: who is around, and reaching them. ⌘4. Not the meeting's People panel. [docs/SURFACES.md] - **Docs**: The fifth surface: the whole corpus, read and written from Starlings. ⌘5. Documents on a subject are the contextual slice. [docs/SURFACES.md, docs/DOCS.md] - **Mine**: Everything assigned to you across every subject. Inside Work, never a surface of its own. [docs/SURFACES.md] - **INBOX**: What needs you, in Work; each row leaves when resolved. [docs/SURFACES.md] - **Sales**: An optional section inside Work for leads. Not a tab. [docs/SURFACES.md] - **Core**: Envisioning Core, the CRM. Starlings writes meetings into it as interactions and reads subjects, tasks and issues from it. Also the block beneath Work that edits Core rows in place. [docs/MEETING_LOG.md, docs/CORE_REGISTRY.md] - **Settings**: App preferences. ⌘, on the Mac, the gear elsewhere. Not a surface. Qualify "in-meeting Settings" when you mean that. [docs/SURFACES.md] - **subject**: One project, event, lead or partner: the object everything in Work hangs off. A channel is one view of a subject. [docs/SURFACES.md, docs/CHANNELS.md] - **Subject Overview**: A subject's landing state: Talk beside Tasks / Issues / Documents / History. Not Work's global Overview. [docs/SURFACES.md] - **Talk**: The one conversation on a subject. [docs/SURFACES.md, docs/CHANNELS.md] - **History** (Interactions): A subject's pane merging Core interactions with its event trail, by time. The type `CrmInteraction` and web's `pane=interactions` keep the old name. [docs/SURFACES.md, docs/TIMELINE.md] - **thread**: One conversation. The parent is polymorphic: none for a DM, a subject for Talk. [docs/SURFACES.md, docs/CHANNELS.md] - **Messages** (DM): Direct messages between members, reached through a person in Team. Not "chat". [docs/SURFACES.md] - **Groups**: Team's rail block: Everyone pinned, then the private groups, newest message first. A group is a DM with more than one other person; the people are its name. [docs/SURFACES.md] - **Chat**: The message panel inside a meeting. Not a destination. [docs/SURFACES.md] - **Search** (⌘K, the palette): One box that finds anything and jumps anywhere. Every per-surface field is the same search with a fixed scope. [docs/SURFACES.md, fixtures/search-rows.json] - **card**: A task or an issue on the board: the anchor every agent turn names. Stored in Core or GitHub, never in Starlings. [docs/BOARD.md] - **artifact**: The finished meeting record, transcript segments plus notes, as delivered to the control plane and to consenting recipients. [docs/TRANSCRIPTION.md, docs/MEETING_LOG.md] - **the outbox**: `MeetingArtifactOutbox`, one actor shared by the Mac and iOS clients: idempotent by segment UUID, crash-safe, text only. [docs/TRANSCRIPTION.md] - **ambient capture** (notepad mode): Transcribing a call Starlings does not host: local audio, local STT, the same outbox and artifact path. No bot in the foreign call. [docs/AMBIENT_CAPTURE.md] - **capability**: One row of `packages/contracts/src/capabilities.ts`: what Starlings does, where it works, and the doors an agent has into it. Not the Worker's role capabilities. [packages/contracts/src/capabilities.ts, docs/DOCUMENTATION.md] - **Picture** (avatar): A member's own uploaded face. Initials are what a person without one looks like. The wire keeps `avatar`. [docs/SURFACES.md] - **Message**: Asks for nothing now; it waits in a thread. [docs/SURFACES.md] - **Wave** (Ring): A nudge from Team: one chime on a running client, gone in 45 seconds, no claim anyone was reached. Was Ring until 1.6.0; the wire keeps `/api/peers/ring`. [docs/SURFACES.md, docs/PRESENCE.md] - **Call**: Into a colleague's room: a knock if a meeting runs, an ask (Open room / Not now) if they are only available. A room opened this way does not transcribe. [docs/SURFACES.md] - **Hand off**: Giving a card to an agent: a message to the agent carrying the card. Nothing new on the wire. [docs/SURFACES.md, docs/BOARD.md] - **Welcome**: The room noticing you arrive: a chime and a ring on your own tile. Not a gesture; nothing sends it. [docs/SURFACES.md] - **intent**: What a person says about themselves: Available, Focused. A second axis beside the evidence ladder, never a seventh status. [docs/SURFACES.md, docs/PRESENCE.md] - **Unavailable** (dnd): A self-set closed door, always with an end. `dnd` on the wire. [docs/SURFACES.md] - **WorkStage**: The one stage vocabulary, `queued / doing / review / blocked / done / dropped`, computed from the row and never stored. Pinned by `fixtures/work-items.json`; change the fixture first. [docs/BOARD.md, fixtures/work-items.json] - **WorkSection**: The date-section vocabulary beside `WorkStage`. Answers when, not where in the pipeline. [docs/BOARD.md] - **phase**: `MeetingPhase`, the connection lifecycle: setup, connecting, connected, ended, failed. Not a page. [docs/SURFACES.md] - **the lease**: The owner device's proof of presence that the control plane gates admission and token exchange on. [docs/SECURITY.md] - **control plane** (the Worker): The Cloudflare Workers, Durable Objects, Queues and D1 side. Holds room state, consent, transcript text, summaries. Never media. [docs/PRIVACY.md] - **the factory**: The automation that acts on `agent:*` labels on GitHub issues and opens draft PRs. [docs/BOARD.md] - **the board**: A projection: Core tasks and GitHub issues read through `WorkStage`. No Starlings-side table holds a card or a column. No kanban in front of users. [docs/BOARD.md] - **the act record**: Who acted, under whose authority, on what, and how it went: one row per act in `mcp_calls` and `admin_audit`. Never aggregated. Not a status, and never written as "the ledger". [docs/LEDGER.md, docs/MCP.md] - **the account ledger**: What the organization used: meetings held and the funnel around them, aggregated for Admin. `meetings_ledger` and `usage_events`. Always qualified, because two other things are called a ledger. [docs/LEDGER.md, docs/ADMIN.md] - **MCP** (/mcp, Connected Claudes): The door a member's Claude uses to read and write Starlings. OAuth pairing on `/connect`; every call recorded. [docs/MCP.md] - **meetctl**: The Mac CLI over a local socket: `status`, `devices`, `host`, `join`, `lobby`. Speaks wire vocabulary. [docs/OPERATIONS.md, CLI/MeetCLI.swift]