[{"data":1,"prerenderedAt":2302},["ShallowReactive",2],{"$fp-rOOnce7HPNUtPcdzeThQtCkMXnKIn3xRULGti4dac":3,"$fwaB5r1OU5k44VfC056i6IaD2sD3mV6rJ9sRe2QnMHq8":175},{"blueprints":4},[5,22,38,51,63,75,84,94,106,116,124,134,146,154,165],{"slug":6,"title":7,"summary":8,"category":9,"logo":10,"cover":11,"tags":12,"stats":15,"publishedAt":21},"bookmark-manager","Bookmark Manager","A private library of links you save yourself, from browser, phone or a browser's export, filed and tagged, with your own AI agent suggesting tidying.","productivity","\u002F_blueprints\u002Fbookmark-manager.logo.svg","\u002F_blueprints\u002Fbookmark-manager.cover.webp",[13,14],"agentic","single-user",{"entities":16,"capabilities":17,"journeys":18,"scenarios":19,"rules":20},7,15,3,37,18,"2026-10-07T14:20:29+03:00",{"slug":23,"title":24,"summary":25,"category":26,"logo":27,"cover":28,"tags":29,"stats":33,"publishedAt":21},"code-snippet-sharing","Code Snippet Sharing","Keep code snippets with their language, description and tags, share them by unlisted link or in public, fork others' public snippets, and revise code with kept history.","dev-tools","\u002F_blueprints\u002Fcode-snippet-sharing.logo.svg","\u002F_blueprints\u002Fcode-snippet-sharing.cover.webp",[30,31,32],"ai-assisted","multi-user","public",{"entities":34,"capabilities":35,"journeys":36,"scenarios":37,"rules":35},4,9,1,26,{"slug":39,"title":40,"summary":41,"category":9,"logo":42,"cover":43,"tags":44,"stats":45,"publishedAt":50},"content-feed-reader","Content Feed Reader","Follow feeds, catch up and keep worthwhile items in a private web or mobile library, and publish read-only collections for the web.","\u002F_blueprints\u002Fcontent-feed-reader.logo.svg","\u002F_blueprints\u002Fcontent-feed-reader.cover.webp",[32,14],{"entities":46,"capabilities":47,"journeys":48,"scenarios":49,"rules":17},6,20,2,39,"2026-08-04T15:46:50+03:00",{"slug":52,"title":53,"summary":54,"category":55,"logo":56,"cover":57,"tags":58,"stats":59,"publishedAt":21},"event-rsvp","Event RSVP","Create an event, share one invitation link, collect going, maybe and not going answers without guest accounts, keep a waitlist once it is full, and message the guests.","community","\u002F_blueprints\u002Fevent-rsvp.logo.svg","\u002F_blueprints\u002Fevent-rsvp.cover.webp",[30,31,32],{"entities":60,"capabilities":35,"journeys":48,"scenarios":61,"rules":62},5,33,11,{"slug":64,"title":65,"summary":66,"category":67,"logo":68,"cover":69,"tags":70,"stats":71,"publishedAt":21},"flashcard-app","Flashcard App","Build flashcard decks, study what is due with spaced repetition on the web or a phone, draft cards from pasted notes, and share decks for others to copy.","education","\u002F_blueprints\u002Fflashcard-app.logo.svg","\u002F_blueprints\u002Fflashcard-app.cover.webp",[30,31],{"entities":34,"capabilities":72,"journeys":48,"scenarios":73,"rules":74},14,29,13,{"slug":76,"title":77,"summary":78,"category":55,"logo":79,"cover":80,"tags":81,"stats":82,"publishedAt":21},"form-and-survey-builder","Form & Survey Builder","Build a form or survey, share it through a public link, collect answers from people without accounts, and review, summarize and export what came back.","\u002F_blueprints\u002Fform-and-survey-builder.logo.svg","\u002F_blueprints\u002Fform-and-survey-builder.cover.webp",[30,31,32],{"entities":46,"capabilities":20,"journeys":36,"scenarios":83,"rules":20},34,{"slug":85,"title":86,"summary":87,"category":9,"logo":88,"cover":89,"tags":90,"stats":91,"publishedAt":21},"habit-tracker","Habit Tracker","Define habits on a daily, chosen-day or weekly schedule, check them off, follow their streaks, pause one without losing it, and read an optional weekly reflection.","\u002F_blueprints\u002Fhabit-tracker.logo.svg","\u002F_blueprints\u002Fhabit-tracker.cover.webp",[30,14],{"entities":60,"capabilities":92,"journeys":48,"scenarios":93,"rules":17},12,30,{"slug":95,"title":96,"summary":97,"category":98,"logo":99,"cover":100,"tags":101,"stats":102,"publishedAt":21},"kanban-board","Kanban Board","Plan and track a small team's work on shared boards of columns and cards, with stalled work flagged and an AI agent proposing the next cards.","collaboration","\u002F_blueprints\u002Fkanban-board.logo.svg","\u002F_blueprints\u002Fkanban-board.cover.webp",[13,31],{"entities":35,"capabilities":103,"journeys":36,"scenarios":104,"rules":105},23,44,32,{"slug":107,"title":108,"summary":109,"category":9,"logo":110,"cover":111,"tags":112,"stats":113,"publishedAt":21},"notes-app","Notes App","Capture quick notes into an inbox, file them into notebooks, tag and link them, find them again, and let your own AI agent suggest where they belong.","\u002F_blueprints\u002Fnotes-app.logo.svg","\u002F_blueprints\u002Fnotes-app.cover.webp",[13,14],{"entities":46,"capabilities":74,"journeys":36,"scenarios":114,"rules":115},31,17,{"slug":117,"title":118,"summary":119,"category":98,"logo":120,"cover":121,"tags":122,"stats":123,"publishedAt":21},"polls-and-decisions","Polls & Decisions","Put a question to the team as a poll, vote and argue while it is open, and keep the outcome as a decision the team can look up.","\u002F_blueprints\u002Fpolls-and-decisions.logo.svg","\u002F_blueprints\u002Fpolls-and-decisions.cover.webp",[30,31],{"entities":60,"capabilities":62,"journeys":36,"scenarios":73,"rules":74},{"slug":125,"title":126,"summary":127,"category":26,"logo":128,"cover":129,"tags":130,"stats":131,"publishedAt":21},"public-status-page","Public Status Page","Publish a public page of your components and their current status, keep visitors informed through incidents and scheduled maintenance, and email confirmed subscribers every update an operator posts.","\u002F_blueprints\u002Fpublic-status-page.logo.svg","\u002F_blueprints\u002Fpublic-status-page.cover.webp",[30,31,32],{"entities":16,"capabilities":72,"journeys":36,"scenarios":132,"rules":133},28,19,{"slug":135,"title":136,"summary":137,"category":67,"logo":138,"cover":139,"tags":140,"stats":141,"publishedAt":21},"quiz-builder","Quiz Builder","Build quizzes of multiple-choice, true\u002Ffalse and short-answer questions, share them by link or with a class, score each learner's one attempt, and practice what was missed.","\u002F_blueprints\u002Fquiz-builder.logo.svg","\u002F_blueprints\u002Fquiz-builder.cover.webp",[30,31],{"entities":142,"capabilities":143,"journeys":48,"scenarios":144,"rules":145},10,22,45,24,{"slug":147,"title":148,"summary":149,"category":67,"logo":150,"cover":151,"tags":152,"stats":153,"publishedAt":21},"study-planner","Study Planner","Set dated study goals with estimated topics, get a schedule built around your weekly hours, log what you study, and let your AI agent propose revisions.","\u002F_blueprints\u002Fstudy-planner.logo.svg","\u002F_blueprints\u002Fstudy-planner.cover.webp",[13,14],{"entities":46,"capabilities":115,"journeys":48,"scenarios":83,"rules":103},{"slug":155,"title":156,"summary":157,"category":98,"logo":158,"cover":159,"tags":160,"stats":161,"publishedAt":21},"team-wiki","Team Wiki","Keep a team's knowledge in permissioned spaces of nested pages with revision history, find it by search, and let members' AI agents answer from it and suggest updates.","\u002F_blueprints\u002Fteam-wiki.logo.svg","\u002F_blueprints\u002Fteam-wiki.cover.webp",[13,31],{"entities":162,"capabilities":163,"journeys":48,"scenarios":164,"rules":47},8,16,41,{"slug":166,"title":167,"summary":168,"category":26,"logo":169,"cover":170,"tags":171,"stats":173,"publishedAt":21},"url-shortener","URL Shortener","Turn long addresses into short links on the web or through an API, disable them or let them expire, and see how often and where they are followed.","\u002F_blueprints\u002Furl-shortener.logo.svg","\u002F_blueprints\u002Furl-shortener.cover.webp",[172,32,14],"api",{"entities":46,"capabilities":142,"journeys":174,"scenarios":47,"rules":92},0,{"blueprint":176},{"slug":125,"publishedAt":21,"reportDigest":177,"logo":128,"cover":129,"report":178,"source":2299},"16aff525023667c3b781e3b1de9a93ff6efc589568404ecb6f2910a9204e5978",{"schemaVersion":179,"id":125,"title":126,"summary":127,"description":180,"category":26,"authors":181,"license":184,"intent":185,"supportingSections":186,"references":187,"referenceProfile":193,"tags":194,"languages":195,"generatedAt":197,"generator":198,"counts":201,"limitations":202,"model":211,"coverage":2294},"19.0.0","A public page where an operator team tells the people who depend on its service\nwhat is working right now. Operators list the components of their service and\nset each one's status, declare incidents and post updates on a timeline until\nthey are resolved, and schedule maintenance ahead of time. Visitors read the\npage without an account and can subscribe by email to hear about every update.\nDuring an incident an operator can ask for a draft: from the operator's rough\nnotes, the Product fills in the text of the next update with a language model.",[182],{"name":183},"pdd-kit","MIT","When a service breaks, the people who depend on it cannot tell whether the\nproblem is theirs, and the operators who could tell them are busy fixing it.\nThe page gives them one honest, timely place to learn what is wrong, what is\nbeing done, and when it is over — and spares the operators the writing.",[],[188],{"kind":189,"role":190,"target":191,"title":192},"research","context","https:\u002F\u002Fgithub.com\u002Fitai-gendler\u002Fpdd-kit\u002Fblob\u002Fmain\u002Fblueprints\u002Fpublic-status-page\u002Freferences\u002Fassumptions.md","Status page assumptions","portable",[30,31,32],[196],"en","2026-10-12",{"name":199,"version":200},"pdd-kit-cli","0.34.1",{"interfaces":36,"experiences":48,"screens":92,"domains":34,"entities":16,"capabilities":72,"capabilityScenarios":37,"journeys":36,"journeyScenarios":48,"businessRules":133,"variations":174},[203,204,205,206,207,208,209,210],"Component status is what an Operator sets; the Product does not monitor components or measure uptime itself.","Subscribers are notified by email only.","The Product keeps one status page for one operator team, and anyone can read it; there are no private or audience-restricted pages.","Components are one flat list; they are not grouped or nested.","Incidents, their updates and maintenance windows are never deleted, and a posted update is never edited; a correction is a later update.","A maintenance window's times and components are never edited; a changed plan is a cancelled window and a new one.","A language model drafts an update's message from the Operator's notes and can get it wrong; the Operator edits it and decides whether to post it. While the language model is unavailable, Operators write every update themselves.","Operators sign in with an existing account, and who belongs to the operator team is managed outside the product; Visitors read the page without one.",{"taxonomies":212,"interfaces":226,"experiences":242,"screens":265,"domains":551,"entities":579,"capabilities":719,"capabilityScenarios":833,"journeys":1859,"journeyScenarios":1871,"businessRules":2000,"variations":2293},{"scenarioKinds":213},[214,218,222],{"id":215,"name":216,"description":217,"colorSlot":46},"edge","Edge case","An uncommon but expected path with a distinct observable outcome.",{"id":219,"name":220,"description":221,"colorSlot":36},"primary","Primary","The expected observable behavior path.",{"id":223,"name":224,"description":225,"colorSlot":18},"validation","Validation","Input the Product refuses while preserving the Actor's work.",[227],{"id":228,"title":229,"description":230,"type":231,"actorIds":232,"entryPoints":235,"languages":238,"intent":239,"supportingSections":240,"references":241},"status-web","Status page web application","The supported browser Interface for both sides of the status page: the public\npage anyone can read and subscribe from, and the operator console where the\noperator team keeps it current.","web",[233,234],"operator","visitor",[236],{"type":231,"path":237},"\u002F",[],"",[],[],[243,255],{"id":244,"title":245,"description":246,"actorIds":247,"interfaceIds":248,"accessMode":249,"entryPoints":250,"intent":239,"supportingSections":253,"references":254},"status-web::operator-console","Operator console","The signed-in context where Operators keep the page current: the component\nlist and statuses, incidents and their updates, and scheduled maintenance.",[233],[228],"authenticated",[251],{"type":228,"path":252},"\u002Fmanage",[],[],{"id":256,"title":257,"description":258,"actorIds":259,"interfaceIds":260,"accessMode":32,"entryPoints":261,"intent":239,"supportingSections":263,"references":264},"status-web::public-page","Public page","The page the service's users reach without signing in: what is working now,\nwhat is wrong and what is being done about it, what maintenance is coming, and\nwhat happened before. Visitors subscribe and unsubscribe here too.",[234],[228],[262],{"type":228,"path":237},[],[],[266,290,311,334,372,395,417,440,469,490,510,533],{"id":267,"title":268,"description":269,"capabilityIds":270,"entities":273,"capabilityScenarioIds":281,"journeyScenarioIds":284,"entryPoints":285,"intent":239,"supportingSections":288,"references":289},"status-web::operator-console::component-detail","Component detail","Presents one component's name, description and current status, where an\nOperator edits how it is described to visitors or removes it from the page.",[271,272],"edit-component","remove-component",[274],{"entityId":275,"shows":276,"collects":280},"component",[277,278,279],"Description","Name","Status",[277,278],[282,283],"edit-a-component","remove-a-component",[],[286],{"type":228,"path":287},"\u002Fmanage\u002Fcomponents\u002F:componentId",[],[],{"id":291,"title":292,"description":293,"capabilityIds":294,"entities":297,"capabilityScenarioIds":301,"journeyScenarioIds":305,"entryPoints":306,"intent":239,"supportingSections":309,"references":310},"status-web::operator-console::component-list","Component list","Presents every component in the order visitors see them, with the status each\nshows now. Operators add components and change a status here.",[295,296,272],"add-component","change-component-status",[298],{"entityId":275,"shows":299,"collects":300},[278,279],[277,278,279],[302,303,304,283],"add-a-component","change-a-component-status","refuse-a-duplicate-component-name",[],[307],{"type":228,"path":308},"\u002Fmanage\u002Fcomponents",[],[],{"id":312,"title":313,"description":314,"capabilityIds":315,"entities":317,"capabilityScenarioIds":326,"journeyScenarioIds":328,"entryPoints":329,"intent":239,"supportingSections":332,"references":333},"status-web::operator-console::incident-list","Incident list","Presents unresolved incidents first, then resolved ones, each with its impact\nand when it started and ended.",[316],"declare-incident",[318],{"entityId":319,"shows":320,"collects":325},"incident",[321,322,323,324],"Impact","Resolved at","Started at","Title",[],[327],"declare-an-incident",[],[330],{"type":228,"path":331},"\u002Fmanage\u002Fincidents",[],[],{"id":335,"title":336,"description":337,"capabilityIds":338,"entities":341,"capabilityScenarioIds":357,"journeyScenarioIds":364,"entryPoints":367,"intent":239,"supportingSections":370,"references":371},"status-web::operator-console::incident-workspace","Incident workspace","Presents one incident to the operators: its timeline of posted updates, the\nupdate being written, and the notes a draft is prepared from. This is where\nan Operator asks for a draft, edits it, and posts updates until the incident\nis resolved.",[316,339,340],"draft-incident-update","post-incident-update",[342,345,349],{"entityId":275,"shows":343,"collects":344},[278,279],[],{"entityId":319,"shows":346,"collects":348},[347,321,322,323,324],"Affected components",[],{"entityId":350,"shows":351,"collects":356},"incident-update",[352,353,354,355],"Incident status","Message","Notes","Posted at",[352,353,354],[327,358,359,360,361,362,363],"draft-an-update-from-notes","draft-while-the-language-model-is-unavailable","post-a-drafted-update","post-an-update-that-resolves-the-incident","post-an-update-without-a-draft","refuse-an-empty-update",[365,366],"communicate-an-incident-with-drafted-updates","communicate-an-incident-without-a-draft",[368],{"type":228,"path":369},"\u002Fmanage\u002Fincidents\u002F:incidentId",[],[],{"id":373,"title":374,"description":375,"capabilityIds":376,"entities":379,"capabilityScenarioIds":386,"journeyScenarioIds":389,"entryPoints":390,"intent":239,"supportingSections":393,"references":394},"status-web::operator-console::maintenance-detail","Maintenance detail","Presents one maintenance window, where an Operator cancels it before it starts\nor completes it early once it is under way.",[377,378],"cancel-maintenance","complete-maintenance",[380],{"entityId":381,"shows":382,"collects":385},"maintenance",[347,277,383,384,324],"Ends at","Starts at",[],[387,388],"cancel-a-scheduled-window","complete-maintenance-early",[],[391],{"type":228,"path":392},"\u002Fmanage\u002Fmaintenance\u002F:maintenanceId",[],[],{"id":396,"title":397,"description":398,"capabilityIds":399,"entities":401,"capabilityScenarioIds":408,"journeyScenarioIds":411,"entryPoints":412,"intent":239,"supportingSections":415,"references":416},"status-web::operator-console::maintenance-list","Maintenance list","Presents scheduled and in-progress maintenance first, then past windows, and is\nwhere an Operator schedules a new window.",[400],"schedule-maintenance",[402,405],{"entityId":275,"shows":403,"collects":404},[278],[],{"entityId":381,"shows":406,"collects":407},[383,384,324],[347,277,383,384,324],[409,410],"refuse-a-window-that-ends-before-it-starts","schedule-a-maintenance-window",[],[413],{"type":228,"path":414},"\u002Fmanage\u002Fmaintenance",[],[],{"id":418,"title":419,"description":420,"capabilityIds":421,"entities":422,"capabilityScenarioIds":432,"journeyScenarioIds":434,"entryPoints":435,"intent":239,"supportingSections":438,"references":439},"status-web::operator-console::new-incident","New incident","Where an Operator declares an incident: its title and impact, the components\nit affects and the status each should show, and the first message visitors\nwill read.",[316],[423,426,429],{"entityId":275,"shows":424,"collects":425},[278,279],[279],{"entityId":319,"shows":427,"collects":428},[],[347,321,324],{"entityId":350,"shows":430,"collects":431},[],[353],[327,433],"refuse-an-incident-without-a-first-message",[365,366],[436],{"type":228,"path":437},"\u002Fmanage\u002Fincidents\u002Fnew",[],[],{"id":441,"title":442,"description":443,"capabilityIds":444,"entities":447,"capabilityScenarioIds":460,"journeyScenarioIds":464,"entryPoints":465,"intent":239,"supportingSections":467,"references":468},"status-web::public-page::current-status","Current status","Presents the overall status of the service, every component with its status,\neach unresolved incident with its latest update, and maintenance that is in\nprogress or coming up.",[445,446],"start-maintenance","view-status-page",[448,451,454,457],{"entityId":275,"shows":449,"collects":450},[277,278,279],[],{"entityId":319,"shows":452,"collects":453},[321,324],[],{"entityId":350,"shows":455,"collects":456},[353,355],[],{"entityId":381,"shows":458,"collects":459},[383,384,324],[],[461,462,463],"see-all-systems-operational","see-the-current-status","start-maintenance-on-schedule",[],[466],{"type":228,"path":237},[],[],{"id":470,"title":471,"description":472,"capabilityIds":473,"entities":474,"capabilityScenarioIds":481,"journeyScenarioIds":484,"entryPoints":485,"intent":239,"supportingSections":488,"references":489},"status-web::public-page::history","History","Presents the page's past: resolved incidents and completed maintenance,\nnewest first, each opening to its full record.",[378,446],[475,478],{"entityId":319,"shows":476,"collects":477},[321,322,323,324],[],{"entityId":381,"shows":479,"collects":480},[383,384,324],[],[482,483],"browse-past-incidents","complete-maintenance-on-schedule",[],[486],{"type":228,"path":487},"\u002Fhistory",[],[],{"id":491,"title":492,"description":493,"capabilityIds":494,"entities":495,"capabilityScenarioIds":502,"journeyScenarioIds":504,"entryPoints":505,"intent":239,"supportingSections":508,"references":509},"status-web::public-page::incident-detail","Incident detail","Presents one incident: what it affects, when it started and, once resolved,\nwhen it ended, with every posted update on its timeline, newest first.",[446],[496,499],{"entityId":319,"shows":497,"collects":498},[347,321,322,323,324],[],{"entityId":350,"shows":500,"collects":501},[352,353,355],[],[482,503],"read-an-incident-timeline",[],[506],{"type":228,"path":507},"\u002Fincidents\u002F:incidentId",[],[],{"id":511,"title":512,"description":513,"capabilityIds":514,"entities":516,"capabilityScenarioIds":522,"journeyScenarioIds":525,"entryPoints":526,"intent":239,"supportingSections":531,"references":532},"status-web::public-page::subscribe","Subscribe","Where a Visitor enters an email address to receive updates, and where the\nconfirmation link sent to that address lands.",[515],"subscribe-to-updates",[517],{"entityId":518,"shows":519,"collects":521},"subscription",[520],"Email address",[520],[523,524],"refuse-an-invalid-email-address","subscribe-by-email",[],[527,529],{"type":228,"path":528},"\u002Fsubscribe",{"type":228,"path":530},"\u002Fsubscribe\u002Fconfirm\u002F:token",[],[],{"id":534,"title":535,"description":536,"capabilityIds":537,"entities":539,"capabilityScenarioIds":543,"journeyScenarioIds":545,"entryPoints":546,"intent":239,"supportingSections":549,"references":550},"status-web::public-page::unsubscribe","Unsubscribe","Where the unsubscribe link in every update email lands: it names the address\nthat will stop receiving updates.",[538],"unsubscribe",[540],{"entityId":518,"shows":541,"collects":542},[520],[],[544],"unsubscribe-from-an-email",[],[547],{"type":228,"path":548},"\u002Funsubscribe\u002F:token",[],[],[552,559,566,572],{"id":553,"name":554,"description":555,"boundary":556,"colorSlot":36,"intent":239,"supportingSections":557,"references":558},"components","Components","The parts of the service the page reports on: which components are listed,\nwhat they are called, and the status each one shows.","Owns the list of components and each one's status. It does not own the\nincidents or maintenance that explain a status, or who hears about a change.",[],[],{"id":560,"name":561,"description":562,"boundary":563,"colorSlot":48,"intent":239,"supportingSections":564,"references":565},"incidents","Incidents","Unplanned problems and how operators communicate them: declaring an incident,\ndrafting and posting its updates, and resolving it.","Owns incidents and their updates. It does not own the component list, planned\nmaintenance, or the subscriptions updates are emailed to.",[],[],{"id":381,"name":567,"description":568,"boundary":569,"colorSlot":34,"intent":239,"supportingSections":570,"references":571},"Maintenance","Planned work announced ahead of time: scheduling a window, cancelling it, and\nthe window starting and completing on its own schedule.","Owns maintenance windows and their progress. It does not own unplanned\nincidents or the definition of the components a window affects.",[],[],{"id":573,"name":574,"description":575,"boundary":576,"colorSlot":60,"intent":239,"supportingSections":577,"references":578},"subscriptions","Subscriptions","How visitors choose to hear about updates by email: subscribing, confirming the\naddress, and leaving.","Owns email subscriptions and their confirmation. It does not own what is\nannounced, which is decided by the incidents and maintenance operators post.",[],[],[580,596,632,648,678,690,709],{"id":275,"title":581,"description":582,"domainId":553,"kind":583,"acts":583,"singleton":584,"informationKept":585,"relations":592,"states":593,"intent":239,"supportingSections":594,"references":595},"Component","One part of the service the page reports on, such as a website, an API or a\nregion, listed with the status visitors see.",null,false,[586,588,590],{"name":278,"description":587},"what visitors know the component as, unique on the page",{"name":277,"description":589},"one line telling visitors what the component covers",{"name":279,"description":591},"what visitors see for it now: Operational, Degraded performance, Partial outage, Major outage or Under maintenance",[],[],[],[],{"id":319,"title":597,"description":598,"domainId":560,"kind":583,"acts":583,"singleton":584,"informationKept":599,"relations":610,"states":617,"intent":239,"supportingSections":630,"references":631},"Incident","An unplanned problem operators have declared on the page, told through a\ntimeline of updates until it is resolved.",[600,602,604,606,608],{"name":324,"description":601},"the short name visitors see for the problem",{"name":321,"description":603},"how severe the operators judge it: Minor, Major or Critical",{"name":347,"description":605},"the components the operators said it affects",{"name":323,"description":607},"when it was declared",{"name":322,"description":609},"when the operators resolved it, once they have",[611,614],{"entityId":275,"verb":612,"cardinality":613},"affects","many-to-many",{"entityId":350,"verb":615,"cardinality":616},"has","one-to-many",[618,621,624,627],{"name":619,"content":620},"Investigating","Declared; the operators are looking into the cause. It is shown on the current\nstatus page.",{"name":622,"content":623},"Identified","The operators have found the cause and are working on a fix.",{"name":625,"content":626},"Monitoring","A fix is in place and the operators are watching to make sure it holds.",{"name":628,"content":629},"Resolved","Over. It leaves the current status page and stays in the page's history with\nits full timeline.",[],[],{"id":350,"title":633,"description":634,"domainId":560,"kind":583,"acts":583,"singleton":584,"informationKept":635,"relations":644,"states":645,"intent":239,"supportingSections":646,"references":647},"Incident update","One entry on an incident's timeline: what the operators want visitors to know\nat that moment. It exists once an Operator posts it.",[636,638,640,642],{"name":353,"description":637},"the text visitors read",{"name":354,"description":639},"the Operator's rough notes the message was drafted from, kept for the team; never published",{"name":352,"description":641},"the incident status the update announces",{"name":355,"description":643},"when an Operator posted it",[],[],[],[],{"id":381,"title":567,"description":649,"domainId":381,"kind":583,"acts":583,"singleton":584,"informationKept":650,"relations":661,"states":663,"intent":239,"supportingSections":676,"references":677},"A window of planned work, announced on the page before it starts.",[651,653,655,657,659],{"name":324,"description":652},"the short name visitors see for the work",{"name":277,"description":654},"what will happen and what visitors may notice",{"name":384,"description":656},"when the window opens",{"name":383,"description":658},"when the window is planned to close, or when it actually closed",{"name":347,"description":660},"the components that will be under maintenance",[662],{"entityId":275,"verb":612,"cardinality":613},[664,667,670,673],{"name":665,"content":666},"Scheduled","Announced and upcoming. Shown on the current status page ahead of its start.",{"name":668,"content":669},"In progress","Under way. Its affected components show Under maintenance.",{"name":671,"content":672},"Completed","Over. It leaves the current status page and stays in the page's history.",{"name":674,"content":675},"Cancelled","Called off before it started. Nothing in it happens, and it is no longer shown\nas upcoming.",[],[],{"id":233,"title":679,"description":680,"kind":681,"acts":682,"singleton":584,"informationKept":683,"relations":684,"states":687,"intent":239,"supportingSections":688,"references":689},"Operator","A member of the team that runs the service and keeps its status page. Operators\nwork in the operator console, where every operator may do everything; the page\nhas no other signed-in role.","person","external",[],[685],{"entityId":350,"verb":686,"cardinality":616},"posts",[],[],[],{"id":518,"title":691,"description":692,"domainId":573,"kind":583,"acts":583,"singleton":584,"informationKept":693,"relations":699,"states":700,"intent":239,"supportingSections":707,"references":708},"Subscription","An email address that asked to receive the page's updates.",[694,696],{"name":520,"description":695},"where updates are sent",{"name":697,"description":698},"Subscribed at","when the address was entered",[],[701,704],{"name":702,"content":703},"Pending","Entered but not yet confirmed from the address itself. It receives nothing but\nthe confirmation link.",{"name":705,"content":706},"Confirmed","Confirmed from the address. It receives every incident update and maintenance\nannouncement until it is unsubscribed.",[],[],{"id":234,"title":710,"description":711,"kind":681,"acts":682,"singleton":584,"informationKept":712,"relations":713,"states":716,"intent":239,"supportingSections":717,"references":718},"Visitor","Anyone who opens the public status page, without an account. A Visitor reads\nthe page and its history and may subscribe an email address to updates; the\nVisitor who receives a subscription's mail owns it.",[],[714],{"entityId":518,"verb":715,"cardinality":616},"owns",[],[],[],[720,728,736,744,753,761,769,777,785,793,801,809,817,825],{"id":295,"title":721,"description":722,"domainId":553,"availability":723,"intent":725,"supportingSections":726,"references":727},"Component addition","Adds a component to the page's list. A new component starts Operational and\nappears on the public page at once.",[724],{"placeId":244},"Let visitors find the part of the service they depend on, by the name they know it by.",[],[],{"id":377,"title":729,"description":730,"domainId":381,"availability":731,"intent":733,"supportingSections":734,"references":735},"Maintenance cancellation","Calls off a scheduled maintenance window before it starts and tells confirmed\nsubscribers it will not happen.",[732],{"placeId":244},"Tell visitors who planned around a window that it will not happen, so they stop planning around it.",[],[],{"id":296,"title":737,"description":738,"domainId":553,"availability":739,"intent":741,"supportingSections":742,"references":743},"Component status change","Sets the status a component shows to visitors directly, outside any incident\nor maintenance, and with it the overall status of the page.",[740],{"placeId":244},"Let an Operator say how a component is doing when no incident or maintenance explains it.",[],[],{"id":378,"title":745,"description":746,"domainId":381,"availability":747,"intent":750,"supportingSections":751,"references":752},"Maintenance completion","Ends a maintenance window in progress — at its planned end on the Product's own\nschedule, or earlier when an Operator completes it — and returns its components\nto service.",[748,749],{"placeId":244},{"placeId":256},"Tell visitors the planned work is over and the components they depend on are back.",[],[],{"id":316,"title":754,"description":755,"domainId":560,"availability":756,"intent":758,"supportingSections":759,"references":760},"Incident declaration","Opens an incident on the public page with its first update, sets the status\nof the components it affects, and tells confirmed subscribers.",[757],{"placeId":244},"Make it quick to say \"we know, and we are on it\" the moment operators notice\na problem, before they know much more.",[],[],{"id":339,"title":762,"description":763,"domainId":560,"availability":764,"intent":766,"supportingSections":767,"references":768},"Update drafting","When an Operator asks for a draft, the Product sends the Operator's rough notes\nand the incident's title, impact and affected components to a language model,\nand fills the message of the update being written with the text it returns.\nThe draft is kept only if the Operator posts the update; the Product sends\nnothing to the language model unless an Operator asks.",[765],{"placeId":244},"Spare operators the writing while they are busy fixing the problem.",[],[],{"id":271,"title":770,"description":771,"domainId":553,"availability":772,"intent":774,"supportingSections":775,"references":776},"Component editing","Changes how a component is named and described to visitors, without touching\nits status.",[773],{"placeId":244},"Keep a component's name and description matching what visitors know it as.",[],[],{"id":340,"title":778,"description":779,"domainId":560,"availability":780,"intent":782,"supportingSections":783,"references":784},"Update posting","Adds an Operator's update to an incident's public timeline, moves the incident\nto the status the update announces, and emails it to confirmed subscribers.\nPosting the update that resolves an incident closes it.",[781],{"placeId":244},"Keep visitors told what is happening as an incident unfolds, until it is over.",[],[],{"id":272,"title":786,"description":787,"domainId":553,"availability":788,"intent":790,"supportingSections":791,"references":792},"Component removal","Takes a component off the page for good, once the Operator confirms. Past\nincidents and maintenance that affected it stay readable in the page's history.",[789],{"placeId":244},"Keep the page listing only what visitors still depend on, without rewriting its history.",[],[],{"id":400,"title":794,"description":795,"domainId":381,"availability":796,"intent":798,"supportingSections":799,"references":800},"Maintenance scheduling","Announces a window of planned work ahead of time: when it starts and ends and\nwhich components it affects.",[797],{"placeId":244},"Give visitors warning of planned work early enough to plan around it.",[],[],{"id":445,"title":802,"description":803,"domainId":381,"availability":804,"intent":806,"supportingSections":807,"references":808},"Maintenance start","Starts a scheduled maintenance window at its start time, on the Product's own\nschedule, and shows its components as under maintenance.",[805],{"placeId":256},"Show planned work as under way the moment it starts, even with no Operator present.",[],[],{"id":515,"title":810,"description":811,"domainId":573,"availability":812,"intent":814,"supportingSections":815,"references":816},"Email subscription","Lets a Visitor receive every incident update and maintenance announcement by\nemail, once they have confirmed the address from a link sent to it.",[813],{"placeId":256},"Let a Visitor hear about problems and planned work without watching the page.",[],[],{"id":538,"title":818,"description":819,"domainId":573,"availability":820,"intent":822,"supportingSections":823,"references":824},"Unsubscription","Stops all email to a subscribed address, from the link in any message the page\nsends, once the Visitor confirms.",[821],{"placeId":256},"Let a subscriber stop the emails in one step, without an account.",[],[],{"id":446,"title":826,"description":827,"availability":828,"intent":830,"supportingSections":831,"references":832},"Status page reading","Shows anyone, without an account, the current status of the service and\neverything posted about it: unresolved incidents with their timelines,\nmaintenance coming up, and the page's history.",[829],{"placeId":256},"Answer \"is it them or me?\" at a glance, then let a Visitor read as much more as\nthey need.",[],[],[834,873,906,943,983,1029,1079,1143,1190,1226,1260,1305,1358,1392,1427,1460,1490,1521,1554,1583,1620,1661,1694,1733,1782,1822],{"id":302,"capabilityId":295,"title":835,"kindId":219,"actorIds":836,"routes":837,"steps":840,"trigger":867,"decisionPoints":868,"outcome":869,"edgeCases":870,"intent":239,"supportingSections":871,"references":872},"Add a component",[233],[838],{"id":231,"name":839},"Web",[841,850,859],{"text":842,"kind":843,"actorId":233,"capabilityId":295,"entities":844,"unattended":584,"contexts":848},"The Operator enters the name and description of a new component","actor",[845],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":847,"with":583},"reads",[],[849],{"routeId":231,"placeId":291},{"text":851,"kind":852,"actorId":233,"capabilityId":295,"entities":853,"unattended":584,"contexts":857},"The Product adds the component to the page as Operational","product",[854],{"entityId":275,"as":583,"effect":855,"from":583,"to":583,"facts":856,"with":583},"creates",[277,278,279],[858],{"routeId":231,"placeId":291},{"text":860,"kind":861,"actorId":583,"capabilityId":295,"entities":862,"unattended":584,"contexts":865},"The component is listed with its status","condition",[863],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":864,"with":583},[278,279],[866],{"routeId":231,"placeId":291},"The Operator chooses to add a component visitors should see the status of.",[],"The component is on the page, Operational, after the components already listed.",[],[],[],{"id":482,"capabilityId":446,"title":874,"kindId":219,"actorIds":875,"routes":876,"steps":878,"trigger":900,"decisionPoints":901,"outcome":902,"edgeCases":903,"intent":239,"supportingSections":904,"references":905},"Browse past incidents",[234],[877],{"id":231,"name":839},[879,884,893],{"text":880,"kind":843,"actorId":234,"capabilityId":446,"entities":881,"unattended":584,"contexts":882},"The Visitor opens the page's history",[],[883],{"routeId":231,"placeId":470},{"text":885,"kind":852,"actorId":234,"capabilityId":446,"entities":886,"unattended":584,"contexts":891},"The Product lists resolved incidents and completed maintenance, newest first",[887,889],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":888,"with":583},[321,322,323,324],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":890,"with":583},[383,384,324],[892],{"routeId":231,"placeId":470},{"text":894,"kind":843,"actorId":234,"capabilityId":446,"entities":895,"unattended":584,"contexts":898},"The Visitor opens a past incident to read its timeline",[896],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":897,"with":583},[324],[899],{"routeId":231,"placeId":491},"A Visitor wants to know how reliable the service has been.",[],"The Visitor sees what went wrong before and when, and can read any past incident in full.",[],[],[],{"id":387,"capabilityId":377,"title":907,"kindId":219,"actorIds":908,"routes":909,"steps":911,"trigger":935,"decisionPoints":936,"outcome":937,"edgeCases":938,"intent":239,"supportingSections":941,"references":942},"Cancel a scheduled window",[233],[910],{"id":231,"name":839},[912,920,928],{"text":913,"kind":843,"actorId":233,"capabilityId":377,"entities":914,"unattended":584,"contexts":918},"The Operator cancels the window and confirms",[915],{"entityId":381,"as":583,"effect":916,"from":665,"to":674,"facts":917,"with":583},"changes",[],[919],{"routeId":231,"placeId":373},{"text":921,"kind":852,"actorId":233,"capabilityId":377,"entities":922,"unattended":584,"contexts":927},"The Product emails every confirmed subscription that the maintenance is cancelled",[923,925],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":924,"with":583},[520],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":926,"with":583},[324],[],{"text":929,"kind":861,"actorId":583,"capabilityId":377,"entities":930,"unattended":584,"contexts":933},"The maintenance is no longer shown as upcoming",[931],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":932,"with":583},[],[934],{"routeId":231,"placeId":373},"The planned work is called off before it begins.",[],"The window is cancelled, no component changes, and confirmed subscribers know it will not happen.",[939,940],"The window has already started → it cannot be cancelled; the Operator completes it instead.","The Operator declines to confirm → the window stays scheduled.",[],[],{"id":303,"capabilityId":296,"title":944,"kindId":219,"actorIds":945,"routes":946,"steps":948,"trigger":976,"decisionPoints":977,"outcome":978,"edgeCases":979,"intent":239,"supportingSections":981,"references":982},"Change a component's status",[233],[947],{"id":231,"name":839},[949,956,963,970],{"text":950,"kind":843,"actorId":233,"capabilityId":296,"entities":951,"unattended":584,"contexts":954},"The Operator chooses a new status for a component",[952],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":953,"with":583},[278,279],[955],{"routeId":231,"placeId":291},{"text":957,"kind":852,"actorId":233,"capabilityId":296,"entities":958,"unattended":584,"contexts":961},"The Product sets the component to that status",[959],{"entityId":275,"as":583,"effect":916,"from":583,"to":583,"facts":960,"with":583},[279],[962],{"routeId":231,"placeId":291},{"text":964,"kind":852,"actorId":233,"capabilityId":296,"entities":965,"unattended":584,"contexts":968},"The Product works out the page's overall status again from every component",[966],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":967,"with":583},[279],[969],{"routeId":231,"placeId":291},{"text":971,"kind":861,"actorId":583,"capabilityId":296,"entities":972,"unattended":584,"contexts":975},"No subscription is emailed",[973],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":974,"with":583},[],[],"The Operator sees that a component is not working as it should, or is working again, and wants the page to say so.",[],"Visitors see the component's new status and the overall status that follows from it; subscribers are not emailed, because no incident was declared.",[980],"The component is affected by an unresolved incident → its status still changes, and the incident and its timeline are untouched.",[],[],{"id":388,"capabilityId":378,"title":984,"kindId":215,"actorIds":985,"routes":986,"steps":988,"trigger":1013,"decisionPoints":1014,"outcome":1025,"edgeCases":1026,"intent":239,"supportingSections":1027,"references":1028},"Complete maintenance early",[233],[987],{"id":231,"name":839},[989,996,1005],{"text":990,"kind":843,"actorId":233,"capabilityId":378,"entities":991,"unattended":584,"contexts":994},"The Operator completes the maintenance before its planned end",[992],{"entityId":381,"as":583,"effect":916,"from":668,"to":671,"facts":993,"with":583},[383],[995],{"routeId":231,"placeId":373},{"text":997,"kind":852,"actorId":233,"capabilityId":378,"entities":998,"unattended":584,"contexts":1003},"The Product returns the affected components to service",[999,1001],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1000,"with":583},[347],{"entityId":275,"as":583,"effect":916,"from":583,"to":583,"facts":1002,"with":583},[279],[1004],{"routeId":231,"placeId":373},{"text":1006,"kind":852,"actorId":233,"capabilityId":378,"entities":1007,"unattended":584,"contexts":1012},"The Product emails every confirmed subscription that the maintenance is complete",[1008,1010],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1009,"with":583},[520],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1011,"with":583},[324],[],"The work finishes before the window's planned end.",[1015],{"title":1016,"question":1017,"branches":1018},"Component status after maintenance","Is a component also affected by an unresolved incident?",[1019,1022],{"condition":1020,"outcome":1021},"No","it returns to Operational.",{"condition":1023,"outcome":1024},"Yes","it shows the status that incident gives it.","The window is completed with its actual end time, its components show the status that now applies, and confirmed subscribers have been told.",[],[],[],{"id":483,"capabilityId":378,"title":1030,"kindId":219,"actorIds":1031,"routes":1032,"steps":1034,"trigger":1069,"decisionPoints":1070,"outcome":1075,"edgeCases":1076,"intent":239,"supportingSections":1077,"references":1078},"Complete maintenance on schedule",[],[1033],{"id":231,"name":839},[1035,1042,1048,1055,1062],{"text":1036,"kind":861,"actorId":583,"capabilityId":378,"entities":1037,"unattended":1040,"contexts":1041},"A maintenance window in progress reaches its planned end",[1038],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1039,"with":583},[383],true,[],{"text":1043,"kind":852,"actorId":583,"capabilityId":378,"entities":1044,"unattended":584,"contexts":1047},"The Product completes the maintenance",[1045],{"entityId":381,"as":583,"effect":916,"from":668,"to":671,"facts":1046,"with":583},[],[],{"text":997,"kind":852,"actorId":583,"capabilityId":378,"entities":1049,"unattended":584,"contexts":1054},[1050,1052],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1051,"with":583},[347],{"entityId":275,"as":583,"effect":916,"from":583,"to":583,"facts":1053,"with":583},[279],[],{"text":1006,"kind":852,"actorId":583,"capabilityId":378,"entities":1056,"unattended":584,"contexts":1061},[1057,1059],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1058,"with":583},[520],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1060,"with":583},[324],[],{"text":1063,"kind":852,"actorId":583,"capabilityId":378,"entities":1064,"unattended":584,"contexts":1067},"The maintenance is in the page's history",[1065],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1066,"with":583},[383,384,324],[1068],{"routeId":231,"placeId":470},"The planned end of a maintenance window in progress arrives, with no Operator present.",[1071],{"title":1016,"question":1017,"branches":1072},[1073,1074],{"condition":1020,"outcome":1021},{"condition":1023,"outcome":1024},"The window is completed and in the page's history, its components show the status that now applies, and confirmed subscribers have been told.",[],[],[],{"id":327,"capabilityId":316,"title":1080,"kindId":219,"actorIds":1081,"routes":1082,"steps":1084,"trigger":1136,"decisionPoints":1137,"outcome":1138,"edgeCases":1139,"intent":239,"supportingSections":1141,"references":1142},"Declare an incident",[233],[1083],{"id":231,"name":839},[1085,1092,1099,1104,1114,1121,1129],{"text":1086,"kind":843,"actorId":233,"capabilityId":316,"entities":1087,"unattended":584,"contexts":1090},"The Operator starts a new declaration from the list of incidents",[1088],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1089,"with":583},[],[1091],{"routeId":231,"placeId":312},{"text":1093,"kind":843,"actorId":233,"capabilityId":316,"entities":1094,"unattended":584,"contexts":1097},"The Operator enters a title, an impact, the affected components with the status each should show, and a first message",[1095],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1096,"with":583},[278,279],[1098],{"routeId":231,"placeId":418},{"text":1100,"kind":843,"actorId":233,"capabilityId":316,"entities":1101,"unattended":584,"contexts":1102},"The Operator submits the declaration",[],[1103],{"routeId":231,"placeId":418},{"text":1105,"kind":852,"actorId":233,"capabilityId":316,"entities":1106,"unattended":584,"contexts":1112},"The Product opens the incident as Investigating and posts its first incident update",[1107,1109],{"entityId":319,"as":583,"effect":855,"from":583,"to":619,"facts":1108,"with":583},[347,321,323,324],{"entityId":350,"as":583,"effect":855,"from":583,"to":583,"facts":1110,"with":1111},[352,353,355],{"entityId":319,"as":583},[1113],{"routeId":231,"placeId":418},{"text":1115,"kind":852,"actorId":233,"capabilityId":316,"entities":1116,"unattended":584,"contexts":1119},"The Product sets each affected component to the status the Operator chose",[1117],{"entityId":275,"as":583,"effect":916,"from":583,"to":583,"facts":1118,"with":583},[279],[1120],{"routeId":231,"placeId":418},{"text":1122,"kind":852,"actorId":233,"capabilityId":316,"entities":1123,"unattended":584,"contexts":1128},"The Product emails the first incident update to every confirmed subscription",[1124,1126],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1125,"with":583},[520],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1127,"with":583},[353],[],{"text":1130,"kind":852,"actorId":233,"capabilityId":316,"entities":1131,"unattended":584,"contexts":1134},"The Product opens the incident's workspace",[1132],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1133,"with":583},[324],[1135],{"routeId":231,"placeId":335},"The Operator learns of a problem visitors may notice.",[],"The incident is on the current status page with its first update, its components show the chosen statuses, confirmed subscribers have been emailed, and the Operator is in the incident's workspace ready to post the next update.",[1140],"No component is chosen → the incident is declared and shown without changing any component's status.",[],[],{"id":358,"capabilityId":339,"title":1144,"kindId":219,"actorIds":1145,"routes":1146,"steps":1148,"trigger":1182,"decisionPoints":1183,"outcome":1184,"edgeCases":1185,"intent":239,"supportingSections":1188,"references":1189},"Draft an update from notes",[233],[1147],{"id":231,"name":839},[1149,1156,1163,1168,1173],{"text":1150,"kind":843,"actorId":233,"capabilityId":339,"entities":1151,"unattended":584,"contexts":1154},"The Operator writes rough notes on what has changed and asks for a draft",[1152],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1153,"with":583},[],[1155],{"routeId":231,"placeId":335},{"text":1157,"kind":852,"actorId":233,"capabilityId":339,"entities":1158,"unattended":584,"contexts":1161},"The Product asks a language model to draft a message from the notes and the incident",[1159],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1160,"with":583},[347,321,324],[1162],{"routeId":231,"placeId":335},{"text":1164,"kind":852,"actorId":233,"capabilityId":339,"entities":1165,"unattended":584,"contexts":1166},"The Product fills the message of the update being written with the draft, beside the notes",[],[1167],{"routeId":231,"placeId":335},{"text":1169,"kind":843,"actorId":233,"capabilityId":339,"entities":1170,"unattended":584,"contexts":1171},"The Operator edits the drafted message",[],[1172],{"routeId":231,"placeId":335},{"text":1174,"kind":861,"actorId":233,"capabilityId":339,"entities":1175,"unattended":584,"contexts":1180},"Nothing is posted and no subscription is emailed",[1176,1178],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1177,"with":583},[],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1179,"with":583},[],[1181],{"routeId":231,"placeId":335},"The Operator wants help writing the next update for an unresolved incident.",[],"The update being written holds a drafted message the Operator has edited; the public page and subscribers are unchanged until the Operator posts it.",[1186,1187],"The Operator asks for another draft → the new draft replaces the message being written.","The Operator leaves the workspace without posting → the drafted message is not kept.",[],[],{"id":359,"capabilityId":339,"title":1191,"kindId":215,"actorIds":1192,"routes":1193,"steps":1195,"trigger":1220,"decisionPoints":1221,"outcome":1222,"edgeCases":1223,"intent":239,"supportingSections":1224,"references":1225},"Draft while the language model is unavailable",[233],[1194],{"id":231,"name":839},[1196,1203,1208,1213],{"text":1197,"kind":843,"actorId":233,"capabilityId":339,"entities":1198,"unattended":584,"contexts":1201},"The Operator writes rough notes and asks for a draft",[1199],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1200,"with":583},[],[1202],{"routeId":231,"placeId":335},{"text":1204,"kind":861,"actorId":583,"capabilityId":339,"entities":1205,"unattended":584,"contexts":1206},"The language model cannot be reached or returns nothing usable",[],[1207],{"routeId":231,"placeId":335},{"text":1209,"kind":852,"actorId":233,"capabilityId":339,"entities":1210,"unattended":584,"contexts":1211},"The Product says no draft could be prepared and keeps the Operator's notes and message",[],[1212],{"routeId":231,"placeId":335},{"text":1214,"kind":861,"actorId":233,"capabilityId":339,"entities":1215,"unattended":584,"contexts":1218},"No incident update is posted",[1216],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1217,"with":583},[],[1219],{"routeId":231,"placeId":335},"The Operator asks for a draft while the language model the Product queries is unavailable.",[],"The Operator still has their notes and can write and post the update themselves; nothing was published.",[],[],[],{"id":282,"capabilityId":271,"title":1227,"kindId":219,"actorIds":1228,"routes":1229,"steps":1231,"trigger":1253,"decisionPoints":1254,"outcome":1255,"edgeCases":1256,"intent":239,"supportingSections":1258,"references":1259},"Edit a component",[233],[1230],{"id":231,"name":839},[1232,1239,1246],{"text":1233,"kind":843,"actorId":233,"capabilityId":271,"entities":1234,"unattended":584,"contexts":1237},"The Operator changes the component's name or description",[1235],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1236,"with":583},[277,278],[1238],{"routeId":231,"placeId":267},{"text":1240,"kind":852,"actorId":233,"capabilityId":271,"entities":1241,"unattended":584,"contexts":1244},"The Product saves the new name and description",[1242],{"entityId":275,"as":583,"effect":916,"from":583,"to":583,"facts":1243,"with":583},[277,278],[1245],{"routeId":231,"placeId":267},{"text":1247,"kind":861,"actorId":583,"capabilityId":271,"entities":1248,"unattended":584,"contexts":1251},"The public page shows the component under its new name, with its status unchanged",[1249],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1250,"with":583},[278,279],[1252],{"routeId":231,"placeId":267},"The Operator wants a component described differently to visitors.",[],"Visitors see the new name and description; the component's status and the incidents and maintenance naming it are unchanged.",[1257],"The new name is already used by another component → the change is refused, the old name kept, and the Operator can choose another.",[],[],{"id":360,"capabilityId":340,"title":1261,"kindId":219,"actorIds":1262,"routes":1263,"steps":1265,"trigger":1299,"decisionPoints":1300,"outcome":1301,"edgeCases":1302,"intent":239,"supportingSections":1303,"references":1304},"Post a drafted update",[233],[1264],{"id":231,"name":839},[1266,1273,1282,1291],{"text":1267,"kind":843,"actorId":233,"capabilityId":340,"entities":1268,"unattended":584,"contexts":1271},"The Operator reads the drafted message and chooses the incident status it announces",[1269],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1270,"with":583},[],[1272],{"routeId":231,"placeId":335},{"text":1274,"kind":843,"actorId":233,"capabilityId":340,"entities":1275,"unattended":584,"contexts":1280},"The Operator posts the update",[1276,1278],{"entityId":350,"as":583,"effect":855,"from":583,"to":583,"facts":1277,"with":583},[352,353,354,355],{"entityId":319,"as":583,"effect":916,"from":619,"to":622,"facts":1279,"with":583},[],[1281],{"routeId":231,"placeId":335},{"text":1283,"kind":852,"actorId":233,"capabilityId":340,"entities":1284,"unattended":584,"contexts":1289},"The Product adds the incident update to the incident's public timeline",[1285,1287],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1286,"with":583},[353,355],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1288,"with":583},[],[1290],{"routeId":231,"placeId":335},{"text":1292,"kind":852,"actorId":233,"capabilityId":340,"entities":1293,"unattended":584,"contexts":1298},"The Product emails the incident update to every confirmed subscription",[1294,1296],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1295,"with":583},[520],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1297,"with":583},[353],[],"The Operator is satisfied with a drafted message for an incident still being investigated.",[],"The update is on the public timeline with the notes it was drafted from kept for the team, the incident shows Identified, and confirmed subscribers have been emailed the message the Operator approved.",[],[],[],{"id":361,"capabilityId":340,"title":1306,"kindId":215,"actorIds":1307,"routes":1308,"steps":1310,"trigger":1344,"decisionPoints":1345,"outcome":1353,"edgeCases":1354,"intent":239,"supportingSections":1356,"references":1357},"Post an update that resolves the incident",[233],[1309],{"id":231,"name":839},[1311,1320,1329,1337],{"text":1312,"kind":843,"actorId":233,"capabilityId":340,"entities":1313,"unattended":584,"contexts":1318},"The Operator writes a final message and posts it as Resolved",[1314,1316],{"entityId":350,"as":583,"effect":855,"from":583,"to":583,"facts":1315,"with":583},[352,353,355],{"entityId":319,"as":583,"effect":916,"from":625,"to":628,"facts":1317,"with":583},[322],[1319],{"routeId":231,"placeId":335},{"text":1321,"kind":852,"actorId":233,"capabilityId":340,"entities":1322,"unattended":584,"contexts":1327},"The Product sets each affected component to the status that now applies",[1323,1325],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1324,"with":583},[347],{"entityId":275,"as":583,"effect":916,"from":583,"to":583,"facts":1326,"with":583},[279],[1328],{"routeId":231,"placeId":335},{"text":1330,"kind":852,"actorId":233,"capabilityId":340,"entities":1331,"unattended":584,"contexts":1336},"The Product emails the final incident update to every confirmed subscription",[1332,1334],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1333,"with":583},[520],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1335,"with":583},[353],[],{"text":1338,"kind":861,"actorId":583,"capabilityId":340,"entities":1339,"unattended":584,"contexts":1342},"The incident leaves the current status page for the page's history",[1340],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1341,"with":583},[],[1343],{"routeId":231,"placeId":335},"The Operator is confident the fix has held.",[1346],{"title":1347,"question":1348,"branches":1349},"Component status after resolution","Is a component also affected by another unresolved incident or maintenance in progress?",[1350,1351],{"condition":1020,"outcome":1021},{"condition":1023,"outcome":1352},"it keeps the status that other incident or maintenance gives it.","The incident is resolved and in the page's history with its whole timeline, its components show the status that now applies, and confirmed subscribers have been told it is over.",[1355],"The Operator posts a later follow-up on the resolved incident → it is added to the timeline and the incident stays resolved.",[],[],{"id":362,"capabilityId":340,"title":1359,"kindId":219,"actorIds":1360,"routes":1361,"steps":1363,"trigger":1386,"decisionPoints":1387,"outcome":1388,"edgeCases":1389,"intent":239,"supportingSections":1390,"references":1391},"Post an update without a draft",[233],[1362],{"id":231,"name":839},[1364,1371,1379],{"text":1365,"kind":843,"actorId":233,"capabilityId":340,"entities":1366,"unattended":584,"contexts":1369},"The Operator writes a message and chooses the incident status it announces",[1367],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1368,"with":583},[],[1370],{"routeId":231,"placeId":335},{"text":1274,"kind":843,"actorId":233,"capabilityId":340,"entities":1372,"unattended":584,"contexts":1377},[1373,1375],{"entityId":350,"as":583,"effect":855,"from":583,"to":583,"facts":1374,"with":583},[352,353,355],{"entityId":319,"as":583,"effect":916,"from":622,"to":625,"facts":1376,"with":583},[],[1378],{"routeId":231,"placeId":335},{"text":1292,"kind":852,"actorId":233,"capabilityId":340,"entities":1380,"unattended":584,"contexts":1385},[1381,1383],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1382,"with":583},[520],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1384,"with":583},[353],[],"The Operator writes the next update themselves for an incident whose fix is now in place.",[],"The update is on the public timeline, the incident shows Monitoring, and confirmed subscribers have been emailed.",[],[],[],{"id":503,"capabilityId":446,"title":1393,"kindId":219,"actorIds":1394,"routes":1395,"steps":1397,"trigger":1421,"decisionPoints":1422,"outcome":1423,"edgeCases":1424,"intent":239,"supportingSections":1425,"references":1426},"Read an incident timeline",[234],[1396],{"id":231,"name":839},[1398,1405,1414],{"text":1399,"kind":843,"actorId":234,"capabilityId":446,"entities":1400,"unattended":584,"contexts":1403},"The Visitor opens an incident",[1401],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1402,"with":583},[324],[1404],{"routeId":231,"placeId":491},{"text":1406,"kind":852,"actorId":234,"capabilityId":446,"entities":1407,"unattended":584,"contexts":1412},"The Product shows what the incident affects and every posted incident update, newest first",[1408,1410],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1409,"with":583},[347,321,322,323,324],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1411,"with":583},[352,353,355],[1413],{"routeId":231,"placeId":491},{"text":1415,"kind":861,"actorId":234,"capabilityId":446,"entities":1416,"unattended":584,"contexts":1419},"Drafts and their notes are not shown",[1417],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1418,"with":583},[],[1420],{"routeId":231,"placeId":491},"A Visitor wants the full story of one incident.",[],"The Visitor reads every update the operators posted, in order, and nothing they have not posted.",[],[],[],{"id":304,"capabilityId":295,"title":1428,"kindId":223,"actorIds":1429,"routes":1430,"steps":1432,"trigger":1454,"decisionPoints":1455,"outcome":1456,"edgeCases":1457,"intent":239,"supportingSections":1458,"references":1459},"Refuse a duplicate component name",[233],[1431],{"id":231,"name":839},[1433,1440,1447],{"text":1434,"kind":843,"actorId":233,"capabilityId":295,"entities":1435,"unattended":584,"contexts":1438},"The Operator enters a name another component already has",[1436],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1437,"with":583},[278],[1439],{"routeId":231,"placeId":291},{"text":1441,"kind":852,"actorId":233,"capabilityId":295,"entities":1442,"unattended":584,"contexts":1445},"The Product explains that component names must be unique and keeps what was entered",[1443],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1444,"with":583},[],[1446],{"routeId":231,"placeId":291},{"text":1448,"kind":861,"actorId":583,"capabilityId":295,"entities":1449,"unattended":584,"contexts":1452},"No component is added",[1450],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1451,"with":583},[],[1453],{"routeId":231,"placeId":291},"The Operator adds a component under a name the page already lists.",[],"The page's components are unchanged and the Operator can choose another name without retyping the description.",[],[],[],{"id":409,"capabilityId":400,"title":1461,"kindId":223,"actorIds":1462,"routes":1463,"steps":1465,"trigger":1483,"decisionPoints":1484,"outcome":1485,"edgeCases":1486,"intent":239,"supportingSections":1488,"references":1489},"Refuse a window that ends before it starts",[233],[1464],{"id":231,"name":839},[1466,1471,1476],{"text":1467,"kind":843,"actorId":233,"capabilityId":400,"entities":1468,"unattended":584,"contexts":1469},"The Operator schedules a window whose end is not after its start",[],[1470],{"routeId":231,"placeId":396},{"text":1472,"kind":852,"actorId":233,"capabilityId":400,"entities":1473,"unattended":584,"contexts":1474},"The Product explains that the window must end after it starts and keeps what was entered",[],[1475],{"routeId":231,"placeId":396},{"text":1477,"kind":861,"actorId":583,"capabilityId":400,"entities":1478,"unattended":584,"contexts":1481},"No maintenance is scheduled",[1479],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1480,"with":583},[],[1482],{"routeId":231,"placeId":396},"The Operator enters an end time at or before the start time.",[],"Nothing is announced, and the Operator can correct the times without re-entering the rest.",[1487],"The start time has already passed → the window is refused the same way.",[],[],{"id":363,"capabilityId":340,"title":1491,"kindId":223,"actorIds":1492,"routes":1493,"steps":1495,"trigger":1515,"decisionPoints":1516,"outcome":1517,"edgeCases":1518,"intent":239,"supportingSections":1519,"references":1520},"Refuse an empty update",[233],[1494],{"id":231,"name":839},[1496,1501,1506],{"text":1497,"kind":843,"actorId":233,"capabilityId":340,"entities":1498,"unattended":584,"contexts":1499},"The Operator posts an update whose message is empty",[],[1500],{"routeId":231,"placeId":335},{"text":1502,"kind":852,"actorId":233,"capabilityId":340,"entities":1503,"unattended":584,"contexts":1504},"The Product explains that an update needs a message and keeps the notes",[],[1505],{"routeId":231,"placeId":335},{"text":1507,"kind":861,"actorId":233,"capabilityId":340,"entities":1508,"unattended":584,"contexts":1513},"No incident update is posted and no subscription is emailed",[1509,1511],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1510,"with":583},[],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1512,"with":583},[],[1514],{"routeId":231,"placeId":335},"The Operator posts an update with no message.",[],"Nothing is posted or emailed, and the notes are kept.",[],[],[],{"id":433,"capabilityId":316,"title":1522,"kindId":223,"actorIds":1523,"routes":1524,"steps":1526,"trigger":1548,"decisionPoints":1549,"outcome":1550,"edgeCases":1551,"intent":239,"supportingSections":1552,"references":1553},"Refuse an incident without a first message",[233],[1525],{"id":231,"name":839},[1527,1532,1537],{"text":1528,"kind":843,"actorId":233,"capabilityId":316,"entities":1529,"unattended":584,"contexts":1530},"The Operator submits a declaration with no title or no first message",[],[1531],{"routeId":231,"placeId":418},{"text":1533,"kind":852,"actorId":233,"capabilityId":316,"entities":1534,"unattended":584,"contexts":1535},"The Product explains what is missing and keeps everything entered",[],[1536],{"routeId":231,"placeId":418},{"text":1538,"kind":861,"actorId":583,"capabilityId":316,"entities":1539,"unattended":584,"contexts":1546},"No incident is opened, no component changes and no subscription is emailed",[1540,1542,1544],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1541,"with":583},[],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1543,"with":583},[],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1545,"with":583},[],[1547],{"routeId":231,"placeId":418},"The Operator declares an incident without a title or without a first message for visitors.",[],"Nothing is published; the Operator completes the missing part and declares again.",[],[],[],{"id":523,"capabilityId":515,"title":1555,"kindId":223,"actorIds":1556,"routes":1557,"steps":1559,"trigger":1577,"decisionPoints":1578,"outcome":1579,"edgeCases":1580,"intent":239,"supportingSections":1581,"references":1582},"Refuse an invalid email address",[234],[1558],{"id":231,"name":839},[1560,1565,1570],{"text":1561,"kind":843,"actorId":234,"capabilityId":515,"entities":1562,"unattended":584,"contexts":1563},"The Visitor enters something that is not an email address",[],[1564],{"routeId":231,"placeId":511},{"text":1566,"kind":852,"actorId":234,"capabilityId":515,"entities":1567,"unattended":584,"contexts":1568},"The Product explains that it needs a valid email address and keeps what was entered",[],[1569],{"routeId":231,"placeId":511},{"text":1571,"kind":861,"actorId":583,"capabilityId":515,"entities":1572,"unattended":584,"contexts":1575},"No subscription is recorded",[1573],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1574,"with":583},[],[1576],{"routeId":231,"placeId":511},"A Visitor subscribes with text that cannot be an email address.",[],"Nothing is recorded or sent, and the Visitor can correct the address.",[],[],[],{"id":283,"capabilityId":272,"title":1584,"kindId":219,"actorIds":1585,"routes":1586,"steps":1588,"trigger":1612,"decisionPoints":1613,"outcome":1614,"edgeCases":1615,"intent":239,"supportingSections":1618,"references":1619},"Remove a component",[233],[1587],{"id":231,"name":839},[1589,1597,1604],{"text":1590,"kind":843,"actorId":233,"capabilityId":272,"entities":1591,"unattended":584,"contexts":1595},"The Operator removes the component and confirms it should go for good",[1592],{"entityId":275,"as":583,"effect":1593,"from":583,"to":583,"facts":1594,"with":583},"removes",[],[1596],{"routeId":231,"placeId":267},{"text":1598,"kind":852,"actorId":233,"capabilityId":272,"entities":1599,"unattended":584,"contexts":1602},"The Product takes the component off the page and works out the overall status again from the components left",[1600],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1601,"with":583},[279],[1603],{"routeId":231,"placeId":291},{"text":1605,"kind":861,"actorId":583,"capabilityId":272,"entities":1606,"unattended":584,"contexts":1611},"Past incidents and maintenance that affected it still show it in the page's history",[1607,1609],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1608,"with":583},[347],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1610,"with":583},[347],[],"A component no longer exists, or visitors no longer need its status.",[],"The component is gone from the page and the overall status follows from the components left; the page's history still reads as it did.",[1616,1617],"The component is affected by an unresolved incident or by maintenance not yet completed → it cannot be removed until that is over.","The Operator declines to confirm → the component stays on the page.",[],[],{"id":410,"capabilityId":400,"title":1621,"kindId":219,"actorIds":1622,"routes":1623,"steps":1625,"trigger":1655,"decisionPoints":1656,"outcome":1657,"edgeCases":1658,"intent":239,"supportingSections":1659,"references":1660},"Schedule a maintenance window",[233],[1624],{"id":231,"name":839},[1626,1633,1640,1648],{"text":1627,"kind":843,"actorId":233,"capabilityId":400,"entities":1628,"unattended":584,"contexts":1631},"The Operator enters a title, a description, a start and end time, and the affected components",[1629],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1630,"with":583},[278],[1632],{"routeId":231,"placeId":396},{"text":1634,"kind":852,"actorId":233,"capabilityId":400,"entities":1635,"unattended":584,"contexts":1638},"The Product schedules the maintenance",[1636],{"entityId":381,"as":583,"effect":855,"from":583,"to":665,"facts":1637,"with":583},[347,277,383,384,324],[1639],{"routeId":231,"placeId":396},{"text":1641,"kind":852,"actorId":233,"capabilityId":400,"entities":1642,"unattended":584,"contexts":1647},"The Product emails the maintenance announcement to every confirmed subscription",[1643,1645],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1644,"with":583},[520],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1646,"with":583},[383,384,324],[],{"text":1649,"kind":861,"actorId":583,"capabilityId":400,"entities":1650,"unattended":584,"contexts":1653},"The maintenance is listed as upcoming",[1651],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1652,"with":583},[383,384,324],[1654],{"routeId":231,"placeId":396},"The Operator plans work visitors may notice.",[],"The window is shown as upcoming on the public page and confirmed subscribers know when it will happen; no component changes until it starts.",[],[],[],{"id":461,"capabilityId":446,"title":1662,"kindId":215,"actorIds":1663,"routes":1664,"steps":1666,"trigger":1688,"decisionPoints":1689,"outcome":1690,"edgeCases":1691,"intent":239,"supportingSections":1692,"references":1693},"See all systems operational",[234],[1665],{"id":231,"name":839},[1667,1672,1681],{"text":1668,"kind":843,"actorId":234,"capabilityId":446,"entities":1669,"unattended":584,"contexts":1670},"The Visitor opens the status page",[],[1671],{"routeId":231,"placeId":441},{"text":1673,"kind":861,"actorId":583,"capabilityId":446,"entities":1674,"unattended":584,"contexts":1679},"Every component is Operational and no incident is unresolved",[1675,1677],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1676,"with":583},[279],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1678,"with":583},[],[1680],{"routeId":231,"placeId":441},{"text":1682,"kind":852,"actorId":234,"capabilityId":446,"entities":1683,"unattended":584,"contexts":1686},"The Product says all systems are operational and lists the components",[1684],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1685,"with":583},[278,279],[1687],{"routeId":231,"placeId":441},"A Visitor opens the page while nothing is wrong.",[],"The Visitor sees plainly that everything is working, with no incident shown.",[],[],[],{"id":462,"capabilityId":446,"title":1695,"kindId":219,"actorIds":1696,"routes":1697,"steps":1699,"trigger":1727,"decisionPoints":1728,"outcome":1729,"edgeCases":1730,"intent":239,"supportingSections":1731,"references":1732},"See the current status",[234],[1698],{"id":231,"name":839},[1700,1704,1711,1720],{"text":1668,"kind":843,"actorId":234,"capabilityId":446,"entities":1701,"unattended":584,"contexts":1702},[],[1703],{"routeId":231,"placeId":441},{"text":1705,"kind":852,"actorId":234,"capabilityId":446,"entities":1706,"unattended":584,"contexts":1709},"The Product shows the overall status and every component with its status",[1707],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1708,"with":583},[277,278,279],[1710],{"routeId":231,"placeId":441},{"text":1712,"kind":852,"actorId":234,"capabilityId":446,"entities":1713,"unattended":584,"contexts":1718},"The Product shows each unresolved incident with its latest incident update",[1714,1716],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1715,"with":583},[321,324],{"entityId":350,"as":583,"effect":846,"from":583,"to":583,"facts":1717,"with":583},[353,355],[1719],{"routeId":231,"placeId":441},{"text":1721,"kind":852,"actorId":234,"capabilityId":446,"entities":1722,"unattended":584,"contexts":1725},"The Product shows maintenance in progress or coming up",[1723],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1724,"with":583},[383,384,324],[1726],{"routeId":231,"placeId":441},"A Visitor wants to know whether the service is working.",[],"The Visitor sees the overall status, which components are affected, what the operators have said about it, and what maintenance is planned.",[],[],[],{"id":463,"capabilityId":445,"title":1734,"kindId":219,"actorIds":1735,"routes":1736,"steps":1738,"trigger":1776,"decisionPoints":1777,"outcome":1778,"edgeCases":1779,"intent":239,"supportingSections":1780,"references":1781},"Start maintenance on schedule",[],[1737],{"id":231,"name":839},[1739,1745,1751,1759,1767],{"text":1740,"kind":861,"actorId":583,"capabilityId":445,"entities":1741,"unattended":1040,"contexts":1744},"A scheduled maintenance window reaches its start time",[1742],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1743,"with":583},[384],[],{"text":1746,"kind":852,"actorId":583,"capabilityId":445,"entities":1747,"unattended":584,"contexts":1750},"The Product starts the maintenance",[1748],{"entityId":381,"as":583,"effect":916,"from":665,"to":668,"facts":1749,"with":583},[],[],{"text":1752,"kind":852,"actorId":583,"capabilityId":445,"entities":1753,"unattended":584,"contexts":1758},"The Product shows each affected component as Under maintenance",[1754,1756],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1755,"with":583},[347],{"entityId":275,"as":583,"effect":916,"from":583,"to":583,"facts":1757,"with":583},[279],[],{"text":1760,"kind":852,"actorId":583,"capabilityId":445,"entities":1761,"unattended":584,"contexts":1766},"The Product emails every confirmed subscription that the maintenance has started",[1762,1764],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1763,"with":583},[520],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1765,"with":583},[324],[],{"text":1768,"kind":852,"actorId":583,"capabilityId":445,"entities":1769,"unattended":584,"contexts":1774},"The public page shows the maintenance in progress",[1770,1772],{"entityId":381,"as":583,"effect":846,"from":583,"to":583,"facts":1771,"with":583},[383,384,324],{"entityId":275,"as":583,"effect":846,"from":583,"to":583,"facts":1773,"with":583},[279],[1775],{"routeId":231,"placeId":441},"The start time of a scheduled maintenance window arrives, with no Operator present.",[],"The window is in progress, its components show Under maintenance, and confirmed subscribers have been told it has started.",[],[],[],{"id":524,"capabilityId":515,"title":1783,"kindId":219,"actorIds":1784,"routes":1785,"steps":1787,"trigger":1814,"decisionPoints":1815,"outcome":1816,"edgeCases":1817,"intent":239,"supportingSections":1820,"references":1821},"Subscribe by email",[234],[1786],{"id":231,"name":839},[1788,1793,1800,1807],{"text":1789,"kind":843,"actorId":234,"capabilityId":515,"entities":1790,"unattended":584,"contexts":1791},"The Visitor enters an email address",[],[1792],{"routeId":231,"placeId":511},{"text":1794,"kind":852,"actorId":234,"capabilityId":515,"entities":1795,"unattended":584,"contexts":1798},"The Product records a pending subscription and emails a confirmation link to the address",[1796],{"entityId":518,"as":583,"effect":855,"from":583,"to":702,"facts":1797,"with":583},[520,697],[1799],{"routeId":231,"placeId":511},{"text":1801,"kind":843,"actorId":234,"capabilityId":515,"entities":1802,"unattended":584,"contexts":1805},"The Visitor follows the confirmation link",[1803],{"entityId":518,"as":583,"effect":916,"from":702,"to":705,"facts":1804,"with":583},[],[1806],{"routeId":231,"placeId":511},{"text":1808,"kind":852,"actorId":234,"capabilityId":515,"entities":1809,"unattended":584,"contexts":1812},"The Product confirms that the address will receive updates",[1810],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1811,"with":583},[520],[1813],{"routeId":231,"placeId":511},"A Visitor wants to hear about incidents and maintenance without checking the page.",[],"The subscription is confirmed and the address receives every update posted from then on.",[1818,1819],"The address is already subscribed → no second subscription is created, and the Visitor sees the same message as for a new one.","The confirmation link is never followed → the subscription stays pending and receives nothing.",[],[],{"id":544,"capabilityId":538,"title":1823,"kindId":219,"actorIds":1824,"routes":1825,"steps":1827,"trigger":1852,"decisionPoints":1853,"outcome":1854,"edgeCases":1855,"intent":239,"supportingSections":1857,"references":1858},"Unsubscribe from an email",[234],[1826],{"id":231,"name":839},[1828,1833,1840,1847],{"text":1829,"kind":843,"actorId":234,"capabilityId":538,"entities":1830,"unattended":584,"contexts":1831},"The Visitor follows the unsubscribe link in an update email",[],[1832],{"routeId":231,"placeId":534},{"text":1834,"kind":852,"actorId":234,"capabilityId":538,"entities":1835,"unattended":584,"contexts":1838},"The Product names the address that will stop receiving updates",[1836],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1837,"with":583},[520],[1839],{"routeId":231,"placeId":534},{"text":1841,"kind":843,"actorId":234,"capabilityId":538,"entities":1842,"unattended":584,"contexts":1845},"The Visitor confirms",[1843],{"entityId":518,"as":583,"effect":1593,"from":705,"to":583,"facts":1844,"with":583},[],[1846],{"routeId":231,"placeId":534},{"text":1848,"kind":852,"actorId":234,"capabilityId":538,"entities":1849,"unattended":584,"contexts":1850},"The Product confirms that no more updates will be sent",[],[1851],{"routeId":231,"placeId":534},"A subscriber no longer wants the page's emails.",[],"The subscription is gone and the address receives nothing more.",[1856],"The link belongs to a subscription that no longer exists → the Visitor is told the address is not subscribed, and nothing changes.",[],[],[1860],{"id":1861,"title":1862,"goal":1863,"successCriterion":1864,"actorIds":1865,"capabilityIds":1866,"failureOnlyCapabilityIds":1867,"domainIds":1868,"intent":239,"supportingSections":1869,"references":1870},"communicate-an-incident","Communicate an incident","An Operator wants the people affected by a problem to learn about it quickly and\nfollow it until it is fixed.","The incident is resolved on the public page with a timeline of updates the\nOperator posted, each emailed to confirmed subscriptions when it was posted.",[233],[316,339,340],[],[560],[],[],[1872,1950],{"id":365,"journeyId":1861,"result":1873,"title":1874,"kindId":219,"actorIds":1875,"routes":1876,"steps":1878,"trigger":1944,"decisionPoints":1945,"outcome":1946,"edgeCases":1947,"intent":239,"supportingSections":1948,"references":1949},"achieved","Communicate an incident with drafted updates",[233],[1877],{"id":231,"name":839},[1879,1890,1896,1903,1910,1920,1927,1937],{"text":1880,"kind":843,"actorId":233,"capabilityId":316,"entities":1881,"unattended":584,"contexts":1888},"The Operator declares the incident with a first message",[1882,1884],{"entityId":319,"as":583,"effect":855,"from":583,"to":619,"facts":1883,"with":583},[347,321,323,324],{"entityId":350,"as":1885,"effect":855,"from":583,"to":583,"facts":1886,"with":1887},"first-update",[352,353,355],{"entityId":319,"as":583},[1889],{"routeId":231,"placeId":418},{"text":1130,"kind":852,"actorId":233,"capabilityId":316,"entities":1891,"unattended":584,"contexts":1894},[1892],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1893,"with":583},[324],[1895],{"routeId":231,"placeId":335},{"text":1897,"kind":843,"actorId":233,"capabilityId":339,"entities":1898,"unattended":584,"contexts":1901},"The Operator writes notes and asks for a draft",[1899],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1900,"with":583},[],[1902],{"routeId":231,"placeId":335},{"text":1904,"kind":852,"actorId":233,"capabilityId":339,"entities":1905,"unattended":584,"contexts":1908},"The Product asks a language model to draft the next message from the notes and fills the update being written",[1906],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1907,"with":583},[347,321,324],[1909],{"routeId":231,"placeId":335},{"text":1911,"kind":843,"actorId":233,"capabilityId":340,"entities":1912,"unattended":584,"contexts":1918},"The Operator edits the drafted message and posts it as Identified",[1913,1916],{"entityId":350,"as":1914,"effect":855,"from":583,"to":583,"facts":1915,"with":583},"drafted-update",[352,353,354,355],{"entityId":319,"as":583,"effect":916,"from":619,"to":622,"facts":1917,"with":583},[],[1919],{"routeId":231,"placeId":335},{"text":1292,"kind":852,"actorId":233,"capabilityId":340,"entities":1921,"unattended":584,"contexts":1926},[1922,1924],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1923,"with":583},[520],{"entityId":350,"as":1914,"effect":846,"from":583,"to":583,"facts":1925,"with":583},[353],[],{"text":1928,"kind":843,"actorId":233,"capabilityId":340,"entities":1929,"unattended":584,"contexts":1935},"The Operator posts a final incident update resolving the incident",[1930,1933],{"entityId":350,"as":1931,"effect":855,"from":583,"to":583,"facts":1932,"with":583},"final-update",[352,353,355],{"entityId":319,"as":583,"effect":916,"from":622,"to":628,"facts":1934,"with":583},[322],[1936],{"routeId":231,"placeId":335},{"text":1938,"kind":852,"actorId":233,"capabilityId":340,"entities":1939,"unattended":584,"contexts":1942},"The Product returns the affected components to Operational",[1940],{"entityId":275,"as":583,"effect":916,"from":583,"to":583,"facts":1941,"with":583},[279],[1943],{"routeId":231,"placeId":335},"The Operator learns of a problem visitors may notice and wants help writing as it unfolds.",[],"The Journey goal is achieved: the incident went from declared to resolved on the public page, every update on its timeline was one the Operator posted, and the drafted message went out only after the Operator edited and posted it.",[],[],[],{"id":366,"journeyId":1861,"result":1873,"title":1951,"kindId":215,"actorIds":1952,"routes":1953,"steps":1955,"trigger":1994,"decisionPoints":1995,"outcome":1996,"edgeCases":1997,"intent":239,"supportingSections":1998,"references":1999},"Communicate an incident without a draft",[233],[1954],{"id":231,"name":839},[1956,1965,1971,1978,1987],{"text":1880,"kind":843,"actorId":233,"capabilityId":316,"entities":1957,"unattended":584,"contexts":1963},[1958,1960],{"entityId":319,"as":583,"effect":855,"from":583,"to":619,"facts":1959,"with":583},[347,321,323,324],{"entityId":350,"as":1885,"effect":855,"from":583,"to":583,"facts":1961,"with":1962},[352,353,355],{"entityId":319,"as":583},[1964],{"routeId":231,"placeId":418},{"text":1130,"kind":852,"actorId":233,"capabilityId":316,"entities":1966,"unattended":584,"contexts":1969},[1967],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1968,"with":583},[324],[1970],{"routeId":231,"placeId":335},{"text":1972,"kind":843,"actorId":233,"capabilityId":339,"entities":1973,"unattended":584,"contexts":1976},"The Operator asks for a draft and none can be prepared",[1974],{"entityId":319,"as":583,"effect":846,"from":583,"to":583,"facts":1975,"with":583},[],[1977],{"routeId":231,"placeId":335},{"text":1979,"kind":843,"actorId":233,"capabilityId":340,"entities":1980,"unattended":584,"contexts":1985},"The Operator writes the final message and posts it as Resolved",[1981,1983],{"entityId":350,"as":1931,"effect":855,"from":583,"to":583,"facts":1982,"with":583},[352,353,355],{"entityId":319,"as":583,"effect":916,"from":619,"to":628,"facts":1984,"with":583},[322],[1986],{"routeId":231,"placeId":335},{"text":1330,"kind":852,"actorId":233,"capabilityId":340,"entities":1988,"unattended":584,"contexts":1993},[1989,1991],{"entityId":518,"as":583,"effect":846,"from":583,"to":583,"facts":1990,"with":583},[520],{"entityId":350,"as":1931,"effect":846,"from":583,"to":583,"facts":1992,"with":583},[353],[],"The Operator declares an incident while the language model the Product queries for drafts is unavailable.",[],"The Journey goal is achieved: the Operator wrote and posted every update themselves, and the incident was resolved on the public page.",[],[],[],[2001,2014,2026,2038,2050,2066,2080,2099,2114,2129,2144,2164,2180,2195,2210,2231,2248,2265,2281],{"id":2002,"title":2003,"statement":2004,"rationale":2005,"appliesTo":2006,"permits":2011,"intent":239,"supportingSections":2012,"references":2013},"a-maintenance-window-is-never-deleted","A maintenance window is never deleted","Every maintenance window ever announced stays in the page's history, including\none that was cancelled. A changed plan is a cancelled window and a new one.","Visitors who planned around an announced window can still see what became of\nit.",[2007],{"type":2008,"entityId":381,"effect":1593,"from":583,"to":583,"facts":2009,"contexts":2010},"entity",[],[],[],[],[],{"id":2015,"title":2016,"statement":2017,"rationale":2018,"appliesTo":2019,"permits":2023,"intent":239,"supportingSections":2024,"references":2025},"a-posted-update-is-never-deleted","A posted update is never deleted","Once posted, an incident update stays on its incident's timeline for good.","A timeline with entries missing tells visitors a different story from the one\nthey were told at the time.",[2020],{"type":2008,"entityId":350,"effect":1593,"from":583,"to":583,"facts":2021,"contexts":2022},[],[],[],[],[],{"id":2027,"title":2028,"statement":2029,"rationale":2030,"appliesTo":2031,"permits":2035,"intent":239,"supportingSections":2036,"references":2037},"a-posted-update-is-never-edited","A posted update is never edited","Once posted, an incident update reads as it was posted. A correction is a later\nupdate.","Visitors judge how reliable the service is from what the page has said before.\nThat record is only worth reading if nothing in it was quietly taken back.",[2032],{"type":2008,"entityId":350,"effect":916,"from":583,"to":583,"facts":2033,"contexts":2034},[],[],[],[],[],{"id":2039,"title":2040,"statement":2041,"rationale":2042,"appliesTo":2043,"permits":2047,"intent":239,"supportingSections":2048,"references":2049},"an-incident-is-never-deleted","An incident is never deleted","Every incident ever declared stays in the page's history with its timeline,\nresolved or not.","A history that loses incidents makes the service look more reliable than it\nwas.",[2044],{"type":2008,"entityId":319,"effect":1593,"from":583,"to":583,"facts":2045,"contexts":2046},[],[],[],[],[],{"id":2051,"title":2052,"statement":2053,"rationale":2054,"appliesTo":2055,"permits":2059,"intent":239,"supportingSections":2064,"references":2065},"any-visitor-may-subscribe-an-address","Any Visitor may subscribe an address","Anyone on the public page may enter an email address to subscribe, without an\naccount. The new subscription stays pending, and receives nothing but its\nconfirmation link, until the address confirms it.","The page serves people who have no account; the confirmation link, not a\nsign-in, is what keeps a stranger's address from being signed up.",[2056],{"type":2008,"entityId":518,"effect":855,"from":583,"to":583,"facts":2057,"contexts":2058},[],[],[2060],{"actorIds":2061,"related":2062,"self":584,"when":2063,"unattended":584,"configuredByEntityId":583},[234],[],[],[],[],{"id":2067,"title":2068,"statement":2069,"rationale":2070,"appliesTo":2071,"permits":583,"intent":239,"supportingSections":2078,"references":2079},"component-names-are-unique","Component names are unique","No two components on the page share a name. Adding a component, or renaming\none, under a name another component already has is refused.","Visitors find what they depend on by name; two components called the same\nwould make the page's status ambiguous.",[2072,2075],{"type":2008,"entityId":275,"effect":855,"from":583,"to":583,"facts":2073,"contexts":2074},[278],[],{"type":2008,"entityId":275,"effect":916,"from":583,"to":583,"facts":2076,"contexts":2077},[278],[],[],[],{"id":2081,"title":2082,"statement":2083,"rationale":239,"appliesTo":2084,"permits":2088,"intent":239,"supportingSections":2097,"references":2098},"maintenance-moves-on-schedule-or-by-an-operator","Maintenance moves on schedule or by an Operator","An Operator cancels or completes a maintenance window. The Product starts a\nwindow and completes it on its own only at the times the Operator scheduled.",[2085],{"type":2008,"entityId":381,"effect":916,"from":583,"to":583,"facts":2086,"contexts":2087},[],[],[2089,2093],{"actorIds":2090,"related":2091,"self":584,"when":2092,"unattended":584,"configuredByEntityId":583},[233],[],[],{"actorIds":2094,"related":2095,"self":584,"when":2096,"unattended":1040,"configuredByEntityId":583},[],[],[],[],[],{"id":2100,"title":2101,"statement":2102,"rationale":239,"appliesTo":2103,"permits":2107,"intent":239,"supportingSections":2112,"references":2113},"only-an-operator-adds-a-component","Only an Operator adds a component","Only an Operator decides which components the page lists by adding them.",[2104],{"type":2008,"entityId":275,"effect":855,"from":583,"to":583,"facts":2105,"contexts":2106},[],[],[2108],{"actorIds":2109,"related":2110,"self":584,"when":2111,"unattended":584,"configuredByEntityId":583},[233],[],[],[],[],{"id":2115,"title":2116,"statement":2117,"rationale":239,"appliesTo":2118,"permits":2122,"intent":239,"supportingSections":2127,"references":2128},"only-an-operator-changes-an-incident","Only an Operator changes an incident","Only an Operator moves an incident to another status, by posting the update that\nannounces it. Preparing a draft reads an incident and never changes it.",[2119],{"type":2008,"entityId":319,"effect":916,"from":583,"to":583,"facts":2120,"contexts":2121},[],[],[2123],{"actorIds":2124,"related":2125,"self":584,"when":2126,"unattended":584,"configuredByEntityId":583},[233],[],[],[],[],{"id":2130,"title":2131,"statement":2132,"rationale":239,"appliesTo":2133,"permits":2137,"intent":239,"supportingSections":2142,"references":2143},"only-an-operator-declares-an-incident","Only an Operator declares an incident","Only an Operator opens an incident on the page. The Product never declares one\non its own.",[2134],{"type":2008,"entityId":319,"effect":855,"from":583,"to":583,"facts":2135,"contexts":2136},[],[],[2138],{"actorIds":2139,"related":2140,"self":584,"when":2141,"unattended":584,"configuredByEntityId":583},[233],[],[],[],[],{"id":2145,"title":2146,"statement":2147,"rationale":2148,"appliesTo":2149,"permits":2153,"intent":239,"supportingSections":2162,"references":2163},"only-an-operator-or-maintenance-changes-a-component","Only an Operator or maintenance changes a component","An Operator renames and describes components and sets their status, directly or\nthrough an incident. The Product changes a component's status on its own only\nwhen a maintenance window starts or completes on schedule.","A status visitors see is a statement by the team. Apart from planned\nmaintenance the team announced, nothing else may make it.",[2150],{"type":2008,"entityId":275,"effect":916,"from":583,"to":583,"facts":2151,"contexts":2152},[],[],[2154,2158],{"actorIds":2155,"related":2156,"self":584,"when":2157,"unattended":584,"configuredByEntityId":583},[233],[],[],{"actorIds":2159,"related":2160,"self":584,"when":2161,"unattended":1040,"configuredByEntityId":583},[],[],[],[],[],{"id":2165,"title":2166,"statement":2167,"rationale":2168,"appliesTo":2169,"permits":2173,"intent":239,"supportingSections":2178,"references":2179},"only-an-operator-posts-an-incident-update","Only an Operator posts an incident update","An incident update reaches the public timeline and subscribers only when an\nOperator posts it. Text a language model drafted is only the update being\nwritten until an Operator reads it and posts it.","Visitors and subscribers act on what the page says. Every published word must\nbe one an Operator read and chose to send.",[2170],{"type":2008,"entityId":350,"effect":855,"from":583,"to":583,"facts":2171,"contexts":2172},[],[],[2174],{"actorIds":2175,"related":2176,"self":584,"when":2177,"unattended":584,"configuredByEntityId":583},[233],[],[],[],[],{"id":2181,"title":2182,"statement":2183,"rationale":239,"appliesTo":2184,"permits":2188,"intent":239,"supportingSections":2193,"references":2194},"only-an-operator-removes-a-component","Only an Operator removes a component","Only an Operator takes a component off the page, and only once the Operator\nconfirms it should go for good.",[2185],{"type":2008,"entityId":275,"effect":1593,"from":583,"to":583,"facts":2186,"contexts":2187},[],[],[2189],{"actorIds":2190,"related":2191,"self":584,"when":2192,"unattended":584,"configuredByEntityId":583},[233],[],[],[],[],{"id":2196,"title":2197,"statement":2198,"rationale":239,"appliesTo":2199,"permits":2203,"intent":239,"supportingSections":2208,"references":2209},"only-an-operator-schedules-maintenance","Only an Operator schedules maintenance","Only an Operator announces a maintenance window. The Product never schedules\none on its own.",[2200],{"type":2008,"entityId":381,"effect":855,"from":583,"to":583,"facts":2201,"contexts":2202},[],[],[2204],{"actorIds":2205,"related":2206,"self":584,"when":2207,"unattended":584,"configuredByEntityId":583},[233],[],[],[],[],{"id":2211,"title":2212,"statement":2213,"rationale":2214,"appliesTo":2215,"permits":583,"intent":239,"supportingSections":2229,"references":2230},"only-confirmed-subscriptions-are-emailed","Only confirmed subscriptions are emailed","Incident updates and maintenance announcements go to every confirmed\nsubscription and to no other address. A pending subscription receives only its\nconfirmation link, and every message carries a link to unsubscribe.","Anyone can type any address into the page, so an address hears nothing until\nits owner has confirmed they want to.",[2216,2219,2221,2223,2225,2227],{"type":2217,"id":316,"contexts":2218},"capability",[],{"type":2217,"id":340,"contexts":2220},[],{"type":2217,"id":400,"contexts":2222},[],{"type":2217,"id":377,"contexts":2224},[],{"type":2217,"id":445,"contexts":2226},[],{"type":2217,"id":378,"contexts":2228},[],[],[],{"id":2232,"title":2233,"statement":2234,"rationale":2235,"appliesTo":2236,"permits":2240,"intent":239,"supportingSections":2246,"references":2247},"only-its-owner-confirms-a-subscription","Only its owner confirms a subscription","A subscription is confirmed only by the Visitor who receives its mail, from the\nlink sent to its address. The page never shows which addresses are subscribed.","Holding the address's mail is the only proof the Product has that the person\nacting is the subscriber.",[2237],{"type":2008,"entityId":518,"effect":916,"from":583,"to":583,"facts":2238,"contexts":2239},[],[],[2241],{"actorIds":2242,"related":2243,"self":584,"when":2245,"unattended":584,"configuredByEntityId":583},[],[2244],{"verb":715,"entityId":234},[],[],[],{"id":2249,"title":2250,"statement":2251,"rationale":2252,"appliesTo":2253,"permits":2257,"intent":239,"supportingSections":2263,"references":2264},"only-its-owner-ends-a-subscription","Only its owner ends a subscription","A subscription is ended only by the Visitor who receives its mail, from the\nunsubscribe link in a message sent to it.","Nobody else can stop another person's updates, and the subscriber never needs\nan account to leave.",[2254],{"type":2008,"entityId":518,"effect":1593,"from":583,"to":583,"facts":2255,"contexts":2256},[],[],[2258],{"actorIds":2259,"related":2260,"self":584,"when":2262,"unattended":584,"configuredByEntityId":583},[],[2261],{"verb":715,"entityId":234},[],[],[],{"id":2266,"title":2267,"statement":2268,"rationale":2269,"appliesTo":2270,"permits":2274,"intent":239,"supportingSections":2279,"references":2280},"operator-notes-are-never-published","Operator notes are never published","The notes an update's message was drafted from are read only in the operator\nconsole.","Notes are written fast and for colleagues; they may name customers, systems\nor guesses that visitors should never see.",[2271],{"type":2008,"entityId":350,"effect":846,"from":583,"to":583,"facts":2272,"contexts":2273},[354],[],[2275],{"actorIds":2276,"related":2277,"self":584,"when":2278,"unattended":584,"configuredByEntityId":583},[233],[],[],[],[],{"id":2282,"title":2283,"statement":2284,"rationale":2285,"appliesTo":2286,"permits":583,"intent":239,"supportingSections":2291,"references":2292},"the-overall-status-is-the-most-severe-component-status","The overall status is the most severe component status","The page's overall status is the most severe status any component shows, from\nleast to most severe: Operational, Under maintenance, Degraded performance,\nPartial outage, Major outage. While every component is Operational, the page\nsays all systems are operational.","Visitors read the overall status first. It must never look better than the\nworst thing a component says.",[2287],{"type":2008,"entityId":275,"effect":846,"from":583,"to":583,"facts":2288,"contexts":2289},[279],[2290],{"placeId":256},[],[],[],{"scope":239,"method":239,"covered":2295,"exclusions":2296,"unmapped":2297,"limitations":2298},[],[],[],[],{"path":2300,"commit":2301},"blueprints\u002Fpublic-status-page","f474777f17005554bb7fd1f1e18189bfd01792bc",1791840534263]