Phase 4
Message bones

Source: c137 App Messaging — Phase 2, 2026-11-09 · design-local components in app/components/messaging/, headed for the layer and for the kit (c131)

One component renders every message between the control plane and the person at the keyboard. The schema is bones.md: a subject of sixty characters, a body of three sentences (what happened, why it matters, what to do next), up to three actions, a line that says why you are seeing it, and a state that always ends. Below, the ten examples and the two for the operator's inbox, each across the five states. Severity words are attention and required, in orange; the card is never red.

Card state
Each example also shows its inbox row in all five states; a state a type cannot reach says so.
E1

enforcement-notice

attention · to the person · c137V1 if Tyler rules it in
HQ14:02AttentionNew

A paste into ChatGPT was blocked

At 14:02 qcontrol blocked a paste into chat.openai.com because the text held an AWS access key.The key stayed on this machine; your company's policy Secrets in prompts keeps credentials out of AI tools.If this was work you needed to do, contact IT from here; otherwise nothing more happens.

Why am I seeing this: Policy Secrets in prompts, enforced for Engineering since 3 November

What the OS shows · notify by default
A paste into ChatGPT was blockednow
HQ · Policy Secrets in prompts, enforced for Engineering since 3 November
At 14:02 qcontrol blocked a paste into chat.openai.com because the text held an AWS access key.
OpenContact IT
qcontrol on· connected: HQ
3 harnesses
Messages1
A paste into ChatGPT was blocked
Open app…
New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired
E2

enforcement-notice

attention · local mode · to the person · c137V1 if Tyler rules it in
qcontrol on this machine09:41local · no HQAttentionNew

An upload to Claude was blocked

At 09:41 qcontrol blocked the upload of customer-export.csv to claude.ai because the file holds email addresses and phone numbers.The file stayed here; this machine's policy keeps personal data out of AI tools.If this upload was work you needed to do, write to it-help@acme.example, the contact named in this machine's qcontrol configuration.

Why am I seeing this: Policy Personal data in prompts, from this machine's qcontrol configuration; no HQ connected

What the OS shows · notify by default
An upload to Claude was blockednow
qcontrol on this machine · Policy Personal data in prompts, from this machine's qcontrol configuration; no HQ connected
At 09:41 qcontrol blocked the upload of customer-export.csv to claude.ai because the file holds email addresses and phone numbers.
OpenWrite to IT
qcontrol on· local
3 harnesses
Messages1
An upload to Claude was blocked
Open app…
New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired
E3

hq-notice

info · to the person · c137
HQ · Dana WhitfieldSat 10:00· to 42 machinesNew

AI tools: what changes on Monday

From Monday 17 November, pasting source code into AI tools other than GitHub Copilot and Claude for Work will be blocked on company laptops.The change comes out of October's security review and applies to every team.Nothing to do now; if your work needs another tool, ask IT before Monday.

Why am I seeing this: Dana Whitfield at HQ sent this to every team

What the OS shows · inbox by default

No OS notification by default for this type: it reaches the inbox quietly. The person can raise it to notify.

qcontrol on· connected: HQ
3 harnesses
Messages1
AI tools: what changes on Monday
Open app…
New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired
E4

identity-confirmation

info · to the person · c137 · c131V1: flows
HQ11:20New

This machine is connected to HQ

MBP-2291 is now connected to HQ at hq.acme.example as mark@acme.example.HQ manages this machine's configuration from there, and what qcontrol finds here is reported to it.Nothing to do; Status shows what is reported, and Connect lets you disconnect if this is not your machine.

Why am I seeing this: You connected this machine from Connect at 11:20

What the OS shows · tray by default

No OS notification by default for this type: it reaches the inbox and the tray. The person can raise it to notify.

qcontrol on· connected: HQ
3 harnesses
Messages1
This machine is connected to HQ
Open app…
New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired
E5

censure

required · requires acknowledgement · to the person · c137
HQ · Dana WhitfieldFri 16:30Required · 1 of 3 this monthNew

From HQ: stop using a personal ChatGPT account for work

Written by Dana Whitfield at HQ and shown as sent.

Over the last two weeks, work documents were pasted into a personal ChatGPT account from this machine.Company data in a personal account sits outside our agreement with OpenAI and cannot be recalled.Stop, use the company's Claude for Work account instead, and acknowledge this notice.

Why am I seeing this: Written by Dana Whitfield at HQ and shown as sent; Qpoint does not edit censures

What the OS shows · notify by default
From HQ: stop using a personal ChatGPT account for worknow
HQ · Dana Whitfield · Written by Dana Whitfield at HQ and shown as sent; Qpoint does not edit censures
Over the last two weeks, work documents were pasted into a personal ChatGPT account from this machine.
OpenContact IT
qcontrol on· connected: HQ
3 harnesses
Messages1
From HQ: stop using a personal ChatGPT account for work
Open app…
New
Seen
Acknowledged
Done

Not reachable: acknowledged is its terminal state.

Expired

Not reachable: required messages never expire.

E6

responsibility

attention · requires acknowledgement · to the person · c137
HQ · Dana WhitfieldThu 09:12AttentionNew

You now own the Jira MCP server

HQ made you the owner of the Jira MCP server the Platform team uses, from today.The owner is asked before the server is blocked and reviews its tool list when it changes.Acknowledge to take it on, or reply if this should be someone else.

Why am I seeing this: Dana Whitfield at HQ assigned this to you

What the OS shows · tray by default

No OS notification by default for this type: it reaches the inbox and the tray. The person can raise it to notify.

qcontrol on· connected: HQ
3 harnesses
Messages1
You now own the Jira MCP server
Open app…
New
Seen
Acknowledged
Done

