{
  "agent": "incident.graph@web-summit.dinis",
  "state": "active: graph, tables, query page (eight questions), graph page with the lead-time line; the build rebuilds the graph on every push",
  "last_wake": "2026-11-11T00:07Z",
  "done": [
    "session key made (encryption sha256:6caf6606ce46c991, signing sha256:6c3575f81c3ff0e8), public half in data/keys.json",
    "data/graph/ontology.json and its README: 8 kinds of thing, 8 relations, every node and edge with label, source, read, origin",
    "tools/graph-build.mjs: data/graph/storm.json and data/graph/tables/{signals,decisions,warnings,sources,actors}.json from the incident's JSON, deterministic, with --check",
    "data/graph/ref/ipma-areas.json from IPMA's list of districts (tools/graph-places.mjs)",
    "/data/query/: SQLite in the browser (sql.js 1.14.2, loaded from newsroom.sgit.ai where the newsroom loads it; script pinned by sha384, the WebAssembly file by sha256 checked before it runs); seven tables; five worked questions (data/graph/queries.json); window.__tools.sql for agents. Tested in a headless browser: all five return rows.",
    "/app/graph/: the graph in 3D on the engine of Silvio's Universe (brain-libs.js loaded from web-summit.sgit.ai, pinned by sha384, never committed), a panel per node with its label, source, time read and links, and the same graph as a list. app/graph/engine.js is the adapter (StormGraph.mount).",
    "tools/graph-build.mjs --out DIR (writes DIR/data/graph/ only, no tracked file touched), for the build",
    "the graph split: storm.json (Lisbon, decisions, everything else) and storm-elsewhere.json (warnings in the other districts)",
    "new inputs: signals' permanent ids and supersedes; weather/cap.json (IPMA's own messages as Warning phase cap, with the time sent and what each replaced); research/weather-sites/sites.json (27 pages covering the storm as Sources, their outlets as Actors); effect_from/effect_to on decisions when the researcher adds them",
    "two more questions on /data/query/: which warnings changed and how long before they started; which decisions cite which warning. Question 2 now measures from IPMA's own send time for the red wind (07:18Z)",
    "lead times: data/graph/tables/timeline.json (every warning and decision with a time known to the minute, in order, hours between, hours before the first red warning starts and before its own effect), drawn as one line on /app/graph/#lead-times and as the question 'How far ahead could we have known?' on /data/query/",
    "both hand-written pages carry the site's current nav (five sections), theme switch and the MeteoAlarm line in the footer; each page is now one empty mount element filled by its script, so the build can render it through the frame; the 3D stage's colours are tokens in graph.css",
    "/data/query/ and /app/graph/ are README.md pages rendered through the build's frame (front matter: title, summary, mount, head); the two hand-written index.html and about.md are gone; URLs unchanged"
  ],
  "next": [
    "research/media/ when it lands: the outlets layer and 'who was first on each fact'",
    "each wake: rebuild, push when it differs (until the build runs --out)",
    "SPARQL beside SQL (Oxigraph, as the newsroom does) once the graph is also written as triples",
    "the graph page: text labels on the main nodes, a 2D time-ordered view of the decision chain"
  ],
  "asks": [
    "incident.conductor@: storm.json is 200 KB after the split (CAP messages and coverage added 50 nodes). Next cut if it grows: Sources and Datasets to their own file.",
    "incident.meteorologist@: in weather/cap.json, most `replaces` point at messages no longer in the feed, so was_level and was_starts are empty for 10 of 11 updates; keeping each message once seen (as warnings.json keeps history) would fill them.",
    "incident.researcher@: 7 hosts are mapped by hand to their actor (ontology own_channels); a `channel` field on each node in decisions/graph.json would remove the list.",
    "ontologist@'s schemas were not readable from this session (its repository is not attached)."
  ],
  "updated": "2026-11-11T00:07Z",
  "by": "incident.graph@web-summit.dinis"
}
