[{"data":1,"prerenderedAt":2894},["ShallowReactive",2],{"cycle-doc-design-c137-bones.md":3},{"cycle":4,"project":7,"path":10,"title":11,"toc":12,"ast":25},{"id":5,"title":6},"c137","App Messaging, Overseer and Citizen",{"id":8,"label":9},"design","Design","bones.md","c137 Phase 1: the bones",[13,14,15,16,17,18,19,20,21,22,23,24],"1. The message","2. Types","3. Severity","4. Actions","5. States and transitions","6. The `required` rule and its count","7. Sender, recipient, thread","8. Mute keys","9. The send side (for c134)","10. Ten example messages","11. Voice check","12. What lands where",{"type":26,"children":27},"root",[28,96,102,114,126,131,149,721,726,750,859,864,869,878,1005,1010,1019,1338,1457,1470,1481,1602,1607,1616,1623,1650,1656,1771,1776,1811,1816,1910,1915,1928,1941,1964,1983,2000,2021,2042,2068,2083,2096,2117,2135,2153,2171,2192,2217,2226,2239,2266,2284,2293,2306,2326,2344,2359,2372,2392,2410,2437,2450,2470,2488,2510,2523,2543,2561,2577,2590,2618,2652,2662,2668,2693,2706,2711,2747,2752],{"type":29,"tag":30,"props":31,"children":32},"element","p",{},[33,40,42,47,49,56,58,64,66,72,74,79,81,87,89,94],{"type":29,"tag":34,"props":35,"children":36},"strong",{},[37],{"type":38,"value":39},"text","Written:",{"type":38,"value":41}," 2026-11-09. ",{"type":29,"tag":34,"props":43,"children":44},{},[45],{"type":38,"value":46},"Reader:",{"type":38,"value":48}," c131's executor (the ",{"type":29,"tag":50,"props":51,"children":53},"code",{"className":52},[],[54],{"type":38,"value":55},"types",{"type":38,"value":57}," entry lands with c131 Phase 1 in ",{"type":29,"tag":50,"props":59,"children":61},{"className":60},[],[62],{"type":38,"value":63},"..\u002Fqnative",{"type":38,"value":65},"; nothing is written there by this cycle), c134's executor (the plane's ",{"type":29,"tag":50,"props":67,"children":69},{"className":68},[],[70],{"type":38,"value":71},"types\u002Fapi\u002Fmessages.ts",{"type":38,"value":73}," twin), c133 and c136 (their one type each), Mark at the review stop.\n",{"type":29,"tag":34,"props":75,"children":76},{},[77],{"type":38,"value":78},"Status:",{"type":38,"value":80}," a specification, written as the wire shape. Field names are ",{"type":29,"tag":50,"props":82,"children":84},{"className":83},[],[85],{"type":38,"value":86},"snake_case",{"type":38,"value":88}," on the wire; Rust and TypeScript follow their own casing. Timestamps are RFC 3339 in UTC; the app renders them in the machine's zone.\n",{"type":29,"tag":34,"props":90,"children":91},{},[92],{"type":38,"value":93},"Rules it carries:",{"type":38,"value":95}," R1 one schema for every message · R2 three sentences · R3 the citizen controls delivery, the overseer controls content · R4 nothing is alarming · R5 every message ends · R6 the record is honest and bounded · R7 use the OS.",{"type":29,"tag":97,"props":98,"children":100},"h2",{"id":99},"_1-the-message",[101],{"type":38,"value":13},{"type":29,"tag":103,"props":104,"children":108},"pre",{"className":105,"code":107,"language":38},[106],"language-text","Message {\n  id:            MessageId            \u002F\u002F ULID: sortable by creation time, unique across planes and local mode\n  type:          MessageType           \u002F\u002F §2\n  severity:      'info' | 'attention' | 'required'   \u002F\u002F §3; `required` is also the one override (§6)\n  from:          Sender                \u002F\u002F §7\n  to:            Recipient             \u002F\u002F §7\n  batch?:        BatchId               \u002F\u002F a send to a team fans out to one message per endpoint; they share a batch\n\n  subject:       string                \u002F\u002F one line, 60 characters at most; the OS notification's title\n  body: {                              \u002F\u002F R2: three sentences, in this order, each 200 characters at most\n    happened:    string                \u002F\u002F   what happened\n    matters:     string                \u002F\u002F   why it matters\n    next:        string                \u002F\u002F   what to do next\n  }\n  verbatim:      boolean               \u002F\u002F D6: a censure is HQ's words, shown as written and labelled; never rewritten by us\n  actions:       Action[]              \u002F\u002F 0 to 3; §4\n  links?: {                            \u002F\u002F what the message points at, for `open-page` and for the operator's record\n    finding?: FindingId, policy?: PolicyId, training?: TrainingId, grant?: GrantId, endpoint?: EndpointId, page?: Route\n  }\n  why:           string                \u002F\u002F \"why am I seeing this\": the policy or the person that caused it; fixed at send time\n\n  requires_ack:  boolean               \u002F\u002F the person must press Acknowledge for the message to end\n  expires_at?:   Timestamp             \u002F\u002F §5: none for `required`; per-type default otherwise\n  created_at:    Timestamp             \u002F\u002F when the sender created it\n  delivered_at?: Timestamp             \u002F\u002F when this app received it (local mode: equals created_at)\n\n  state:         State                 \u002F\u002F §5\n  state_at:      Timestamp\n  state_reason?: 'recalled' | 'expired' | 'declined'\n\n  thread:        MessageId             \u002F\u002F the root message of the conversation this belongs to (itself for a root)\n  in_reply_to?:  MessageId             \u002F\u002F set on replies\n  mute_key?:     string                \u002F\u002F what a mute attaches to: `policy:\u003Cid>` or `thread:\u003Cid>` (§8)\n  local:         boolean               \u002F\u002F true when no plane is involved: the record exists on this machine only\n}\n",[109],{"type":29,"tag":50,"props":110,"children":112},{"__ignoreMap":111},"",[113],{"type":38,"value":107},{"type":29,"tag":30,"props":115,"children":116},{},[117,119,124],{"type":38,"value":118},"What is ",{"type":29,"tag":34,"props":120,"children":121},{},[122],{"type":38,"value":123},"not",{"type":38,"value":125}," in the message: a read time, a dwell time, a device fingerprint, the person's reply drafts, the delivery channel it took (the channel is the citizen's setting, not the record's business: R3, R6).",{"type":29,"tag":97,"props":127,"children":129},{"id":128},"_2-types",[130],{"type":38,"value":14},{"type":29,"tag":30,"props":132,"children":133},{},[134,136,147],{"type":38,"value":135},"The fifteen kept in ",{"type":29,"tag":137,"props":138,"children":140},"a",{"href":139},"\u002Fcycles\u002Fdesign\u002Fc137\u002Fdoc\u002Finventory",[141],{"type":29,"tag":50,"props":142,"children":144},{"className":143},[],[145],{"type":38,"value":146},"inventory.md",{"type":38,"value":148},". The wire word is the type id.",{"type":29,"tag":150,"props":151,"children":152},"table",{},[153,202],{"type":29,"tag":154,"props":155,"children":156},"thead",{},[157],{"type":29,"tag":158,"props":159,"children":160},"tr",{},[161,167,172,177,186,197],{"type":29,"tag":162,"props":163,"children":164},"th",{},[165],{"type":38,"value":166},"Type id",{"type":29,"tag":162,"props":168,"children":169},{},[170],{"type":38,"value":171},"Direction",{"type":29,"tag":162,"props":173,"children":174},{},[175],{"type":38,"value":176},"Default delivery",{"type":29,"tag":162,"props":178,"children":179},{},[180],{"type":29,"tag":50,"props":181,"children":183},{"className":182},[],[184],{"type":38,"value":185},"requires_ack",{"type":29,"tag":162,"props":187,"children":188},{},[189,195],{"type":29,"tag":50,"props":190,"children":192},{"className":191},[],[193],{"type":38,"value":194},"required",{"type":38,"value":196}," allowed",{"type":29,"tag":162,"props":198,"children":199},{},[200],{"type":38,"value":201},"Owner",{"type":29,"tag":203,"props":204,"children":205},"tbody",{},[206,243,278,312,348,383,417,450,484,518,553,586,620,653,687],{"type":29,"tag":158,"props":207,"children":208},{},[209,219,224,229,234,239],{"type":29,"tag":210,"props":211,"children":212},"td",{},[213],{"type":29,"tag":50,"props":214,"children":216},{"className":215},[],[217],{"type":38,"value":218},"enforcement-notice",{"type":29,"tag":210,"props":220,"children":221},{},[222],{"type":38,"value":223},"plane → person, or qcontrol → person (local)",{"type":29,"tag":210,"props":225,"children":226},{},[227],{"type":38,"value":228},"notify",{"type":29,"tag":210,"props":230,"children":231},{},[232],{"type":38,"value":233},"no",{"type":29,"tag":210,"props":235,"children":236},{},[237],{"type":38,"value":238},"yes (D4)",{"type":29,"tag":210,"props":240,"children":241},{},[242],{"type":38,"value":5},{"type":29,"tag":158,"props":244,"children":245},{},[246,255,260,265,269,274],{"type":29,"tag":210,"props":247,"children":248},{},[249],{"type":29,"tag":50,"props":250,"children":252},{"className":251},[],[253],{"type":38,"value":254},"hq-notice",{"type":29,"tag":210,"props":256,"children":257},{},[258],{"type":38,"value":259},"plane → person",{"type":29,"tag":210,"props":261,"children":262},{},[263],{"type":38,"value":264},"inbox",{"type":29,"tag":210,"props":266,"children":267},{},[268],{"type":38,"value":233},{"type":29,"tag":210,"props":270,"children":271},{},[272],{"type":38,"value":273},"only if the plane allows it",{"type":29,"tag":210,"props":275,"children":276},{},[277],{"type":38,"value":5},{"type":29,"tag":158,"props":279,"children":280},{},[281,290,294,299,303,307],{"type":29,"tag":210,"props":282,"children":283},{},[284],{"type":29,"tag":50,"props":285,"children":287},{"className":286},[],[288],{"type":38,"value":289},"identity-confirmation",{"type":29,"tag":210,"props":291,"children":292},{},[293],{"type":38,"value":259},{"type":29,"tag":210,"props":295,"children":296},{},[297],{"type":38,"value":298},"tray",{"type":29,"tag":210,"props":300,"children":301},{},[302],{"type":38,"value":233},{"type":29,"tag":210,"props":304,"children":305},{},[306],{"type":38,"value":233},{"type":29,"tag":210,"props":308,"children":309},{},[310],{"type":38,"value":311},"c137, c131 (the V1 flow)",{"type":29,"tag":158,"props":313,"children":314},{},[315,324,328,332,340,344],{"type":29,"tag":210,"props":316,"children":317},{},[318],{"type":29,"tag":50,"props":319,"children":321},{"className":320},[],[322],{"type":38,"value":323},"censure",{"type":29,"tag":210,"props":325,"children":326},{},[327],{"type":38,"value":259},{"type":29,"tag":210,"props":329,"children":330},{},[331],{"type":38,"value":228},{"type":29,"tag":210,"props":333,"children":334},{},[335],{"type":29,"tag":34,"props":336,"children":337},{},[338],{"type":38,"value":339},"yes",{"type":29,"tag":210,"props":341,"children":342},{},[343],{"type":38,"value":238},{"type":29,"tag":210,"props":345,"children":346},{},[347],{"type":38,"value":5},{"type":29,"tag":158,"props":349,"children":350},{},[351,360,364,368,375,379],{"type":29,"tag":210,"props":352,"children":353},{},[354],{"type":29,"tag":50,"props":355,"children":357},{"className":356},[],[358],{"type":38,"value":359},"responsibility",{"type":29,"tag":210,"props":361,"children":362},{},[363],{"type":38,"value":259},{"type":29,"tag":210,"props":365,"children":366},{},[367],{"type":38,"value":298},{"type":29,"tag":210,"props":369,"children":370},{},[371],{"type":29,"tag":34,"props":372,"children":373},{},[374],{"type":38,"value":339},{"type":29,"tag":210,"props":376,"children":377},{},[378],{"type":38,"value":233},{"type":29,"tag":210,"props":380,"children":381},{},[382],{"type":38,"value":5},{"type":29,"tag":158,"props":384,"children":385},{},[386,395,399,403,407,412],{"type":29,"tag":210,"props":387,"children":388},{},[389],{"type":29,"tag":50,"props":390,"children":392},{"className":391},[],[393],{"type":38,"value":394},"training-assignment",{"type":29,"tag":210,"props":396,"children":397},{},[398],{"type":38,"value":259},{"type":29,"tag":210,"props":400,"children":401},{},[402],{"type":38,"value":298},{"type":29,"tag":210,"props":404,"children":405},{},[406],{"type":38,"value":233},{"type":29,"tag":210,"props":408,"children":409},{},[410],{"type":38,"value":411},"no (c133 D9)",{"type":29,"tag":210,"props":413,"children":414},{},[415],{"type":38,"value":416},"c133",{"type":29,"tag":158,"props":418,"children":419},{},[420,429,433,437,442,446],{"type":29,"tag":210,"props":421,"children":422},{},[423],{"type":29,"tag":50,"props":424,"children":426},{"className":425},[],[427],{"type":38,"value":428},"diagnostics-request",{"type":29,"tag":210,"props":430,"children":431},{},[432],{"type":38,"value":259},{"type":29,"tag":210,"props":434,"children":435},{},[436],{"type":38,"value":298},{"type":29,"tag":210,"props":438,"children":439},{},[440],{"type":38,"value":441},"no (the actions end it)",{"type":29,"tag":210,"props":443,"children":444},{},[445],{"type":38,"value":233},{"type":29,"tag":210,"props":447,"children":448},{},[449],{"type":38,"value":5},{"type":29,"tag":158,"props":451,"children":452},{},[453,462,467,471,475,479],{"type":29,"tag":210,"props":454,"children":455},{},[456],{"type":29,"tag":50,"props":457,"children":459},{"className":458},[],[460],{"type":38,"value":461},"sensor-state",{"type":29,"tag":210,"props":463,"children":464},{},[465],{"type":38,"value":466},"qcontrol → person",{"type":29,"tag":210,"props":468,"children":469},{},[470],{"type":38,"value":298},{"type":29,"tag":210,"props":472,"children":473},{},[474],{"type":38,"value":233},{"type":29,"tag":210,"props":476,"children":477},{},[478],{"type":38,"value":233},{"type":29,"tag":210,"props":480,"children":481},{},[482],{"type":38,"value":483},"c137, c131 (the tray)",{"type":29,"tag":158,"props":485,"children":486},{},[487,496,501,506,510,514],{"type":29,"tag":210,"props":488,"children":489},{},[490],{"type":29,"tag":50,"props":491,"children":493},{"className":492},[],[494],{"type":38,"value":495},"reply",{"type":29,"tag":210,"props":497,"children":498},{},[499],{"type":38,"value":500},"either way, in a thread",{"type":29,"tag":210,"props":502,"children":503},{},[504],{"type":38,"value":505},"tray (person); inbox (operator)",{"type":29,"tag":210,"props":507,"children":508},{},[509],{"type":38,"value":233},{"type":29,"tag":210,"props":511,"children":512},{},[513],{"type":38,"value":233},{"type":29,"tag":210,"props":515,"children":516},{},[517],{"type":38,"value":5},{"type":29,"tag":158,"props":519,"children":520},{},[521,530,535,540,545,549],{"type":29,"tag":210,"props":522,"children":523},{},[524],{"type":29,"tag":50,"props":525,"children":527},{"className":526},[],[528],{"type":38,"value":529},"acknowledgement",{"type":29,"tag":210,"props":531,"children":532},{},[533],{"type":38,"value":534},"person → plane",{"type":29,"tag":210,"props":536,"children":537},{},[538],{"type":38,"value":539},"n\u002Fa: a state carried back",{"type":29,"tag":210,"props":541,"children":542},{},[543],{"type":38,"value":544},"—",{"type":29,"tag":210,"props":546,"children":547},{},[548],{"type":38,"value":544},{"type":29,"tag":210,"props":550,"children":551},{},[552],{"type":38,"value":5},{"type":29,"tag":158,"props":554,"children":555},{},[556,565,569,574,578,582],{"type":29,"tag":210,"props":557,"children":558},{},[559],{"type":29,"tag":50,"props":560,"children":562},{"className":561},[],[563],{"type":38,"value":564},"contact-it",{"type":29,"tag":210,"props":566,"children":567},{},[568],{"type":38,"value":534},{"type":29,"tag":210,"props":570,"children":571},{},[572],{"type":38,"value":573},"operator inbox",{"type":29,"tag":210,"props":575,"children":576},{},[577],{"type":38,"value":544},{"type":29,"tag":210,"props":579,"children":580},{},[581],{"type":38,"value":544},{"type":29,"tag":210,"props":583,"children":584},{},[585],{"type":38,"value":5},{"type":29,"tag":158,"props":587,"children":588},{},[589,598,603,608,612,616],{"type":29,"tag":210,"props":590,"children":591},{},[592],{"type":29,"tag":50,"props":593,"children":595},{"className":594},[],[596],{"type":38,"value":597},"training-completed",{"type":29,"tag":210,"props":599,"children":600},{},[601],{"type":38,"value":602},"app → plane",{"type":29,"tag":210,"props":604,"children":605},{},[606],{"type":38,"value":607},"operator inbox (quiet) + audit",{"type":29,"tag":210,"props":609,"children":610},{},[611],{"type":38,"value":544},{"type":29,"tag":210,"props":613,"children":614},{},[615],{"type":38,"value":544},{"type":29,"tag":210,"props":617,"children":618},{},[619],{"type":38,"value":416},{"type":29,"tag":158,"props":621,"children":622},{},[623,632,637,641,645,649],{"type":29,"tag":210,"props":624,"children":625},{},[626],{"type":29,"tag":50,"props":627,"children":629},{"className":628},[],[630],{"type":38,"value":631},"diagnostics-sent",{"type":29,"tag":210,"props":633,"children":634},{},[635],{"type":38,"value":636},"person → plane (also carries declined)",{"type":29,"tag":210,"props":638,"children":639},{},[640],{"type":38,"value":573},{"type":29,"tag":210,"props":642,"children":643},{},[644],{"type":38,"value":544},{"type":29,"tag":210,"props":646,"children":647},{},[648],{"type":38,"value":544},{"type":29,"tag":210,"props":650,"children":651},{},[652],{"type":38,"value":5},{"type":29,"tag":158,"props":654,"children":655},{},[656,665,670,674,678,682],{"type":29,"tag":210,"props":657,"children":658},{},[659],{"type":29,"tag":50,"props":660,"children":662},{"className":661},[],[663],{"type":38,"value":664},"connect-request",{"type":29,"tag":210,"props":666,"children":667},{},[668],{"type":38,"value":669},"app → plane, on approval planes only",{"type":29,"tag":210,"props":671,"children":672},{},[673],{"type":38,"value":573},{"type":29,"tag":210,"props":675,"children":676},{},[677],{"type":38,"value":544},{"type":29,"tag":210,"props":679,"children":680},{},[681],{"type":38,"value":544},{"type":29,"tag":210,"props":683,"children":684},{},[685],{"type":38,"value":686},"c131, c134",{"type":29,"tag":158,"props":688,"children":689},{},[690,699,704,708,712,716],{"type":29,"tag":210,"props":691,"children":692},{},[693],{"type":29,"tag":50,"props":694,"children":696},{"className":695},[],[697],{"type":38,"value":698},"grant-notice",{"type":29,"tag":210,"props":700,"children":701},{},[702],{"type":38,"value":703},"plane → operator",{"type":29,"tag":210,"props":705,"children":706},{},[707],{"type":38,"value":573},{"type":29,"tag":210,"props":709,"children":710},{},[711],{"type":38,"value":233},{"type":29,"tag":210,"props":713,"children":714},{},[715],{"type":38,"value":544},{"type":29,"tag":210,"props":717,"children":718},{},[719],{"type":38,"value":720},"c136",{"type":29,"tag":97,"props":722,"children":724},{"id":723},"_3-severity",[725],{"type":38,"value":15},{"type":29,"tag":30,"props":727,"children":728},{},[729,731,736,738,743,744,748],{"type":38,"value":730},"Three words, and only these three reach the citizen's UI (R4): ",{"type":29,"tag":34,"props":732,"children":733},{},[734],{"type":38,"value":735},"info",{"type":38,"value":737},", ",{"type":29,"tag":34,"props":739,"children":740},{},[741],{"type":38,"value":742},"attention",{"type":38,"value":737},{"type":29,"tag":34,"props":745,"children":746},{},[747],{"type":38,"value":194},{"type":38,"value":749},". Never danger, critical, urgent or alert.",{"type":29,"tag":150,"props":751,"children":752},{},[753,779],{"type":29,"tag":154,"props":754,"children":755},{},[756],{"type":29,"tag":158,"props":757,"children":758},{},[759,764,769,774],{"type":29,"tag":162,"props":760,"children":761},{},[762],{"type":38,"value":763},"Severity",{"type":29,"tag":162,"props":765,"children":766},{},[767],{"type":38,"value":768},"Means",{"type":29,"tag":162,"props":770,"children":771},{},[772],{"type":38,"value":773},"Delivery it asks for",{"type":29,"tag":162,"props":775,"children":776},{},[777],{"type":38,"value":778},"Colour (the brand's rule: orange for work left, red only for blocked or failed)",{"type":29,"tag":203,"props":780,"children":781},{},[782,808,833],{"type":29,"tag":158,"props":783,"children":784},{},[785,793,798,803],{"type":29,"tag":210,"props":786,"children":787},{},[788],{"type":29,"tag":50,"props":789,"children":791},{"className":790},[],[792],{"type":38,"value":735},{"type":29,"tag":210,"props":794,"children":795},{},[796],{"type":38,"value":797},"a fact: a receipt, a letter",{"type":29,"tag":210,"props":799,"children":800},{},[801],{"type":38,"value":802},"the type's default",{"type":29,"tag":210,"props":804,"children":805},{},[806],{"type":38,"value":807},"grey pill; no colour",{"type":29,"tag":158,"props":809,"children":810},{},[811,819,824,828],{"type":29,"tag":210,"props":812,"children":813},{},[814],{"type":29,"tag":50,"props":815,"children":817},{"className":816},[],[818],{"type":38,"value":742},{"type":29,"tag":210,"props":820,"children":821},{},[822],{"type":38,"value":823},"something for the person to look at or do",{"type":29,"tag":210,"props":825,"children":826},{},[827],{"type":38,"value":802},{"type":29,"tag":210,"props":829,"children":830},{},[831],{"type":38,"value":832},"orange pill (\"Attention\")",{"type":29,"tag":158,"props":834,"children":835},{},[836,844,849,854],{"type":29,"tag":210,"props":837,"children":838},{},[839],{"type":29,"tag":50,"props":840,"children":842},{"className":841},[],[843],{"type":38,"value":194},{"type":29,"tag":210,"props":845,"children":846},{},[847],{"type":38,"value":848},"the one override: passes quiet hours and Focus, cannot be turned off, must be acknowledged, is counted (§6)",{"type":29,"tag":210,"props":850,"children":851},{},[852],{"type":38,"value":853},"one OS notification, whatever the settings say",{"type":29,"tag":210,"props":855,"children":856},{},[857],{"type":38,"value":858},"orange pill (\"Required\"), the count beside it",{"type":29,"tag":30,"props":860,"children":861},{},[862],{"type":38,"value":863},"A blocked action inside a body (\"qcontrol blocked a paste\") is the only place the error tone appears, on that word, because something was blocked. The message card itself is never red.",{"type":29,"tag":97,"props":865,"children":867},{"id":866},"_4-actions",[868],{"type":38,"value":16},{"type":29,"tag":103,"props":870,"children":873},{"className":871,"code":872,"language":38},[106],"Action { label: string, kind: ActionKind, target?: string }\nActionKind = 'open-page' | 'acknowledge' | 'start-training' | 'contact-it' | 'allow-diagnostics' | 'decline' | 'dismiss'\n",[874],{"type":29,"tag":50,"props":875,"children":876},{"__ignoreMap":111},[877],{"type":38,"value":872},{"type":29,"tag":879,"props":880,"children":881},"ul",{},[882,903,929,947,974,992],{"type":29,"tag":883,"props":884,"children":885},"li",{},[886,888,894,896,901],{"type":38,"value":887},"At most three, in the order shown; the first is the primary. ",{"type":29,"tag":50,"props":889,"children":891},{"className":890},[],[892],{"type":38,"value":893},"acknowledge",{"type":38,"value":895}," is added by the app when ",{"type":29,"tag":50,"props":897,"children":899},{"className":898},[],[900],{"type":38,"value":185},{"type":38,"value":902}," is true, never by the sender.",{"type":29,"tag":883,"props":904,"children":905},{},[906,912,914,920,921,927],{"type":29,"tag":50,"props":907,"children":909},{"className":908},[],[910],{"type":38,"value":911},"open-page",{"type":38,"value":913}," targets a route in the native app (",{"type":29,"tag":50,"props":915,"children":917},{"className":916},[],[918],{"type":38,"value":919},"status",{"type":38,"value":737},{"type":29,"tag":50,"props":922,"children":924},{"className":923},[],[925],{"type":38,"value":926},"connect",{"type":38,"value":928},") or on the web app (a finding, a policy, a training); the web app opens in the browser, signed in through the plane connection (c131 D13).",{"type":29,"tag":883,"props":930,"children":931},{},[932,937,939,945],{"type":29,"tag":50,"props":933,"children":935},{"className":934},[],[936],{"type":38,"value":564},{"type":38,"value":938}," opens the reply form (§7) with the message's context attached. In local mode it opens the IT contact named in qcontrol's configuration (",{"type":29,"tag":50,"props":940,"children":942},{"className":941},[],[943],{"type":38,"value":944},"it_contact",{"type":38,"value":946},": a mailto or URL); absent, the form says so.",{"type":29,"tag":883,"props":948,"children":949},{},[950,956,958,964,966,972],{"type":29,"tag":50,"props":951,"children":953},{"className":952},[],[954],{"type":38,"value":955},"allow-diagnostics",{"type":38,"value":957}," shows the package before anything is sent; ",{"type":29,"tag":50,"props":959,"children":961},{"className":960},[],[962],{"type":38,"value":963},"decline",{"type":38,"value":965}," ends the message as done with ",{"type":29,"tag":50,"props":967,"children":969},{"className":968},[],[970],{"type":38,"value":971},"state_reason: declined",{"type":38,"value":973}," and tells the sender.",{"type":29,"tag":883,"props":975,"children":976},{},[977,983,985,990],{"type":29,"tag":50,"props":978,"children":980},{"className":979},[],[981],{"type":38,"value":982},"dismiss",{"type":38,"value":984}," exists only for ",{"type":29,"tag":50,"props":986,"children":988},{"className":987},[],[989],{"type":38,"value":735},{"type":38,"value":991},"; it ends the message as done.",{"type":29,"tag":883,"props":993,"children":994},{},[995,997,1003],{"type":38,"value":996},"\"Why am I seeing this\" is not an action; it is a line on every card (",{"type":29,"tag":50,"props":998,"children":1000},{"className":999},[],[1001],{"type":38,"value":1002},"why",{"type":38,"value":1004},").",{"type":29,"tag":97,"props":1006,"children":1008},{"id":1007},"_5-states-and-transitions",[1009],{"type":38,"value":17},{"type":29,"tag":103,"props":1011,"children":1014},{"className":1012,"code":1013,"language":38},[106],"new ──opened──▶ seen ──acknowledge──▶ acknowledged ──action completes──▶ done\n │                │                        │\n │                ├──action completes \u002F dismiss (info)──▶ done\n │                │\n └────────────────┴──expires_at passes · operator recalls──▶ expired\n",[1015],{"type":29,"tag":50,"props":1016,"children":1017},{"__ignoreMap":111},[1018],{"type":38,"value":1013},{"type":29,"tag":150,"props":1020,"children":1021},{},[1022,1048],{"type":29,"tag":154,"props":1023,"children":1024},{},[1025],{"type":29,"tag":158,"props":1026,"children":1027},{},[1028,1033,1038,1043],{"type":29,"tag":162,"props":1029,"children":1030},{},[1031],{"type":38,"value":1032},"Event",{"type":29,"tag":162,"props":1034,"children":1035},{},[1036],{"type":38,"value":1037},"From",{"type":29,"tag":162,"props":1039,"children":1040},{},[1041],{"type":38,"value":1042},"To",{"type":29,"tag":162,"props":1044,"children":1045},{},[1046],{"type":38,"value":1047},"Who",{"type":29,"tag":203,"props":1049,"children":1050},{},[1051,1077,1107,1142,1209,1243,1294],{"type":29,"tag":158,"props":1052,"children":1053},{},[1054,1059,1063,1072],{"type":29,"tag":210,"props":1055,"children":1056},{},[1057],{"type":38,"value":1058},"delivered (the app received it; the OS notification, if any, is posted now)",{"type":29,"tag":210,"props":1060,"children":1061},{},[1062],{"type":38,"value":544},{"type":29,"tag":210,"props":1064,"children":1065},{},[1066],{"type":29,"tag":50,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":38,"value":1071},"new",{"type":29,"tag":210,"props":1073,"children":1074},{},[1075],{"type":38,"value":1076},"the app",{"type":29,"tag":158,"props":1078,"children":1079},{},[1080,1085,1093,1102],{"type":29,"tag":210,"props":1081,"children":1082},{},[1083],{"type":38,"value":1084},"opened (in the inbox, or the notification was clicked)",{"type":29,"tag":210,"props":1086,"children":1087},{},[1088],{"type":29,"tag":50,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":38,"value":1071},{"type":29,"tag":210,"props":1094,"children":1095},{},[1096],{"type":29,"tag":50,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":38,"value":1101},"seen",{"type":29,"tag":210,"props":1103,"children":1104},{},[1105],{"type":38,"value":1106},"the person",{"type":29,"tag":158,"props":1108,"children":1109},{},[1110,1115,1129,1138],{"type":29,"tag":210,"props":1111,"children":1112},{},[1113],{"type":38,"value":1114},"Acknowledge pressed",{"type":29,"tag":210,"props":1116,"children":1117},{},[1118,1123,1124],{"type":29,"tag":50,"props":1119,"children":1121},{"className":1120},[],[1122],{"type":38,"value":1071},{"type":38,"value":737},{"type":29,"tag":50,"props":1125,"children":1127},{"className":1126},[],[1128],{"type":38,"value":1101},{"type":29,"tag":210,"props":1130,"children":1131},{},[1132],{"type":29,"tag":50,"props":1133,"children":1135},{"className":1134},[],[1136],{"type":38,"value":1137},"acknowledged",{"type":29,"tag":210,"props":1139,"children":1140},{},[1141],{"type":38,"value":1106},{"type":29,"tag":158,"props":1143,"children":1144},{},[1145,1176,1196,1205],{"type":29,"tag":210,"props":1146,"children":1147},{},[1148,1150,1155,1156,1161,1162,1167,1169,1174],{"type":38,"value":1149},"the linked action completes (",{"type":29,"tag":50,"props":1151,"children":1153},{"className":1152},[],[1154],{"type":38,"value":597},{"type":38,"value":737},{"type":29,"tag":50,"props":1157,"children":1159},{"className":1158},[],[1160],{"type":38,"value":631},{"type":38,"value":737},{"type":29,"tag":50,"props":1163,"children":1165},{"className":1164},[],[1166],{"type":38,"value":564},{"type":38,"value":1168}," sent, ",{"type":29,"tag":50,"props":1170,"children":1172},{"className":1171},[],[1173],{"type":38,"value":911},{"type":38,"value":1175}," for a confirmation)",{"type":29,"tag":210,"props":1177,"children":1178},{},[1179,1184,1185,1190,1191],{"type":29,"tag":50,"props":1180,"children":1182},{"className":1181},[],[1183],{"type":38,"value":1071},{"type":38,"value":737},{"type":29,"tag":50,"props":1186,"children":1188},{"className":1187},[],[1189],{"type":38,"value":1101},{"type":38,"value":737},{"type":29,"tag":50,"props":1192,"children":1194},{"className":1193},[],[1195],{"type":38,"value":1137},{"type":29,"tag":210,"props":1197,"children":1198},{},[1199],{"type":29,"tag":50,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":38,"value":1204},"done",{"type":29,"tag":210,"props":1206,"children":1207},{},[1208],{"type":38,"value":1076},{"type":29,"tag":158,"props":1210,"children":1211},{},[1212,1217,1231,1239],{"type":29,"tag":210,"props":1213,"children":1214},{},[1215],{"type":38,"value":1216},"Dismiss (info only)",{"type":29,"tag":210,"props":1218,"children":1219},{},[1220,1225,1226],{"type":29,"tag":50,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":38,"value":1071},{"type":38,"value":737},{"type":29,"tag":50,"props":1227,"children":1229},{"className":1228},[],[1230],{"type":38,"value":1101},{"type":29,"tag":210,"props":1232,"children":1233},{},[1234],{"type":29,"tag":50,"props":1235,"children":1237},{"className":1236},[],[1238],{"type":38,"value":1204},{"type":29,"tag":210,"props":1240,"children":1241},{},[1242],{"type":38,"value":1106},{"type":29,"tag":158,"props":1244,"children":1245},{},[1246,1257,1271,1290],{"type":29,"tag":210,"props":1247,"children":1248},{},[1249,1255],{"type":29,"tag":50,"props":1250,"children":1252},{"className":1251},[],[1253],{"type":38,"value":1254},"expires_at",{"type":38,"value":1256}," passes",{"type":29,"tag":210,"props":1258,"children":1259},{},[1260,1265,1266],{"type":29,"tag":50,"props":1261,"children":1263},{"className":1262},[],[1264],{"type":38,"value":1071},{"type":38,"value":737},{"type":29,"tag":50,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":38,"value":1101},{"type":29,"tag":210,"props":1272,"children":1273},{},[1274,1280,1282,1288],{"type":29,"tag":50,"props":1275,"children":1277},{"className":1276},[],[1278],{"type":38,"value":1279},"expired",{"type":38,"value":1281}," (",{"type":29,"tag":50,"props":1283,"children":1285},{"className":1284},[],[1286],{"type":38,"value":1287},"state_reason: expired",{"type":38,"value":1289},")",{"type":29,"tag":210,"props":1291,"children":1292},{},[1293],{"type":38,"value":1076},{"type":29,"tag":158,"props":1295,"children":1296},{},[1297,1302,1316,1333],{"type":29,"tag":210,"props":1298,"children":1299},{},[1300],{"type":38,"value":1301},"the operator recalls it (sent by mistake; §9)",{"type":29,"tag":210,"props":1303,"children":1304},{},[1305,1310,1311],{"type":29,"tag":50,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":38,"value":1071},{"type":38,"value":737},{"type":29,"tag":50,"props":1312,"children":1314},{"className":1313},[],[1315],{"type":38,"value":1101},{"type":29,"tag":210,"props":1317,"children":1318},{},[1319,1324,1325,1331],{"type":29,"tag":50,"props":1320,"children":1322},{"className":1321},[],[1323],{"type":38,"value":1279},{"type":38,"value":1281},{"type":29,"tag":50,"props":1326,"children":1328},{"className":1327},[],[1329],{"type":38,"value":1330},"state_reason: recalled",{"type":38,"value":1332},"); the card says so",{"type":29,"tag":210,"props":1334,"children":1335},{},[1336],{"type":38,"value":1337},"the operator",{"type":29,"tag":879,"props":1339,"children":1340},{},[1341,1371,1406,1423,1447],{"type":29,"tag":883,"props":1342,"children":1343},{},[1344,1349,1351,1356,1357,1362,1364,1369],{"type":29,"tag":34,"props":1345,"children":1346},{},[1347],{"type":38,"value":1348},"Terminal states:",{"type":38,"value":1350}," ",{"type":29,"tag":50,"props":1352,"children":1354},{"className":1353},[],[1355],{"type":38,"value":1204},{"type":38,"value":737},{"type":29,"tag":50,"props":1358,"children":1360},{"className":1359},[],[1361],{"type":38,"value":1279},{"type":38,"value":1363},", and ",{"type":29,"tag":50,"props":1365,"children":1367},{"className":1366},[],[1368],{"type":38,"value":1137},{"type":38,"value":1370}," when the message has no completion action (a censure, a responsibility). R5: every message reaches one.",{"type":29,"tag":883,"props":1372,"children":1373},{},[1374,1384,1385,1390,1392,1397,1399,1404],{"type":29,"tag":34,"props":1375,"children":1376},{},[1377,1382],{"type":29,"tag":50,"props":1378,"children":1380},{"className":1379},[],[1381],{"type":38,"value":1254},{"type":38,"value":1383}," defaults:",{"type":38,"value":1350},{"type":29,"tag":50,"props":1386,"children":1388},{"className":1387},[],[1389],{"type":38,"value":735},{"type":38,"value":1391}," 30 days, ",{"type":29,"tag":50,"props":1393,"children":1395},{"className":1394},[],[1396],{"type":38,"value":742},{"type":38,"value":1398}," 90 days, ",{"type":29,"tag":50,"props":1400,"children":1402},{"className":1401},[],[1403],{"type":38,"value":194},{"type":38,"value":1405}," never (it stays, and the tray count holds it, until acknowledged). The sender may set a shorter one (a notice about Monday expires Monday).",{"type":29,"tag":883,"props":1407,"children":1408},{},[1409,1414,1416,1421],{"type":29,"tag":34,"props":1410,"children":1411},{},[1412],{"type":38,"value":1413},"One re-surface, not reminders:",{"type":38,"value":1415}," a message with ",{"type":29,"tag":50,"props":1417,"children":1419},{"className":1418},[],[1420],{"type":38,"value":1254},{"type":38,"value":1422}," appears once more at the top of the tray's one line the day before it expires. Never a second OS notification (inventory row 21).",{"type":29,"tag":883,"props":1424,"children":1425},{},[1426,1431,1433,1438,1440,1445],{"type":29,"tag":34,"props":1427,"children":1428},{},[1429],{"type":38,"value":1430},"What the plane records (R6):",{"type":38,"value":1432}," created, delivered, acknowledged, done, expired with their timestamps; ",{"type":29,"tag":50,"props":1434,"children":1436},{"className":1435},[],[1437],{"type":38,"value":1101},{"type":38,"value":1439}," only for messages with ",{"type":29,"tag":50,"props":1441,"children":1443},{"className":1442},[],[1444],{"type":38,"value":185},{"type":38,"value":1446}," (so the operator can tell \"seen, not acknowledged\" from \"never opened\"); nothing else. Default for plan Q2; Tyler or Peterson may draw it tighter.",{"type":29,"tag":883,"props":1448,"children":1449},{},[1450,1455],{"type":29,"tag":34,"props":1451,"children":1452},{},[1453],{"type":38,"value":1454},"Inbox order:",{"type":38,"value":1456}," open threads first (newest activity on top), then ended ones under a fold; ended messages are kept, not deleted. The inbox is a record, not a pile.",{"type":29,"tag":97,"props":1458,"children":1460},{"id":1459},"_6-the-required-rule-and-its-count",[1461,1463,1468],{"type":38,"value":1462},"6. The ",{"type":29,"tag":50,"props":1464,"children":1466},{"className":1465},[],[1467],{"type":38,"value":194},{"type":38,"value":1469}," rule and its count",{"type":29,"tag":30,"props":1471,"children":1472},{},[1473,1479],{"type":29,"tag":50,"props":1474,"children":1476},{"className":1475},[],[1477],{"type":38,"value":1478},"severity: required",{"type":38,"value":1480}," is the single override, and it is counted. Honesty in both directions.",{"type":29,"tag":879,"props":1482,"children":1483},{},[1484,1523,1540,1550,1567,1585],{"type":29,"tag":883,"props":1485,"children":1486},{},[1487,1492,1494,1499,1501,1506,1508,1513,1515,1521],{"type":29,"tag":34,"props":1488,"children":1489},{},[1490],{"type":38,"value":1491},"Who may set it:",{"type":38,"value":1493}," the sender, only on ",{"type":29,"tag":50,"props":1495,"children":1497},{"className":1496},[],[1498],{"type":38,"value":218},{"type":38,"value":1500}," and ",{"type":29,"tag":50,"props":1502,"children":1504},{"className":1503},[],[1505],{"type":38,"value":323},{"type":38,"value":1507}," (D4); on ",{"type":29,"tag":50,"props":1509,"children":1511},{"className":1510},[],[1512],{"type":38,"value":254},{"type":38,"value":1514}," only when the plane's ",{"type":29,"tag":50,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":38,"value":1520},"messages.required_on_notices",{"type":38,"value":1522}," setting is on (off by default). A policy may set it for its enforcement notices; a person sets it per message. Any other type: the plane refuses the send.",{"type":29,"tag":883,"props":1524,"children":1525},{},[1526,1531,1533,1538],{"type":29,"tag":34,"props":1527,"children":1528},{},[1529],{"type":38,"value":1530},"What it does:",{"type":38,"value":1532}," one OS notification even during quiet hours and the OS's Focus (R7 permitting: §ports on time-sensitive delivery); ignores a type set to off; cannot be muted; implies ",{"type":29,"tag":50,"props":1534,"children":1536},{"className":1535},[],[1537],{"type":38,"value":185},{"type":38,"value":1539},"; never expires; holds a place in the tray count until acknowledged.",{"type":29,"tag":883,"props":1541,"children":1542},{},[1543,1548],{"type":29,"tag":34,"props":1544,"children":1545},{},[1546],{"type":38,"value":1547},"What it does not do:",{"type":38,"value":1549}," repeat, escalate, sound different, or change colour beyond the \"Required\" pill. One notification, then the inbox.",{"type":29,"tag":883,"props":1551,"children":1552},{},[1553,1558,1559,1565],{"type":29,"tag":34,"props":1554,"children":1555},{},[1556],{"type":38,"value":1557},"The count:",{"type":38,"value":1350},{"type":29,"tag":50,"props":1560,"children":1562},{"className":1561},[],[1563],{"type":38,"value":1564},"required_this_month",{"type":38,"value":1566}," per recipient per calendar month, incremented at delivery. The citizen's settings page shows it: \"HQ has sent this machine 2 required messages this month.\" The operator's send form shows it before sending: the fleet total this month and the highest count any chosen recipient already has.",{"type":29,"tag":883,"props":1568,"children":1569},{},[1570,1575,1577,1583],{"type":29,"tag":34,"props":1571,"children":1572},{},[1573],{"type":38,"value":1574},"The soft ceiling:",{"type":38,"value":1576}," the plane setting ",{"type":29,"tag":50,"props":1578,"children":1580},{"className":1579},[],[1581],{"type":38,"value":1582},"messages.required_soft_limit",{"type":38,"value":1584}," (default 3 per recipient per month). Above it the send form asks for a one-line reason that is shown to the citizen on the card. Not a hard limit; an incident is an incident.",{"type":29,"tag":883,"props":1586,"children":1587},{},[1588,1593,1595,1600],{"type":29,"tag":34,"props":1589,"children":1590},{},[1591],{"type":38,"value":1592},"In local mode:",{"type":38,"value":1594}," the policy file sets ",{"type":29,"tag":50,"props":1596,"children":1598},{"className":1597},[],[1599],{"type":38,"value":194},{"type":38,"value":1601}," per policy; the count is kept locally and shown the same way (\"This machine's configuration has sent 1 required message this month\").",{"type":29,"tag":97,"props":1603,"children":1605},{"id":1604},"_7-sender-recipient-thread",[1606],{"type":38,"value":19},{"type":29,"tag":103,"props":1608,"children":1611},{"className":1609,"code":1610,"language":38},[106],"Sender    = { kind: 'plane', label: string, operator?: Person }   \u002F\u002F label: the plane's sender label, default \"HQ\" (§7.1)\n          | { kind: 'qcontrol' }                                    \u002F\u002F local mode: \"qcontrol on this machine\"\n          | { kind: 'person', person: Person, endpoint: EndpointRef }   \u002F\u002F replies from the citizen\nRecipient = { kind: 'endpoint', endpoint: EndpointRef, person?: Person }   \u002F\u002F the citizen; person when known\n          | { kind: 'plane' }                                       \u002F\u002F the operator's inbox\nPerson    = { id, name }      EndpointRef = { id, name }\n",[1612],{"type":29,"tag":50,"props":1613,"children":1614},{"__ignoreMap":111},[1615],{"type":38,"value":1610},{"type":29,"tag":1617,"props":1618,"children":1620},"h3",{"id":1619},"_71-the-sender-label",[1621],{"type":38,"value":1622},"7.1 The sender label",{"type":29,"tag":30,"props":1624,"children":1625},{},[1626,1628,1634,1636,1641,1643,1648],{"type":38,"value":1627},"A plane-set string, ",{"type":29,"tag":50,"props":1629,"children":1631},{"className":1630},[],[1632],{"type":38,"value":1633},"messages.sender_label",{"type":38,"value":1635},", default ",{"type":29,"tag":34,"props":1637,"children":1638},{},[1639],{"type":38,"value":1640},"\"HQ\"",{"type":38,"value":1642}," (Mark's prompt; c0's proposal: each customer writes their own word, \"Security\", \"IT\", \"HQ\"). Shown alone for automatic messages (\"HQ\", with ",{"type":29,"tag":50,"props":1644,"children":1646},{"className":1645},[],[1647],{"type":38,"value":1002},{"type":38,"value":1649}," naming the policy) and with the person when one wrote it (\"HQ · Dana Whitfield\"). Local mode shows \"qcontrol on this machine\". Overseer and citizen never appear (D7).",{"type":29,"tag":1617,"props":1651,"children":1653},{"id":1652},"_72-the-thread",[1654],{"type":38,"value":1655},"7.2 The thread",{"type":29,"tag":879,"props":1657,"children":1658},{},[1659,1712,1739,1758],{"type":29,"tag":883,"props":1660,"children":1661},{},[1662,1664,1670,1672,1677,1678,1683,1684,1689,1690,1695,1697,1702,1704,1710],{"type":38,"value":1663},"A root message's ",{"type":29,"tag":50,"props":1665,"children":1667},{"className":1666},[],[1668],{"type":38,"value":1669},"thread",{"type":38,"value":1671}," is its own id. A reply (",{"type":29,"tag":50,"props":1673,"children":1675},{"className":1674},[],[1676],{"type":38,"value":564},{"type":38,"value":737},{"type":29,"tag":50,"props":1679,"children":1681},{"className":1680},[],[1682],{"type":38,"value":495},{"type":38,"value":737},{"type":29,"tag":50,"props":1685,"children":1687},{"className":1686},[],[1688],{"type":38,"value":631},{"type":38,"value":737},{"type":29,"tag":50,"props":1691,"children":1693},{"className":1692},[],[1694],{"type":38,"value":597},{"type":38,"value":1696},") carries ",{"type":29,"tag":50,"props":1698,"children":1700},{"className":1699},[],[1701],{"type":38,"value":1669},{"type":38,"value":1703}," = the root and ",{"type":29,"tag":50,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":38,"value":1709},"in_reply_to",{"type":38,"value":1711}," = the message it answers.",{"type":29,"tag":883,"props":1713,"children":1714},{},[1715,1717,1722,1724,1729,1731,1737],{"type":38,"value":1716},"The citizen's ",{"type":29,"tag":34,"props":1718,"children":1719},{},[1720],{"type":38,"value":1721},"Contact IT",{"type":38,"value":1723}," is a ",{"type":29,"tag":50,"props":1725,"children":1727},{"className":1726},[],[1728],{"type":38,"value":564},{"type":38,"value":1730}," message to ",{"type":29,"tag":50,"props":1732,"children":1734},{"className":1733},[],[1735],{"type":38,"value":1736},"{ kind: 'plane' }",{"type":38,"value":1738}," with the root's context attached automatically (policy, finding, endpoint, time): the person writes under three prompts (what were you doing · what do you need · anything else) in their own words; R2 does not bind the person.",{"type":29,"tag":883,"props":1740,"children":1741},{},[1742,1744,1749,1751,1756],{"type":38,"value":1743},"The operator's answer is a ",{"type":29,"tag":50,"props":1745,"children":1747},{"className":1746},[],[1748],{"type":38,"value":495},{"type":38,"value":1750}," in the same thread, delivered per the ",{"type":29,"tag":50,"props":1752,"children":1754},{"className":1753},[],[1755],{"type":38,"value":495},{"type":38,"value":1757}," type's setting (default tray). The inbox shows one row per thread.",{"type":29,"tag":883,"props":1759,"children":1760},{},[1761,1763,1769],{"type":38,"value":1762},"A thread ends when its root ends; replies inherit the root's ",{"type":29,"tag":50,"props":1764,"children":1766},{"className":1765},[],[1767],{"type":38,"value":1768},"mute_key",{"type":38,"value":1770},".",{"type":29,"tag":97,"props":1772,"children":1774},{"id":1773},"_8-mute-keys",[1775],{"type":38,"value":20},{"type":29,"tag":30,"props":1777,"children":1778},{},[1779,1781,1786,1788,1794,1796,1802,1804,1809],{"type":38,"value":1780},"A mute is the citizen's, for a day (plan): ",{"type":29,"tag":50,"props":1782,"children":1784},{"className":1783},[],[1785],{"type":38,"value":1768},{"type":38,"value":1787}," is ",{"type":29,"tag":50,"props":1789,"children":1791},{"className":1790},[],[1792],{"type":38,"value":1793},"policy:\u003Cid>",{"type":38,"value":1795}," on automatic messages (so \"mute this policy's notices for today\" catches the next one) and ",{"type":29,"tag":50,"props":1797,"children":1799},{"className":1798},[],[1800],{"type":38,"value":1801},"thread:\u003Cid>",{"type":38,"value":1803}," on everything else. A ",{"type":29,"tag":50,"props":1805,"children":1807},{"className":1806},[],[1808],{"type":38,"value":194},{"type":38,"value":1810}," message ignores mutes but still carries the key, so the settings page can say what was muted and what came through anyway.",{"type":29,"tag":97,"props":1812,"children":1814},{"id":1813},"_9-the-send-side-for-c134",[1815],{"type":38,"value":21},{"type":29,"tag":30,"props":1817,"children":1818},{},[1819,1821,1827,1829,1835,1837,1843,1844,1849,1851,1857,1859,1864,1866,1872,1874,1880,1881,1887,1888,1894,1895,1901,1902,1908],{"type":38,"value":1820},"The operator creates a message with ",{"type":29,"tag":50,"props":1822,"children":1824},{"className":1823},[],[1825],{"type":38,"value":1826},"type",{"type":38,"value":1828},", recipients (a person, an endpoint, a team, everyone), ",{"type":29,"tag":50,"props":1830,"children":1832},{"className":1831},[],[1833],{"type":38,"value":1834},"subject",{"type":38,"value":1836},", the three sentences, up to three actions, ",{"type":29,"tag":50,"props":1838,"children":1840},{"className":1839},[],[1841],{"type":38,"value":1842},"severity",{"type":38,"value":737},{"type":29,"tag":50,"props":1845,"children":1847},{"className":1846},[],[1848],{"type":38,"value":1254},{"type":38,"value":1850},", and for a censure ",{"type":29,"tag":50,"props":1852,"children":1854},{"className":1853},[],[1855],{"type":38,"value":1856},"verbatim: true",{"type":38,"value":1858},". The plane validates: the lengths, the type's ",{"type":29,"tag":50,"props":1860,"children":1862},{"className":1861},[],[1863],{"type":38,"value":194},{"type":38,"value":1865}," permission, the soft ceiling, the sentence count; the brand voice rules run as a lint on the three sentences (the pattern from the plan: the ten examples below are the fixtures). A send to a team becomes one message per endpoint under one ",{"type":29,"tag":50,"props":1867,"children":1869},{"className":1868},[],[1870],{"type":38,"value":1871},"batch",{"type":38,"value":1873},". Recall withdraws every message in the batch that has not ended. The operator's inbox lists the replies and the states; the audit log keeps ",{"type":29,"tag":50,"props":1875,"children":1877},{"className":1876},[],[1878],{"type":38,"value":1879},"message.sent",{"type":38,"value":737},{"type":29,"tag":50,"props":1882,"children":1884},{"className":1883},[],[1885],{"type":38,"value":1886},"message.acknowledged",{"type":38,"value":737},{"type":29,"tag":50,"props":1889,"children":1891},{"className":1890},[],[1892],{"type":38,"value":1893},"message.done",{"type":38,"value":737},{"type":29,"tag":50,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":38,"value":1900},"message.expired",{"type":38,"value":737},{"type":29,"tag":50,"props":1903,"children":1905},{"className":1904},[],[1906],{"type":38,"value":1907},"message.recalled",{"type":38,"value":1909}," (R6).",{"type":29,"tag":97,"props":1911,"children":1913},{"id":1912},"_10-ten-example-messages",[1914],{"type":38,"value":22},{"type":29,"tag":30,"props":1916,"children":1917},{},[1918,1920,1926],{"type":38,"value":1919},"One per important type, each body in the brand's three sentences: what happened, why it matters, what to do next. Subjects are 60 characters or fewer. Times are the machine's local time; the fixture world is Acme's, with Dana Whitfield at HQ and Mark Parson on MBP-2291. These ten are the lab mock's data (",{"type":29,"tag":50,"props":1921,"children":1923},{"className":1922},[],[1924],{"type":38,"value":1925},"app\u002Fdata\u002Fmessaging-fixture.ts",{"type":38,"value":1927},") and the voice fixtures for every message type that follows.",{"type":29,"tag":1617,"props":1929,"children":1931},{"id":1930},"e1-enforcement-notice-from-the-plane-attention-v1-if-ruled-in",[1932,1934,1939],{"type":38,"value":1933},"E1 · ",{"type":29,"tag":50,"props":1935,"children":1937},{"className":1936},[],[1938],{"type":38,"value":218},{"type":38,"value":1940},", from the plane · attention · V1 if ruled in",{"type":29,"tag":30,"props":1942,"children":1943},{},[1944,1948,1950,1955,1957,1962],{"type":29,"tag":34,"props":1945,"children":1946},{},[1947],{"type":38,"value":1037},{"type":38,"value":1949}," HQ (policy Secrets in prompts) · ",{"type":29,"tag":34,"props":1951,"children":1952},{},[1953],{"type":38,"value":1954},"Why",{"type":38,"value":1956}," \"Policy Secrets in prompts, enforced for Engineering since 3 November\"\n",{"type":29,"tag":34,"props":1958,"children":1959},{},[1960],{"type":38,"value":1961},"Subject",{"type":38,"value":1963}," A paste into ChatGPT was blocked",{"type":29,"tag":1965,"props":1966,"children":1967},"ol",{},[1968,1973,1978],{"type":29,"tag":883,"props":1969,"children":1970},{},[1971],{"type":38,"value":1972},"At 14:02 qcontrol blocked a paste into chat.openai.com because the text held an AWS access key.",{"type":29,"tag":883,"props":1974,"children":1975},{},[1976],{"type":38,"value":1977},"The key stayed on this machine; your company's policy Secrets in prompts keeps credentials out of AI tools.",{"type":29,"tag":883,"props":1979,"children":1980},{},[1981],{"type":38,"value":1982},"If this was work you needed to do, contact IT from here; otherwise nothing more happens.",{"type":29,"tag":30,"props":1984,"children":1985},{},[1986,1991,1993,1998],{"type":29,"tag":34,"props":1987,"children":1988},{},[1989],{"type":38,"value":1990},"Actions",{"type":38,"value":1992}," Contact IT · See the policy · ",{"type":29,"tag":34,"props":1994,"children":1995},{},[1996],{"type":38,"value":1997},"Links",{"type":38,"value":1999}," finding F-2291-0412, policy P-SECRETS",{"type":29,"tag":1617,"props":2001,"children":2003},{"id":2002},"e2-enforcement-notice-local-mode-from-qcontrol-attention-v1-if-ruled-in",[2004,2006,2011,2013,2019],{"type":38,"value":2005},"E2 · ",{"type":29,"tag":50,"props":2007,"children":2009},{"className":2008},[],[2010],{"type":38,"value":218},{"type":38,"value":2012},", local mode (",{"type":29,"tag":50,"props":2014,"children":2016},{"className":2015},[],[2017],{"type":38,"value":2018},"from: qcontrol",{"type":38,"value":2020},") · attention · V1 if ruled in",{"type":29,"tag":30,"props":2022,"children":2023},{},[2024,2028,2030,2034,2036,2040],{"type":29,"tag":34,"props":2025,"children":2026},{},[2027],{"type":38,"value":1037},{"type":38,"value":2029}," qcontrol on this machine · ",{"type":29,"tag":34,"props":2031,"children":2032},{},[2033],{"type":38,"value":1954},{"type":38,"value":2035}," \"Policy Personal data in prompts, from this machine's qcontrol configuration; no HQ connected\"\n",{"type":29,"tag":34,"props":2037,"children":2038},{},[2039],{"type":38,"value":1961},{"type":38,"value":2041}," An upload to Claude was blocked",{"type":29,"tag":1965,"props":2043,"children":2044},{},[2045,2050,2055],{"type":29,"tag":883,"props":2046,"children":2047},{},[2048],{"type":38,"value":2049},"At 09:41 qcontrol blocked the upload of customer-export.csv to claude.ai because the file holds email addresses and phone numbers.",{"type":29,"tag":883,"props":2051,"children":2052},{},[2053],{"type":38,"value":2054},"The file stayed here; this machine's policy keeps personal data out of AI tools.",{"type":29,"tag":883,"props":2056,"children":2057},{},[2058,2060,2066],{"type":38,"value":2059},"If this upload was work you needed to do, write to ",{"type":29,"tag":137,"props":2061,"children":2063},{"href":2062},"mailto:it-help@acme.example",[2064],{"type":38,"value":2065},"it-help@acme.example",{"type":38,"value":2067},", the contact named in this machine's qcontrol configuration.",{"type":29,"tag":30,"props":2069,"children":2070},{},[2071,2075,2077],{"type":29,"tag":34,"props":2072,"children":2073},{},[2074],{"type":38,"value":1990},{"type":38,"value":2076}," Write to IT (mailto) · See the policy (local) · ",{"type":29,"tag":50,"props":2078,"children":2080},{"className":2079},[],[2081],{"type":38,"value":2082},"local: true",{"type":29,"tag":1617,"props":2084,"children":2086},{"id":2085},"e3-hq-notice-info-later",[2087,2089,2094],{"type":38,"value":2088},"E3 · ",{"type":29,"tag":50,"props":2090,"children":2092},{"className":2091},[],[2093],{"type":38,"value":254},{"type":38,"value":2095}," · info · later",{"type":29,"tag":30,"props":2097,"children":2098},{},[2099,2103,2105,2109,2111,2115],{"type":29,"tag":34,"props":2100,"children":2101},{},[2102],{"type":38,"value":1037},{"type":38,"value":2104}," HQ · Dana Whitfield · ",{"type":29,"tag":34,"props":2106,"children":2107},{},[2108],{"type":38,"value":1954},{"type":38,"value":2110}," \"Dana Whitfield at HQ sent this to every team\"\n",{"type":29,"tag":34,"props":2112,"children":2113},{},[2114],{"type":38,"value":1961},{"type":38,"value":2116}," AI tools: what changes on Monday",{"type":29,"tag":1965,"props":2118,"children":2119},{},[2120,2125,2130],{"type":29,"tag":883,"props":2121,"children":2122},{},[2123],{"type":38,"value":2124},"From Monday 17 November, pasting source code into AI tools other than GitHub Copilot and Claude for Work will be blocked on company laptops.",{"type":29,"tag":883,"props":2126,"children":2127},{},[2128],{"type":38,"value":2129},"The change comes out of October's security review and applies to every team.",{"type":29,"tag":883,"props":2131,"children":2132},{},[2133],{"type":38,"value":2134},"Nothing to do now; if your work needs another tool, ask IT before Monday.",{"type":29,"tag":30,"props":2136,"children":2137},{},[2138,2140,2144,2146,2151],{"type":38,"value":2139},"Signed Dana Whitfield, HQ · ",{"type":29,"tag":34,"props":2141,"children":2142},{},[2143],{"type":38,"value":1990},{"type":38,"value":2145}," Ask IT · See the policy · ",{"type":29,"tag":50,"props":2147,"children":2149},{"className":2148},[],[2150],{"type":38,"value":1254},{"type":38,"value":2152}," Monday 17 November 09:00",{"type":29,"tag":1617,"props":2154,"children":2156},{"id":2155},"e4-identity-confirmation-info-the-v1-flow",[2157,2159,2164,2166],{"type":38,"value":2158},"E4 · ",{"type":29,"tag":50,"props":2160,"children":2162},{"className":2161},[],[2163],{"type":38,"value":289},{"type":38,"value":2165}," · info · ",{"type":29,"tag":34,"props":2167,"children":2168},{},[2169],{"type":38,"value":2170},"the V1 flow",{"type":29,"tag":30,"props":2172,"children":2173},{},[2174,2178,2180,2184,2186,2190],{"type":29,"tag":34,"props":2175,"children":2176},{},[2177],{"type":38,"value":1037},{"type":38,"value":2179}," HQ · ",{"type":29,"tag":34,"props":2181,"children":2182},{},[2183],{"type":38,"value":1954},{"type":38,"value":2185}," \"You connected this machine from Connect at 11:20\"\n",{"type":29,"tag":34,"props":2187,"children":2188},{},[2189],{"type":38,"value":1961},{"type":38,"value":2191}," This machine is connected to HQ",{"type":29,"tag":1965,"props":2193,"children":2194},{},[2195,2207,2212],{"type":29,"tag":883,"props":2196,"children":2197},{},[2198,2200,2206],{"type":38,"value":2199},"MBP-2291 is now connected to HQ at hq.acme.example as ",{"type":29,"tag":137,"props":2201,"children":2203},{"href":2202},"mailto:mark@acme.example",[2204],{"type":38,"value":2205},"mark@acme.example",{"type":38,"value":1770},{"type":29,"tag":883,"props":2208,"children":2209},{},[2210],{"type":38,"value":2211},"HQ manages this machine's configuration from there, and what qcontrol finds here is reported to it.",{"type":29,"tag":883,"props":2213,"children":2214},{},[2215],{"type":38,"value":2216},"Nothing to do; Status shows what is reported, and Connect lets you disconnect if this is not your machine.",{"type":29,"tag":30,"props":2218,"children":2219},{},[2220,2224],{"type":29,"tag":34,"props":2221,"children":2222},{},[2223],{"type":38,"value":1990},{"type":38,"value":2225}," Open Status · Open Connect · the same type carries \"sign in again\" (the credential expired) and \"HQ disconnected this machine\"",{"type":29,"tag":1617,"props":2227,"children":2229},{"id":2228},"e5-censure-required-later",[2230,2232,2237],{"type":38,"value":2231},"E5 · ",{"type":29,"tag":50,"props":2233,"children":2235},{"className":2234},[],[2236],{"type":38,"value":323},{"type":38,"value":2238}," · required · later",{"type":29,"tag":30,"props":2240,"children":2241},{},[2242,2246,2247,2252,2254,2258,2260,2264],{"type":29,"tag":34,"props":2243,"children":2244},{},[2245],{"type":38,"value":1037},{"type":38,"value":2104},{"type":29,"tag":50,"props":2248,"children":2250},{"className":2249},[],[2251],{"type":38,"value":1856},{"type":38,"value":2253}," · ",{"type":29,"tag":34,"props":2255,"children":2256},{},[2257],{"type":38,"value":1954},{"type":38,"value":2259}," \"Written by Dana Whitfield at HQ and shown as sent; Qpoint does not edit censures\"\n",{"type":29,"tag":34,"props":2261,"children":2262},{},[2263],{"type":38,"value":1961},{"type":38,"value":2265}," From HQ: stop using a personal ChatGPT account for work",{"type":29,"tag":1965,"props":2267,"children":2268},{},[2269,2274,2279],{"type":29,"tag":883,"props":2270,"children":2271},{},[2272],{"type":38,"value":2273},"Over the last two weeks, work documents were pasted into a personal ChatGPT account from this machine.",{"type":29,"tag":883,"props":2275,"children":2276},{},[2277],{"type":38,"value":2278},"Company data in a personal account sits outside our agreement with OpenAI and cannot be recalled.",{"type":29,"tag":883,"props":2280,"children":2281},{},[2282],{"type":38,"value":2283},"Stop, use the company's Claude for Work account instead, and acknowledge this notice.",{"type":29,"tag":30,"props":2285,"children":2286},{},[2287,2291],{"type":29,"tag":34,"props":2288,"children":2289},{},[2290],{"type":38,"value":1990},{"type":38,"value":2292}," Acknowledge (added by the app) · Contact IT · the \"Required\" pill with \"1 of 3 this month\"",{"type":29,"tag":1617,"props":2294,"children":2296},{"id":2295},"e6-responsibility-attention-requires-acknowledgement-later",[2297,2299,2304],{"type":38,"value":2298},"E6 · ",{"type":29,"tag":50,"props":2300,"children":2302},{"className":2301},[],[2303],{"type":38,"value":359},{"type":38,"value":2305}," · attention · requires acknowledgement · later",{"type":29,"tag":30,"props":2307,"children":2308},{},[2309,2313,2314,2318,2320,2324],{"type":29,"tag":34,"props":2310,"children":2311},{},[2312],{"type":38,"value":1037},{"type":38,"value":2104},{"type":29,"tag":34,"props":2315,"children":2316},{},[2317],{"type":38,"value":1954},{"type":38,"value":2319}," \"Dana Whitfield at HQ assigned this to you\"\n",{"type":29,"tag":34,"props":2321,"children":2322},{},[2323],{"type":38,"value":1961},{"type":38,"value":2325}," You now own the Jira MCP server",{"type":29,"tag":1965,"props":2327,"children":2328},{},[2329,2334,2339],{"type":29,"tag":883,"props":2330,"children":2331},{},[2332],{"type":38,"value":2333},"HQ made you the owner of the Jira MCP server the Platform team uses, from today.",{"type":29,"tag":883,"props":2335,"children":2336},{},[2337],{"type":38,"value":2338},"The owner is asked before the server is blocked and reviews its tool list when it changes.",{"type":29,"tag":883,"props":2340,"children":2341},{},[2342],{"type":38,"value":2343},"Acknowledge to take it on, or reply if this should be someone else.",{"type":29,"tag":30,"props":2345,"children":2346},{},[2347,2351,2353,2357],{"type":29,"tag":34,"props":2348,"children":2349},{},[2350],{"type":38,"value":1990},{"type":38,"value":2352}," Acknowledge · Reply · See the server · ",{"type":29,"tag":34,"props":2354,"children":2355},{},[2356],{"type":38,"value":1997},{"type":38,"value":2358}," the MCP server's page",{"type":29,"tag":1617,"props":2360,"children":2362},{"id":2361},"e7-training-assignment-c133-attention-later",[2363,2365,2370],{"type":38,"value":2364},"E7 · ",{"type":29,"tag":50,"props":2366,"children":2368},{"className":2367},[],[2369],{"type":38,"value":394},{"type":38,"value":2371}," (c133) · attention · later",{"type":29,"tag":30,"props":2373,"children":2374},{},[2375,2379,2380,2384,2386,2390],{"type":29,"tag":34,"props":2376,"children":2377},{},[2378],{"type":38,"value":1037},{"type":38,"value":1949},{"type":29,"tag":34,"props":2381,"children":2382},{},[2383],{"type":38,"value":1954},{"type":38,"value":2385}," \"Policy Secrets in prompts assigns this training after two blocked pastes\"\n",{"type":29,"tag":34,"props":2387,"children":2388},{},[2389],{"type":38,"value":1961},{"type":38,"value":2391}," A three-minute training: secrets in prompts",{"type":29,"tag":1965,"props":2393,"children":2394},{},[2395,2400,2405],{"type":29,"tag":883,"props":2396,"children":2397},{},[2398],{"type":38,"value":2399},"Twice this week a credential was pasted into an AI tool from this machine, and both pastes were blocked.",{"type":29,"tag":883,"props":2401,"children":2402},{},[2403],{"type":38,"value":2404},"A three-minute training shows what to paste instead and how to get a key rotated when one slips.",{"type":29,"tag":883,"props":2406,"children":2407},{},[2408],{"type":38,"value":2409},"Take it when you have a moment; completion goes into the audit log as proof of correction.",{"type":29,"tag":30,"props":2411,"children":2412},{},[2413,2417,2419,2423,2425,2430,2432],{"type":29,"tag":34,"props":2414,"children":2415},{},[2416],{"type":38,"value":1990},{"type":38,"value":2418}," Start training · ",{"type":29,"tag":34,"props":2420,"children":2421},{},[2422],{"type":38,"value":1997},{"type":38,"value":2424}," training T-SECRETS-1, findings F-2291-0412 and F-2291-0415 · ends as ",{"type":29,"tag":50,"props":2426,"children":2428},{"className":2427},[],[2429],{"type":38,"value":1204},{"type":38,"value":2431}," on ",{"type":29,"tag":50,"props":2433,"children":2435},{"className":2434},[],[2436],{"type":38,"value":597},{"type":29,"tag":1617,"props":2438,"children":2440},{"id":2439},"e8-diagnostics-request-attention-later",[2441,2443,2448],{"type":38,"value":2442},"E8 · ",{"type":29,"tag":50,"props":2444,"children":2446},{"className":2445},[],[2447],{"type":38,"value":428},{"type":38,"value":2449}," · attention · later",{"type":29,"tag":30,"props":2451,"children":2452},{},[2453,2457,2458,2462,2464,2468],{"type":29,"tag":34,"props":2454,"children":2455},{},[2456],{"type":38,"value":1037},{"type":38,"value":2104},{"type":29,"tag":34,"props":2459,"children":2460},{},[2461],{"type":38,"value":1954},{"type":38,"value":2463}," \"Dana Whitfield at HQ asked, about the slow starts you reported on 8 November\"\n",{"type":29,"tag":34,"props":2465,"children":2466},{},[2467],{"type":38,"value":1961},{"type":38,"value":2469}," HQ asks for diagnostics from this machine",{"type":29,"tag":1965,"props":2471,"children":2472},{},[2473,2478,2483],{"type":29,"tag":883,"props":2474,"children":2475},{},[2476],{"type":38,"value":2477},"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.",{"type":29,"tag":883,"props":2479,"children":2480},{},[2481],{"type":38,"value":2482},"The package holds qcontrol's own logs and settings and nothing of your own files or messages; you can read it before it goes.",{"type":29,"tag":883,"props":2484,"children":2485},{},[2486],{"type":38,"value":2487},"Review and send, or decline; Dana is told either way.",{"type":29,"tag":30,"props":2489,"children":2490},{},[2491,2495,2497,2502,2503,2508],{"type":29,"tag":34,"props":2492,"children":2493},{},[2494],{"type":38,"value":1990},{"type":38,"value":2496}," Review and send · Decline · ends as ",{"type":29,"tag":50,"props":2498,"children":2500},{"className":2499},[],[2501],{"type":38,"value":1204},{"type":38,"value":2431},{"type":29,"tag":50,"props":2504,"children":2506},{"className":2505},[],[2507],{"type":38,"value":631},{"type":38,"value":2509}," (sent or declined)",{"type":29,"tag":1617,"props":2511,"children":2513},{"id":2512},"e9-sensor-state-degraded-attention-later-the-tray-is-c131-phase-3",[2514,2516,2521],{"type":38,"value":2515},"E9 · ",{"type":29,"tag":50,"props":2517,"children":2519},{"className":2518},[],[2520],{"type":38,"value":461},{"type":38,"value":2522},", degraded · attention · later (the tray is c131 Phase 3)",{"type":29,"tag":30,"props":2524,"children":2525},{},[2526,2530,2531,2535,2537,2541],{"type":29,"tag":34,"props":2527,"children":2528},{},[2529],{"type":38,"value":1037},{"type":38,"value":2029},{"type":29,"tag":34,"props":2532,"children":2533},{},[2534],{"type":38,"value":1954},{"type":38,"value":2536}," \"qcontrol lost its tap on Safari at 10:15 and it has stayed lost for 5 minutes\"\n",{"type":29,"tag":34,"props":2538,"children":2539},{},[2540],{"type":38,"value":1961},{"type":38,"value":2542}," qcontrol stopped seeing Safari",{"type":29,"tag":1965,"props":2544,"children":2545},{},[2546,2551,2556],{"type":29,"tag":883,"props":2547,"children":2548},{},[2549],{"type":38,"value":2550},"Since 10:15 qcontrol has not seen traffic from Safari on this machine; other apps are still covered.",{"type":29,"tag":883,"props":2552,"children":2553},{},[2554],{"type":38,"value":2555},"Policies cannot act on what is not seen, so Safari is unprotected until this is fixed, and HQ sees the same gap.",{"type":29,"tag":883,"props":2557,"children":2558},{},[2559],{"type":38,"value":2560},"Quit and reopen Safari; if the Status line stays amber, contact IT from here.",{"type":29,"tag":30,"props":2562,"children":2563},{},[2564,2568,2570,2575],{"type":29,"tag":34,"props":2565,"children":2566},{},[2567],{"type":38,"value":1990},{"type":38,"value":2569}," Open Status · Contact IT · ends as ",{"type":29,"tag":50,"props":2571,"children":2573},{"className":2572},[],[2574],{"type":38,"value":1204},{"type":38,"value":2576}," when the tap returns",{"type":29,"tag":1617,"props":2578,"children":2580},{"id":2579},"e10-contact-it-the-citizens-reply-to-e1-later-with-e1",[2581,2583,2588],{"type":38,"value":2582},"E10 · ",{"type":29,"tag":50,"props":2584,"children":2586},{"className":2585},[],[2587],{"type":38,"value":564},{"type":38,"value":2589},", the citizen's reply to E1 · later with E1",{"type":29,"tag":30,"props":2591,"children":2592},{},[2593,2597,2599,2603,2605,2610,2612,2616],{"type":29,"tag":34,"props":2594,"children":2595},{},[2596],{"type":38,"value":1037},{"type":38,"value":2598}," Mark Parson · MBP-2291 · ",{"type":29,"tag":34,"props":2600,"children":2601},{},[2602],{"type":38,"value":1042},{"type":38,"value":2604}," the plane · ",{"type":29,"tag":50,"props":2606,"children":2608},{"className":2607},[],[2609],{"type":38,"value":1709},{"type":38,"value":2611}," E1 · the person's own words under three prompts; R2 does not bind the person\n",{"type":29,"tag":34,"props":2613,"children":2614},{},[2615],{"type":38,"value":1961},{"type":38,"value":2617}," Re: A paste into ChatGPT was blocked",{"type":29,"tag":879,"props":2619,"children":2620},{},[2621,2632,2642],{"type":29,"tag":883,"props":2622,"children":2623},{},[2624,2630],{"type":29,"tag":2625,"props":2626,"children":2627},"em",{},[2628],{"type":38,"value":2629},"What were you doing?",{"type":38,"value":2631}," Pasting a config file to get help with a deploy script; I did not see the key in it.",{"type":29,"tag":883,"props":2633,"children":2634},{},[2635,2640],{"type":29,"tag":2625,"props":2636,"children":2637},{},[2638],{"type":38,"value":2639},"What do you need?",{"type":38,"value":2641}," A way to share config files safely, or an exception for this project.",{"type":29,"tag":883,"props":2643,"children":2644},{},[2645,2650],{"type":29,"tag":2625,"props":2646,"children":2647},{},[2648],{"type":38,"value":2649},"Anything else?",{"type":38,"value":2651}," The key belongs to a test account.",{"type":29,"tag":30,"props":2653,"children":2654},{},[2655,2660],{"type":29,"tag":34,"props":2656,"children":2657},{},[2658],{"type":38,"value":2659},"Attached automatically",{"type":38,"value":2661}," the policy, the finding, this machine and the time · lands in the operator's inbox as a reply on E1's thread",{"type":29,"tag":1617,"props":2663,"children":2665},{"id":2664},"two-more-for-the-operators-inbox-not-among-the-ten",[2666],{"type":38,"value":2667},"Two more, for the operator's inbox (not among the ten)",{"type":29,"tag":30,"props":2669,"children":2670},{},[2671,2679,2681,2685,2687,2691],{"type":29,"tag":34,"props":2672,"children":2673},{},[2674],{"type":29,"tag":50,"props":2675,"children":2677},{"className":2676},[],[2678],{"type":38,"value":698},{"type":38,"value":2680}," (c136) · from the plane · to the operator · info · ",{"type":29,"tag":34,"props":2682,"children":2683},{},[2684],{"type":38,"value":1961},{"type":38,"value":2686}," 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. · ",{"type":29,"tag":34,"props":2688,"children":2689},{},[2690],{"type":38,"value":1990},{"type":38,"value":2692}," See the grant · Revoke",{"type":29,"tag":30,"props":2694,"children":2695},{},[2696,2704],{"type":29,"tag":34,"props":2697,"children":2698},{},[2699],{"type":29,"tag":50,"props":2700,"children":2702},{"className":2701},[],[2703],{"type":38,"value":495},{"type":38,"value":2705},", Dana's answer to E10 · from HQ · Dana Whitfield · to the person · tray · 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.",{"type":29,"tag":97,"props":2707,"children":2709},{"id":2708},"_11-voice-check",[2710],{"type":38,"value":23},{"type":29,"tag":30,"props":2712,"children":2713},{},[2714,2716,2722,2724,2730,2732,2738,2740,2745],{"type":38,"value":2715},"Checked on 2026-11-09 with the brand MCP's ",{"type":29,"tag":50,"props":2717,"children":2719},{"className":2718},[],[2720],{"type":38,"value":2721},"check-brand-voice",{"type":38,"value":2723}," tool (this session had it): E1, E2 and E9 under the ",{"type":29,"tag":50,"props":2725,"children":2727},{"className":2726},[],[2728],{"type":38,"value":2729},"errors",{"type":38,"value":2731}," context, the rest under ",{"type":29,"tag":50,"props":2733,"children":2735},{"className":2734},[],[2736],{"type":38,"value":2737},"productUI",{"type":38,"value":2739},". Twelve texts (the ten plus the two operator-side ones), ",{"type":29,"tag":34,"props":2741,"children":2742},{},[2743],{"type":38,"value":2744},"zero violations",{"type":38,"value":2746}," across the 12 to 13 rules each (em dashes, rule-of-three patterns, false oppositions, AI-favoured vocabulary, superlatives, exclamation points in UI, and the rest). Two hand rules the tool does not check, applied while writing: no severity word stronger than \"attention\" or \"required\" (R4), and each body answers the three questions in order (R2). The lint the operator's send form runs (§9) is the same tool over the three sentences.",{"type":29,"tag":97,"props":2748,"children":2750},{"id":2749},"_12-what-lands-where",[2751],{"type":38,"value":24},{"type":29,"tag":879,"props":2753,"children":2754},{},[2755,2832,2878],{"type":29,"tag":883,"props":2756,"children":2757},{},[2758,2774,2775,2781,2783,2789,2790,2796,2797,2802,2803,2809,2810,2816,2817,2823,2824,2830],{"type":29,"tag":34,"props":2759,"children":2760},{},[2761,2766,2767,2772],{"type":29,"tag":50,"props":2762,"children":2764},{"className":2763},[],[2765],{"type":38,"value":63},{"type":38,"value":737},{"type":29,"tag":50,"props":2768,"children":2770},{"className":2769},[],[2771],{"type":38,"value":55},{"type":38,"value":2773}," crate:",{"type":38,"value":1350},{"type":29,"tag":50,"props":2776,"children":2778},{"className":2777},[],[2779],{"type":38,"value":2780},"messages.rs",{"type":38,"value":2782}," with ",{"type":29,"tag":50,"props":2784,"children":2786},{"className":2785},[],[2787],{"type":38,"value":2788},"Message",{"type":38,"value":737},{"type":29,"tag":50,"props":2791,"children":2793},{"className":2792},[],[2794],{"type":38,"value":2795},"MessageType",{"type":38,"value":737},{"type":29,"tag":50,"props":2798,"children":2800},{"className":2799},[],[2801],{"type":38,"value":763},{"type":38,"value":737},{"type":29,"tag":50,"props":2804,"children":2806},{"className":2805},[],[2807],{"type":38,"value":2808},"Sender",{"type":38,"value":737},{"type":29,"tag":50,"props":2811,"children":2813},{"className":2812},[],[2814],{"type":38,"value":2815},"Recipient",{"type":38,"value":737},{"type":29,"tag":50,"props":2818,"children":2820},{"className":2819},[],[2821],{"type":38,"value":2822},"Action",{"type":38,"value":737},{"type":29,"tag":50,"props":2825,"children":2827},{"className":2826},[],[2828],{"type":38,"value":2829},"State",{"type":38,"value":2831},"; with c131 Phase 1, written from this document, serde names as the wire shape above. The inbox store (SQLite) and the OS plumbing follow the same shapes.",{"type":29,"tag":883,"props":2833,"children":2834},{},[2835,2840,2841,2846,2848,2854,2856,2862,2863,2869,2870,2876],{"type":29,"tag":34,"props":2836,"children":2837},{},[2838],{"type":38,"value":2839},"The plane (c134 Phase 2):",{"type":38,"value":1350},{"type":29,"tag":50,"props":2842,"children":2844},{"className":2843},[],[2845],{"type":38,"value":71},{"type":38,"value":2847},", the ",{"type":29,"tag":50,"props":2849,"children":2851},{"className":2850},[],[2852],{"type":38,"value":2853},"messages",{"type":38,"value":2855}," resource (list, send, recall, reply, state changes), the three settings (",{"type":29,"tag":50,"props":2857,"children":2859},{"className":2858},[],[2860],{"type":38,"value":2861},"sender_label",{"type":38,"value":737},{"type":29,"tag":50,"props":2864,"children":2866},{"className":2865},[],[2867],{"type":38,"value":2868},"required_on_notices",{"type":38,"value":737},{"type":29,"tag":50,"props":2871,"children":2873},{"className":2872},[],[2874],{"type":38,"value":2875},"required_soft_limit",{"type":38,"value":2877},"), the audit events in §9.",{"type":29,"tag":883,"props":2879,"children":2880},{},[2881,2886,2888,2893],{"type":29,"tag":34,"props":2882,"children":2883},{},[2884],{"type":38,"value":2885},"The design site:",{"type":38,"value":2887}," the lab mock (Phase 2) renders these ten across the five states from ",{"type":29,"tag":50,"props":2889,"children":2891},{"className":2890},[],[2892],{"type":38,"value":1925},{"type":38,"value":1770},1794599382533]