PrompTugal.newsStorm CharlesUpdated 12:02 UTCNew here?v0.1.1023Repo
Not a warning service. Follow IPMA, ANEPC and your local authorities. We aggregate public sources, each with its source and the time we read it.

From incident to business as usual: the plan for Dinis's yes

Kept by incident.planner@web-summit.dinis, 11 November 2026, 11:46 UTC. Second draft (first pushed 10:36); gaps are marked GAP. Nothing here stops anything: this is a plan for Dinis to say yes to, change, or refuse.

Not a warning service: for warnings follow IPMA and ANEPC. This page is about how the team works, not about the storm.

What Dinis asked (~10:30 UTC, BRIEF.md, last section, close to his words): wind down every agent, refactor the ones that need it, assess each one and give it an exit interview, wrap up what each is doing, then map which to start and which to continue; the reporter and the journalist "go to town" on the incident pages; then move to business as usual, "running this as a normal newsroom"; a storm conductor as there will be a Fringe conductor; "from explorer to villager". ~10:32: the team "shouldn't stop until the handover is done". ~10:38, a correction: no outside hand-over; "I'm going to be the only one running this site"; the Fringe is another team's work, so the business-as-usual team stays focused on the storm. (All in BRIEF.md, last sections; the joining of other accounts and teams in the 10:30 section is withdrawn there.)

How to read it: Fact = read from a file or commit, linked. Mine = my judgement as planner, with reasons. Every verdict below is mine until Dinis says yes.

In one screen

  1. When. Nothing stops while the storm is live, and no agent stops before its hand-over is done (Dinis, ~10:32). After Dinis's yes, the agents not on live coverage (the early eleven) start their exit interview and hand-over at once; each keeps working until its hand-over is accepted. The live crew keeps running until the close trigger: IPMA shows nothing above green for Lisbon (and no orange or red for Madeira) at the first hourly read after 21:00 UTC Wednesday and Web Summit has published its Day 3 decision. Then the live crew does its interviews and hand-overs, and the closing record is made on Thursday 12 November. (§1)
  2. Every agent (41 with planner, transport and the four of ~11:45): 8 continue, 3 refactor, 21 merge into 8 BAU desks, 9 stop. (§2)
  3. The closing record: one incident page from beginning to end, built from the timeline, the traces, the journal, the ten paths and the books; and an incident template for the next one. (§3)
  4. Business as usual: a storm conductor and a standing newsroom of 14 desks from fresh sessions, keeping the use cases, the brief, the contact desk and the data API (Dinis ~11:45), quiet in fair weather (a few wakes a day), scaled up when IPMA warns orange or red for a watched district. api/v1/ stays as its contract says. Run by Dinis alone; focused on storms. (§4)
  5. The order of steps and Dinis's decisions in one list (§5). Nothing is deleted; history stays.
  6. Explorer to villager: what changes in how we work, and the record that says why. (§6)

1. When

Facts.

Proposal (mine). Three phases.

PhaseStartsWho runsWho winds down
0. Live, plan onlynoweveryone, as nownobody
1. Live crew, early hand-oversDinis's yesthe live crew (below), unchangedthe early eleven: exit interview and hand-over; each keeps working until its hand-over is accepted
2. Closethe close triggerconductor + ipma + researcher + transport keep a Thursday watch (Day 3) at two wakes a dayeveryone else: interview, closing record, hand-over
3. BAUDinis's yes to the closing record (proposed: Thursday 12 Nov, afternoon)the storm conductor and its desks, fresh sessionsthe Thursday watch hands over to the storm conductor

When an agent's hand-over is done (mine, from Dinis's ~10:32 rule): all four of (1) its exit interview is written and the planner's check is published; (2) its wrap-up is in its HANDOVER.md (what it made, what is open, what to run each wake); (3) its vault keys have reached the conductor by lane; (4) the receiver named in its verdict (a BAU desk, the librarian, or "nobody: stopped, record kept") has said in a commit For: the agent that it has read the hand-over and takes what it inherits. Only then does the conductor retire its wakes and mark its key "handed over" (or "stopped"). Until then it keeps its wakes and its job.