Not reachable: acknowledged is its terminal state.

Expired
E7

training-assignment

attention · to the person · c133
HQSat 15:40AttentionNew

A three-minute training: secrets in prompts

Twice this week a credential was pasted into an AI tool from this machine, and both pastes were blocked.A three-minute training shows what to paste instead and how to get a key rotated when one slips.Take it when you have a moment; completion goes into the audit log as proof of correction.

Why am I seeing this: Policy Secrets in prompts assigns this training after two blocked pastes

What the OS shows · tray by default

No OS notification by default for this type: it reaches the inbox and the tray. The person can raise it to notify.

qcontrol on· connected: HQ
3 harnesses
Messages1
A three-minute training: secrets in prompts
Open app…
New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired
E8

diagnostics-request

attention · to the person · c137
HQ · Dana Whitfield10:05AttentionNew

HQ asks for diagnostics from this machine

Dana at HQ asked for this machine's qcontrol logs and effective configuration from the last 24 hours, to look into the slow starts you reported.The package holds qcontrol's own logs and settings and nothing of your own files or messages; you can read it before it goes.Review and send, or decline; Dana is told either way.

Why am I seeing this: Dana Whitfield at HQ asked, about the slow starts you reported on 8 November

What the OS shows · tray by default

No OS notification by default for this type: it reaches the inbox and the tray. The person can raise it to notify.

qcontrol on· connected: HQ
3 harnesses
Messages1
HQ asks for diagnostics from this machine
Open app…
New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired
E9

sensor-state

attention · to the person · c137 · c131
qcontrol on this machine10:20AttentionNew

qcontrol stopped seeing Safari

Since 10:15 qcontrol has not seen traffic from Safari on this machine; other apps are still covered.Policies cannot act on what is not seen, so Safari is unprotected until this is fixed, and HQ sees the same gap.Quit and reopen Safari; if the Status line stays amber, contact IT from here.

Why am I seeing this: qcontrol lost its tap on Safari at 10:15 and it has stayed lost for 5 minutes

What the OS shows · tray by default

No OS notification by default for this type: it reaches the inbox and the tray. The person can raise it to notify.

qcontrol on· connected: HQ
3 harnesses
Messages1
qcontrol stopped seeing Safari
Open app…
New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired
E10

contact-it

info · to the operator · c137V1 if Tyler rules it in
Mark Parson · MBP-229114:11New

Re: A paste into ChatGPT was blocked

What were you doing?
Pasting a config file to get help with a deploy script; I did not see the key in it.
What do you need?
A way to share config files safely, or an exception for this project.
Anything else?
The key belongs to a test account.

Attached automatically: the policy, the finding, this machine and the time.

Why am I seeing this: You contacted IT from the notice "A paste into ChatGPT was blocked"

No action; it ends when it has been read.
New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired
grant-notice

grant-notice

info · to the operator · c136
HQ09:00New

Qpoint has access to this plane until Thursday 14:00

A grant you approved opened at 09:00: fix, operate level, scoped to the ClickHouse layer, for Priya Nair at Qpoint.Every action under it carries grant G-142 in the audit log, and you can revoke it at any moment.Nothing to do; a summary arrives when it closes.

Why am I seeing this: Grant G-142, approved by Dana Whitfield on 8 November

New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired
reply

reply

info · to the person · c137
HQ · Dana Whitfield15:30New

Re: A paste into ChatGPT was blocked

Thanks, that explains it.From today, config files in the deploy repo are excepted for the Platform team.If a key slips again you will still see a notice, and that is all that happens.

Why am I seeing this: Dana Whitfield at HQ answered your message of 14:11

What the OS shows · tray by default

No OS notification by default for this type: it reaches the inbox and the tray. The person can raise it to notify.

qcontrol on· connected: HQ
3 harnesses
Messages1
Re: A paste into ChatGPT was blocked
Open app…
New
Seen
Acknowledged

Not reachable: no acknowledgement is required.

Done
Expired

States and transitions

Every message ends (R5). Terminal states are done, expired, and acknowledged when nothing is left to complete. What the plane records: created, delivered, acknowledged, done, expired; seen only where an acknowledgement is required; never dwell or read time (R6).

EventFromToWho
delivered (the OS notification, if any, posts now)—newthe app
opened in the inbox, or the notification clickednewseenthe person
Acknowledge pressednew · seenacknowledgedthe person
the linked action completes (training, diagnostics, contact IT, a confirmation opened)new · seen · acknowledgeddonethe app
Dismiss (info only)new · seendonethe person
expires_at passes (info 30 days, attention 90, required never)new · seenexpiredthe app
the operator recalls it; the card says who withdrew itnew · seenexpired (recalled)the operator

Rules and calls

  • Three sentences, one paragraph. The slots (what happened · why it matters · what to do next) are the authoring structure and the send form's fields; the card reads them as prose. A censure is HQ's words, labelled and never rewritten (D6).
  • Orange, never red. Attention and required share the brand's warning colour; a blocked action is named in the sentence, not painted on the card. Info has no colour.
  • Acknowledge is the app's. The sender sets requires_ack; the app adds the button. It is never a notification button: acknowledging means having read the card.
  • The required count rides on the pill ("Required · 1 of 3 this month"), so the override is visible where it acts.
  • Why am I seeing this is a line on every card, fixed at send time; never a dialog.
  • Ended messages stay. The row greys and says how it ended; the inbox is a record. A recalled message says who withdrew it.
  • For the layer and the kit. The card, the notification and the tray line are design-local (app/components/messaging/). The same bones render in GPUI (c131) from the types entry; the web card goes to the layer when c134's operator side needs it.

Qpoint Brand Style Guide