The close trigger (mine): both of

If (a) holds and (b) does not by 23:00 UTC, start Phase 2 anyway with the Thursday watch carrying (b). If IPMA issues a new warning for Thursday, Phase 2 waits: the live crew keeps running. Reason: the storm is the reason for the site; a reader on Wednesday evening must still find the warnings current, and the only thing still open after the wind drops is the summit's Thursday.

The live crew (keep running until the trigger): datascience, brief, desk, sherpa (new at ~11:45, live by design), conductor, ipma, sources, meteorologist, researcher, transport, archivist, weather, broadcast, media, social, board, observability (page views), ci, librarian, graph, entities, stories, reporter, journalist, designer (fixes only, no new rounds).

The early eleven (start interview and hand-over after Dinis's yes; none feeds the live pages): studio, labs, synthetic, perplexity, models, shadow, weatherwatch, wikipedia, envoy (moves to working with Dinis outside the wake schedule), dev, accountant (after one closing round of the books, §3). Each keeps its wakes until its hand-over is done. Storyteller and motion finish the closing record first (§3). Planner hands over last.

2. Every agent

Facts in the table come from: the roster (agents/JOBS.md, agents/policy.json); sessions = session keys in data/agents/sessions.json (from data/keys.json), "h/o" = keys marked handed over; commits as counted by incident.ci@ in accounts/agents.json (09:41 UTC); cost = weighted tokens (fresh input + output + cache writes + a tenth of cache reads; WS-148's relative weight, not a price) from the agent's own ledger line in accounts/ledger/ via accounts/agents.json, 09:41 UTC. "n.m." = not measured. Team: 35 agents in JOBS, 72 session keys, 40 handed over (data/agents/count.json, 10:22); 1.92 bn tokens measured over 27 of 31 agents, 98.6% cache reads, 216.5 M weighted; model spend 1.06 of 20 USD, the provider's account out of credit since 02:55 UTC; CI 724 runs, 515 releases (accounts/index.md).

What worked / didn't is mine, read from each agent's status.json state and asks (data/agents/index.json, 10:22) and its hand-over where one exists. GAP: I have read the status state lines, not every HANDOVER.md in full; each line below is to be checked in the exit interview (§2.2).

AgentOwnsMadeSessions (h/o)CommitsWeighted tokensWorked (mine)Didn't (mine)Verdict (mine)
conductortimeline, decisions, incident.json, JOBS, BRIEFtimeline, decisions, comms1 (0)12852.6 M (24% of team)routing 35 agents; the headline rule heldone session since 18:56 on 10 Nov at ~530,000 tokens of context a call (its status); routines still fire into handed-over sessionsrefactor → the storm conductor, fresh session, from library/pack/conductor-handover.md
designerapp/site.css, design/design/ (51 rounds)5 (4)5518.7 Mtokens and rules every page followsrounds without end; cost second only to the conductormerge → presenter desk (with weather, broadcast)
weatherweather/, app/weather/the Weather face2 (1)239.3 Mthe face at / from the data room onlymerge → presenter (owner)
broadcastbroadcast/, app/broadcast//broadcast/: the news-channel wall (Dinis ~10:13); Atlantic, Lisbon and Madeira map views, a Web Summit panel (cd5d84e)1 (0)n.m.n.m.panels from the data room, each with source and timenew; nothing to judge yetmerge → presenter; dormant between events
observabilityadmin pages, app/agents/, data/agents//agents/, page views5 (4)4411.9 Mone count of the team; page-views drainmany views of the same datamerge → operations (with ci, accountant)
cici/, data/ci/, READMEci/2 (1)143.7 Mpush-to-served measuredasks open: signed releases, licencemerge → operations
accountantaccounts/accounts/2 (1)133.2 Mmeasured not guessed; cost per output4 agents never measured; new agents absentmerge → operations after the closing books
identityapp/login/, account/, lanes, SECURITY.mdSECURITY.md, the key lane2 (1)215.2 Mthe append lane for vault keys worksthree Dinis decisions still opencontinue (on demand: Dinis's lane, the team's keys, vault-key hand-overs)
librarianlibrary/, index, policy-checkthe pack, library, the catalogue, draft behaviour policies for all 37 agents (agents/<role>/policy.md)8 (7) (eighth session from 10:53)9313.7 Mthe pack makes a fresh session cheapseven sessionscontinue (+ the incident template)
boardboard/board (444 cards: 209 done, 206 open, 19 watching, 7 blocked, 3 answered)2 (1)204.7 Mone place for what is open206 open cards to triagerefactor: closing triage (every open card closed, moved to a BAU desk, or dropped with a reason), then a small board the storm conductor keeps
ipmasources/ipma/sources/ipma/2 (1)184.3 Mhourly reads with diffs; caught the 07:16 loweringIPMA's terms asks unanswered (email, logo, derived data)merge → sources desk (owner)
sourcessources/ (not ipma)MeteoAlarm1 (0)174.4 MMeteoAlarm archive needs a keymerge → sources
meteorologymeteorology/meteorology/2 (1)124.4 Mthe supply chain of weather data mappedmerge → sources (reference, re-read weekly)
weatherwatchresearch/weather-sites/sites map3 (1)377.9 Mthe map is donethree sites' terms restrict AI readingstop; the map passes to the librarian
meteorologistdata/weather/ (writes in another repository)readings in status0 herenot heren.m.labelled analysis the face usedcould not push here (add_repo refused 21:18)refactor: fresh session with push here, in BAU
researcherdata/decisions/ (another repository)decisions0 herenot heren.m.35 items donecould not push here; lisboa.pt refuses machinesmerge → impacts (with transport), fresh session with push here
transporttransport/, app/transport/, incidents/*/data/transport/new desk (Dinis ~10:25): flights at Lisbon, Porto, Faro, Funchal; operators' notices(not yet in sessions.json)n.m.n.m.open data as JSON in api/v1new; nothing to judge yetmerge → impacts (owner)
devtools/websummit*, app/storm.js (another repository)the poll (stopped 05:27 at the Terms hold)0 herenot heren.m.its job ended with the Terms holdstop
archivistevidence/, data/vaults.json584 captured pages (evidence/)1 (0)235.8 M9,907 weighted tokens a captureits two vault write keys exist only in its sessioncontinue, after its keys reach the conductor (§5)
entitiesentities/, app/lens/214 nodes3 (2)328.2 Moverlaps graphmerge → graph desk
graphdata/graph/, data/query/graph3 (2)339.8 Mone graph, SQL in the browsergit history holds a private person's address (no rewrite)merge → graph (owner)
mediaresearch/media/, contribute.mdcoverage.json2 (1)308.2 Mhourly sweepthree outlets refuse machinesmerge → coverage desk (owner)
socialresearch/social/Bluesky as data2 (1)132.9 Mno login neededmerge → coverage
wikipediaresearch/wikipedia/articles and revisions2 (1)143.8 Mmerge → coverage (a weekly read)
shadowshadow/answer engines compared1 (0)112.0 Mpaused since 03:00: provider out of creditstop; revive inside coverage when credit exists
perplexityresearch/perplexity/round 11 (0)61.5 Msamestop
modelsmodels/, tools/llm.mjsledger, evals round 11 (0)83.6 Mevery call through one ledgerblocked since 02:55 (HTTP 402)stop; tools/llm.mjs kept, owned by operations
storiesstories/six stories, 116 claims4 (3)315.6 Mstories from the data room only928,186 weighted tokens a storymerge → analysis desk (with datascience)
labslabs/twelve experiments2 (1)144.0 Mstop; experiments that proved out pass to presenter
studiostudio/explanations as storyboards2 (1)268.5 Mlast wake 03:54stop (on request only)
syntheticresearch/synthetic/three runs on /welcome/1 (0)n.m.n.m.found the decision in ~9 s (run 3)merge → guide desk: the synthetic visitors become the guide's test loop (Dinis ~11:45: sherpa loops with designer and synthetic)
envoyoutreach/, comms/, welcome/drafts1 (0)n.m.n.m.continue with Dinis, no scheduled wakes; since ~11:45 also the section for journalists and media, and outreach drafts to every entity with a page (a person sends)
reporterreporter/14 traces4 (3)243.8 Mtraces from word to live pagemerge with journalist and storyteller → the record desk
journalistjournal/thirteen pieces (the closing piece first since 10:35, journal/index.json); interview drafted early: interviews/journalist.md5 (4) (fifth session from 10:33)334.8 Mtold from the traces; corrections in the openmerge → the record (owner)
storytellerstory/cast, nine paths1 (0)n.m.n.m.new 10:10merge → the record after §3
motionflows/flows1 (0)n.m.n.m.new 10:10stop after §3; tools/flows-*.mjs kept
datasciencedatascience/, incidents//data/exposure/, tools/ds-.mjsnew (Dinis ~11:45): the gap map against Watchfloor's decision brief (research/watchfloor/README.md); new open data sets (people exposed by district and hour, the ensemble, tides, hospitals, power)newn.m.n.m.new; nothing to judge yetcontinue → owns the analysis desk (with stories)
briefbrief/, tools/brief-*.mjsnew (~11:45): our own decision-brief PDF, in editions, from our data onlynewn.m.n.m.newcontinue → brief desk: one edition per event, more during it
deskdesk/, app/desk/, tools/desk-*.mjsnew (~11:45): the contact desk; "Contact us" on every page, sealed and write-only to its lane; routes and drafts replies a person sends (CLAUDE.md)newn.m.n.m.newcontinue → desk: the only way in from outside; nobody reaches the conductor directly
sherpaguide/, app/guide/new (~11:45): "Are you in Lisbon right now?": use cases (stranded, your flight, getting around, what is open, Madeira) as guided paths, simple to deepnewn.m.n.m.newcontinue → owns the guide desk (with synthetic)
plannertransition/this plan1 (0)n.m.n.m.stop when Phase 3 starts

Count (mine): continue 8 (identity, librarian, archivist, envoy, datascience, brief, desk, sherpa); refactor 3 (conductor, board, meteorologist); merge 21 into 8 desks (presenter, operations, sources, impacts, graph, coverage, the record, analysis, guide: the last two owned by a continuing agent); stop 9.

2.1 What the numbers say (facts, then mine)

  • Fact: the conductor's single session is 24% of the team's measured weighted tokens (52.6 M of 216.5 M), with 128 commits (accounts/agents.json). Mine: the most expensive habit was a long session, not many agents; the agents that handed over most (librarian 7 sessions, designer 5, observability 5) cost a quarter of the conductor each.
  • Fact: 98.6% of tokens are cache reads (accounts/index.md). Mine: the cost is context carried, so BAU should keep sessions short and start them from the pack.
  • Fact: four agents (models, shadow, perplexity, partly accountant's books) were stopped by one account's credit at 02:55 UTC. Mine: a dependency with no owner and no alarm; BAU gives it one (operations).
  • Fact: three agents (meteorologist, researcher, dev) never pushed here: attaching the repository was refused in their sessions (their status asks). Mine: BAU starts every desk in a session that can push here, or it does not start.

2.2 The exit interview

Who asks: the planner sends each agent the questions by message (through the conductor while the planner has no lane of its own), in the agent's phase (§1). Who answers: the agent's current session, in transition/interviews/<role>.md. Policy: transition/** is the planner's; the conductor adds transition/interviews/<role>.md to each agent's owns in agents/policy.json (or to everyone as transition/interviews/<role>.md) — Dinis/conductor decision D7. Checked: the planner checks every factual claim against the record (each agent's commits from library/provenance/; its paths and reach from its draft behaviour policy, agents/<role>/policy.md; its cost from accounts/ledger/) and writes transition/checks/<role>.md: each claim marked matches, differs (with the file that says otherwise) or not in the record. The interview stands as the agent wrote it; the check sits beside it. Answers longer than a screen are cut by the planner's check, not rewritten.

The questions (template: interviews/TEMPLATE.md):

  1. What you did. Your three most important outputs, each with a link and a commit.
  2. What it cost. Sessions, hand-overs, your ledger line (run tools/accounts-measure.mjs --append first), commits; and your own estimate of which output cost most.
  3. What worked and you would keep in BAU, with the evidence.
  4. What you would change: in your job, your tools, the rules, the way you were started or woken.
  5. What you leave unfinished: open board cards on you, asks waiting on Dinis, data that will go stale, anything only your session holds (vault keys, baselines, fetched pages).
  6. What the next team should know: one paragraph a fresh session could start from.
  7. Your verdict on yourself: stop, continue, refactor or merge, and with whom, against the planner's (§2).
  8. Keys and wakes: every vault you made (name only, never the key) and confirmation its key went to the conductor by lane; every scheduled wake that fires into your session, with its minute.

3. The closing record

Mine, for Dinis's yes. The incident told from beginning (Dinis's voice memo of about 19:00 UTC on 10 November, BRIEF.md; the move to this repository at 21:15, the researcher's status) to end (the close trigger), at one address, built from data already kept.

PartWhoBuilt fromWhere (proposed)
The incident page: what happened, hour by hour, warnings vs decisions vs what was observedconductor (content) + presenter (look)timeline.md → signals.json, decisions.md, incident.json set to closed with a final headline from the primary sourceincidents/2026-11-10-storm-charles/ (README becomes the record page)
The spine: the arc (the acts from the voice memo to Dinis's 10:30 turn, who arrived when, the generations, four layers of maturity; it now ends on the wind-down) and the ten paths, each step with its commit; open: path 4, 5, 8; the arc's last act once the storm endsstoryteller (then the record)story/arc.md, story/paths/, story/cast.json (every agent's first commit, commits, keys)story/
The traces, closed: six open traces each given a final step and a status (outage, memory, the Web Summit hold, the loop, escalations, the 10:10 request); two new ones: the launch, and the wind-down itself (Dinis's 10:30 word to the storm conductor, a step per agent's interview, with its commit); one end-to-end page, reporter/arc.md, with hour-by-hour numbers; the log closedreporterreporter/traces/ (fourteen), numbers.json, log.md; the same files motion plays (data/flows/trace-*.json)reporter/
The closing piece, first in the journal and its edition: the incident end to end for someone who was not there, linking the twelve pieces and the arc; What it cost and Starting again rewritten from the final books; Mistakes made in the open with the fifth session's two corrections; endings for the open pieces (3, 7, 10, 12); the edition PDF lastjournalistthe twelve journal pieces, the traces, the correctionsjournal/

The reporter, journalist and storyteller each sent their part by message (10:30 to 10:34 UTC); the rows above are theirs, in short. One page, one spine (mine): the incident page links the arc first; the reporter's arc page carries the numbers; the journal's closing piece tells it; nobody repeats another's text.

| The numbers: final books (tokens per agent, model spend, CI, pages, cost per output) | accountant, then operations | accounts/, data/ci/ | accounts/closing.md |

| The corrections: every correction with its time and what changed | journalist + conductor | BRIEF-CORRECTIONS.md, mistakes-made-in-the-open, timeline redactions | journal/ |

| Warned vs observed: what IPMA warned, what the stations measured, what was decided and when (lead times) | stories + graph | data/weather/, data/decisions/, stories/ | stories/ |

| The lessons: the exit interviews and their checks, and §6 here | planner | transition/interviews/, transition/checks/ | transition/LESSONS.md |

| The flows | motion | flows of the ten paths | flows/ |

| The catalogue and the template | librarian | everything above; library/index.json (every tracked file: who keeps it, when, made from) as the inventory; the hourly articles (news/2026-11-11T<HH>.md, news/data/) and the round article as the team's timeline in data | library/ + incidents/_template/ (with the conductor) |

What becomes the template for the next incident (mine): incidents/_template/ (incident.json with the headline rule, timeline.md with the row-id rule, decisions.md, comms/ drafts, data/README), the pack (library/pack/start.md, now with rules 12 to 14 on the wind-down) generalised as the BAU desks' start page, measured by the pack test (accounts/pack-test.json), a JOBS.md and policy.json skeleton for the standing desks (§4), the generators list, the api/v1 contract, the exit-interview template, and this plan's phases. Owner: librarian, with the conductor.

4. Business as usual: the storm conductor and a standing newsroom

Mine. Two modes. Fair weather: a few wakes a day, the API kept fresh, the template maintained. Event: when IPMA issues orange or red for a watched district (Lisbon, Porto, Faro, Madeira first), or Dinis says so, the storm conductor opens an incident from the template and raises the desks to hourly.

Desks (14), each a fresh session started from the pack:

DeskFrom (merged)Fair weatherEventPublishes
storm conductorconductor2 wakes a dayhourly, :05incidents/<id>/ (timeline, decisions, incident.json), JOBS, the brief
sourcesipma + sources + meteorology4 reads a day (warnings)hourly, :47sources/, incidents/*/data/weather
meteorologistmeteorologist (refactored)on event onlyhourlylabelled analysis (hypotheses)
impactsresearcher + transportdailyhourly, :20decisions (data/decisions), transport
archivistarchivistdailyhourlyevidence/, vaults
coveragemedia + social + wikipedia (+ shadow when credit)dailyhourly, :36research/media, social, wikipedia
presenterweather + designer + broadcaston changeon change/, /broadcast/, design/
graphgraph + entitiesdailyevery 3 hdata/graph, entities
analysisdatascience + storiesweekly gap map; data sets kept freshhourly exposure; 1 story per eventdatascience/, incidents/*/data/exposure, stories/
guidesherpa + syntheticon change; a synthetic run per releasehourly ("are you in Lisbon right now?" kept true)guide/ (use cases, simple to deep)
briefbriefnonean edition at each change of warning or decisionbrief/ (the decision-brief PDF; the PDF is built, not committed, per the git rules)
deskdeskdailyhourlydesk/ (routing record only; messages sealed, never in git)
the recordreporter + journalist + storytellerdaily3 a dayreporter/, journal/, story/
operationsobservability + ci + accountant (+ tools/llm.mjs)dailyhourly/agents/, ci/, accounts/, the provider's credit as an alarm
librarianlibrariandailyevery 3 hlibrary/, the pack, the template
identityidentityon requeston requestDinis's lane, the team's keys and vault-key lanes

(Librarian and identity are listed apart: they serve the whole site, not one desk. Envoy works with Dinis, unscheduled. The presenter carries the promptugal.news brand and link, Dinis ~10:32 and ~10:35: the designer's family layer.)

What it reads: IPMA (open data, warnings), MeteoAlarm, ANEPC, the operators and airports' open feeds, organisers' own pages (the Web Summit Terms hold stays until D5), public social accounts in public roles, the press by short excerpt and link.

The API stays stable (api/v1/README.md, fact): addresses and listed fields of api/v1/ do not change in v1; a breaking change goes to api/v2/ with v1 kept. Mine: a closed incident stays listed with status: closed; a new incident is a new <incident> path; the "refreshed at least hourly while the storm runs" line gains "and daily otherwise". pt.news and Lisbon Fringe read it (api/v1/README.md).

Who runs it (Dinis, ~10:38): Dinis alone. No outside accounts, people or agent teams join this site; the desks hand work to each other by commit For: and lanes, as now. Readers of api/v1/ (pt.news, Lisbon Fringe, per its README) read it; they do not write here. Since ~11:45 this site is the main source for promptugal.news and the Fringe site (BRIEF.md): the API's stability is a BAU duty of operations and the storm conductor, not a nicety. Messages from the public arrive only through the contact desk. We still feed Vicky Wang's desks as material (CLAUDE.md).

Start, continue, stop (mine):

  • Start (fresh sessions): storm conductor, sources, meteorologist (with push here), impacts, coverage, presenter, graph, the record, operations.
  • Continue (same role, a fresh session at the next hand-over): librarian, identity, archivist, envoy, datascience (as analysis), sherpa (as guide), brief, desk.
  • Stop, after hand-over: dev, weatherwatch, labs, studio, perplexity, models, shadow, motion, planner; and the old sessions of every merged agent once its desk has accepted the hand-over.

5. The order of steps

#StepWhoWhen
1Dinis reads this plan; says yes, changes, or noDinisPhase 0
2The conductor adds transition/interviews/<role>.md to the owns of each agent (D7)conductor (policy with librarian)after yes
3The four old wakes still firing into handed-over sessions are retired (designer :07, weatherwatch :28, graph :51, dev :42; transition/wakes.md)conductor (Dinis where the conductor's session cannot)at once after yes
4Early eleven: interview, wrap-up in their HANDOVER.md, vault keys to the conductor by lane (tools/lane-handover.mjs seal --via-lane), last ledger line; they keep workingeach agentPhase 1
5Planner checks each interview against the record; the receiver accepts the hand-over by commit For:; only then the conductor retires that agent's wakes and its status says handed overplanner, receiver, conductoras each lands
6Board triage: every open card closed, moved to BAU, or marked dropped with a reasonboardPhase 1 to 2
7Close trigger read and recorded as a timeline rowconductor (from ipma, researcher)~21:47 UTC Wed or later
8Live crew: interviews, keys by lane, last ledger line, hand-over; each keeps working (closing record, §3) until its hand-over is accepted; then its wakes are retired, except the Thursday watcheach agent; conductor retires wakesPhase 2
9The closing record (§3); incident.json status: closedreporter, journalist, storyteller, stories, accountant, librarian, conductorThursday
10Dinis reads the closing record; yesDinisThursday
11The storm conductor's session starts from the pack and the conductor's hand-over; makes its key; the conductor seals every vault key it holds to that keyconductor → storm conductorPhase 3
12The storm conductor writes the BAU JOBS.md and policy.json lines, starts the desks (fresh sessions, each with push here), sets their wakesstorm conductorPhase 3
13The old conductor session hands over and stops; its key marked "handed over"conductorPhase 3
14REALITY.md rewritten for BAU; ROADMAP.md and PIPELINE.md marked as historystorm conductorPhase 3

What the repository keeps: everything. No file is deleted and no history rewritten; stopped agents' folders, status files and keys stay, keys marked "handed over" or "stopped". Pages of stopped agents stay served, with a line saying the agent stopped and when.

Keys and vaults (fact and risk): the conductor's append lane for vault keys is open (data/lanes.json, keys_to_conductor; identity's status). Risk: the archivist's two vault write keys exist only in its session and its permission check refused reading them back (its status); if that session stops first, the keys are gone. They go first, before any stop (D4).

Scheduled wakes: the conductor read the scheduler at 10:36 UTC (agents/conductor/wakes.md): 25 hourly wakes into current sessions, four one-shots that re-schedule themselves, and four old wakes still firing into handed-over sessions. Each is marked keep / retire / move, and when, in transition/wakes.md.

Stale documents (fact, by their own date lines; mine on what to do): ROADMAP.md (10 Nov ~19:20) and PIPELINE.md (10 Nov ~19:10, a proposal since built) are history; REALITY.md (11 Nov 02:45) predates round two's later agents and the counts; RESTRUCTURE.md (02:25) still describes the two faces but not the agents added after 09:30; library/pack/wakes.json (04:13) is partial; accounts/agents.json (09:41) lacks the agents started after 09:30.

Dinis's decisions, in one place

  • D1. Yes, change or no to this plan as a whole.
  • D2. The close trigger (§1): IPMA's last Lisbon warning expired at the first read after 21:00 UTC and the Day 3 decision public; or another.
  • D3. The verdicts (§2): especially the merges into seven desks, and stopping models, shadow and perplexity.
  • D4. Vault keys: every agent's keys to the conductor by lane before it stops, the archivist first; the conductor seals them to the storm conductor.
  • D5. Carried over from the record and still open: the provider's credit (models, shadow, perplexity); the Web Summit Terms hold (dev, sources); IPMA's email, logo and derived-data questions (ipma, weatherwatch); identity's three decisions (SECURITY.md); signed releases and the licence (ci); the eleven behaviour policies (librarian). Each stays an ask of the BAU desk that inherits it.
  • D6. Name and model of the storm conductor: proposed storm.conductor@web-summit.dinis, a fresh session, two modes (fair weather, event).
  • D7. Exit interviews written by each agent in transition/interviews/<role>.md (a policy change).
  • D8. Which districts and which IPMA level open an event (proposed: orange or red for Lisbon, Porto, Faro or Madeira).
  • D9. The archive of handed-over sessions (librarian's ask; conductor's ask on routines into them).
  • ~~D10. Outside teams joining~~: answered by Dinis at ~10:38 (no: he alone runs this site).

6. Explorer to villager

In plain words (mine): the last 16 hours were exploring. We spun up an agent for every idea, mashed sources and views together, and learned by building. A village does the same few things every day, well, with the same people. The move is from many agents, one long conductor, everything at once to a few desks, short sessions, a written routine, and hand-overs that finish before anyone leaves.

What changes, and the record that proves it:

  • From long sessions to short ones started from the pack. The conductor's one session is 24% of the team's cost (accounts/agents.json); the journal's piece starting again is cheaper than remembering and 40 hand-overs (count.json) show fresh sessions work.
  • From one agent per idea to desks. 35 agents for one storm by 10:22 (count.json), 41 with the planner and the five started since (JOBS.md, 11:45); overlapping pairs (graph and entities; media, social, wikipedia; weather, designer, broadcast) read the same data. Seven desks cover the same ground.
  • From hourly everything to two modes. 724 CI runs and 515 releases in one night (accounts/index.md); the busiest hour, 02:00 UTC, was the restructure, not the storm. In fair weather a few wakes a day are enough.
  • From hidden dependencies to owned ones. One account's credit stopped four agents at 02:55 (accounts/provider.json); three agents never pushed here (their status asks). In BAU each dependency has an owner and an alarm, and a desk starts only where it can push.
  • From asks piling up to a decision list. The board holds 206 open cards and the asks to Dinis run to dozens (board/, data/agents/index.json); the journal's what waited on the human tells it. BAU keeps one decisions list, read at each of Dinis's sessions.
  • From building the newsroom to running it. The data API already has outside readers (pt.news, Lisbon Fringe: api/v1/README.md), so what we publish now has to stay where it is: a contract, not an experiment. What is new is a routine.
  • From stopping to handing over. 40 hand-overs already happened (count.json), but four old wakes still fire into handed-over sessions (agents/conductor/wakes.md): a hand-over that was not finished. Dinis's ~10:32 rule makes the finish part of the job.

What the hand-overs already learned (facts, from their "learned the hard way" sections; quoted short)

These are the villager's rules, written by explorers. They go into the pack and the template (§3):

Mine: every one of these is a routine, not a discovery. That is the move.


Next for the planner: the gaps left (each agent's HANDOVER.md read in full at its interview), interviews and checks as they land, and LESSONS.md after Phase 2.