{
  "by": "incident.storyteller@web-summit.dinis",
  "updated": "2026-11-11T10:31:05Z",
  "about": "The cast of incident WS-214: every agent in agents/JOBS.md and agents/policy.json, Dinis, and the outside bodies and machines that matter. Lines and icons are the storyteller's; first and last commit and commit counts are read from git (Agent: trailer, or the subject prefix before trailers were used); sessions are the keys in data/keys.json, in the order added. Made by story/make-cast.mjs.",
  "icon_form": "icon.emoji for text; icon.glyph is a name from story/primitives.md (glyphs) that incident.motion@ draws as a small SVG.",
  "members": [
    {
      "id": "dinis",
      "kind": "person",
      "name": "Dinis Cruz",
      "line": "the one person who instructs; everything else the team reads is material",
      "icon": {
        "emoji": "🧑",
        "glyph": "person"
      },
      "owns": "merges dev to main; the brief is his words",
      "source": "CLAUDE.md, BRIEF.md"
    },
    {
      "id": "incident.conductor@web-summit.dinis",
      "kind": "agent",
      "role": "conductor",
      "line": "the lead: routes the work, talks with Dinis, keeps the timeline, the headline, the jobs and the brief",
      "owns": "incidents/*/timeline.md, incidents/*/decisions.md, incidents/*/incident.json, incidents/*/comms/, incidents/*/material/, incidents/*/data/signals.json, …",
      "icon": {
        "emoji": "🎼",
        "glyph": "baton"
      },
      "first_commit": {
        "commit": "77cdd51f",
        "time": "2026-11-10T21:14:33Z"
      },
      "last_commit": {
        "commit": "bda392be",
        "time": "2026-11-11T10:29:32Z"
      },
      "commits": 148,
      "sessions": [
        {
          "n": 1,
          "key": "incident-conductor-dinis",
          "made": "2026-11-10",
          "status": "active",
          "fingerprint": "sha256:2df48a3207ec20ae"
        }
      ]
    },
    {
      "id": "incident.designer@web-summit.dinis",
      "kind": "agent",
      "role": "designer",
      "line": "the look: tokens, parts and rules every page is drawn with, in rounds",
      "owns": "app/site.css, app/design/, design/",
      "icon": {
        "emoji": "🎨",
        "glyph": "palette"
      },
      "first_commit": {
        "commit": "876a31e2",
        "time": "2026-11-10T23:36:58Z"
      },
      "last_commit": {
        "commit": "6cb5b25c",
        "time": "2026-11-11T10:26:20Z"
      },
      "commits": 80,
      "sessions": [
        {
          "n": 1,
          "key": "incident-designer-dinis",
          "made": "2026-11-10T03:03Z",
          "status": "handed over",
          "fingerprint": "sha256:eea8a3af03d5efa9"
        },
        {
          "n": 2,
          "key": "incident-designer-dinis-2",
          "made": "2026-11-11T03:05Z",
          "status": "handed over",
          "fingerprint": "sha256:5058c2e2911212bc"
        },
        {
          "n": 3,
          "key": "incident-designer-dinis-3",
          "made": "2026-11-11T09:21Z",
          "status": "handed over",
          "fingerprint": "sha256:993ffeef7992f4df"
        },
        {
          "n": 4,
          "key": "incident-designer-dinis-4",
          "made": "2026-11-11T09:34Z",
          "status": "handed over",
          "fingerprint": "sha256:22285083cd82308b"
        },
        {
          "n": 5,
          "key": "incident-designer-dinis-5",
          "made": "2026-11-11T10:14Z",
          "status": "active",
          "fingerprint": "sha256:4bce0de451fc6428"
        }
      ]
    },
    {
      "id": "incident.observability@web-summit.dinis",
      "kind": "agent",
      "role": "observability",
      "line": "the window on the team: /agents/, every agent, its state, its last commit and wake, live",
      "owns": "admin-site/, app/agents/, data/agents/*.json, tools/agents-*.mjs, agents/*/README.md",
      "icon": {
        "emoji": "🔭",
        "glyph": "telescope"
      },
      "first_commit": {
        "commit": "3d93ef4f",
        "time": "2026-11-10T23:38:37Z"
      },
      "last_commit": {
        "commit": "14c7283b",
        "time": "2026-11-11T10:22:29Z"
      },
      "commits": 66,
      "sessions": [
        {
          "n": 1,
          "key": "incident-observability-dinis",
          "made": "2026-11-10T03:06Z",
          "status": "handed over",
          "fingerprint": "sha256:1913bd5631290440"
        },
        {
          "n": 2,
          "key": "incident-observability-dinis-2",
          "made": "2026-11-11T03:06Z",
          "status": "handed over",
          "fingerprint": "sha256:e58744d5d343125b"
        },
        {
          "n": 3,
          "key": "incident-observability-dinis-3",
          "made": "2026-11-11T08:18Z",
          "status": "handed over",
          "fingerprint": "sha256:a4019d26266d8cd5"
        },
        {
          "n": 4,
          "key": "incident-observability-dinis-4",
          "made": "2026-11-11T09:49Z",
          "status": "handed over",
          "fingerprint": "sha256:451a710b70685551"
        },
        {
          "n": 5,
          "key": "incident-observability-dinis-5",
          "made": "2026-11-11T10:16Z",
          "status": "active",
          "fingerprint": "sha256:3882a2e38f7dd7ca"
        }
      ]
    },
    {
      "id": "incident.identity@web-summit.dinis",
      "kind": "agent",
      "role": "identity",
      "line": "Dinis's login and his sealed lane to the conductor; the keys",
      "owns": "app/login/, account/, data/lanes.json, tools/lane-*.mjs, SECURITY.md",
      "icon": {
        "emoji": "🔑",
        "glyph": "key"
      },
      "first_commit": {
        "commit": "b53673e7",
        "time": "2026-11-10T23:39:17Z"
      },
      "last_commit": {
        "commit": "dd53362c",
        "time": "2026-11-11T10:23:33Z"
      },
      "commits": 30,
      "sessions": [
        {
          "n": 1,
          "key": "incident-identity-dinis",
          "made": "2026-11-10",
          "status": "handed over",
          "fingerprint": "sha256:9e6e630e0d1d051a"
        },
        {
          "n": 2,
          "key": "incident-identity-dinis-2",
          "made": "2026-11-11T05:45Z",
          "status": "handed over",
          "fingerprint": "sha256:c23c81b2d69bf193"
        },
        {
          "n": 3,
          "key": "incident-identity-dinis-3",
          "made": "2026-11-11T10:22Z",
          "status": "active",
          "fingerprint": "sha256:c3f77eedf6884139"
        }
      ]
    },
    {
      "id": "incident.weatherwatch@web-summit.dinis",
      "kind": "agent",
      "role": "weatherwatch",
      "line": "the map of the best weather sites, and who is covering the storm",
      "owns": "research/weather-sites/",
      "icon": {
        "emoji": "🗺️",
        "glyph": "map"
      },
      "first_commit": {
        "commit": "066df683",
        "time": "2026-11-10T23:38:13Z"
      },
      "last_commit": {
        "commit": "ed69666a",
        "time": "2026-11-11T09:45:43Z"
      },
      "commits": 42,
      "sessions": [
        {
          "n": 1,
          "key": "incident-weatherwatch-dinis",
          "made": "2026-11-10",
          "status": "ended",
          "fingerprint": "sha256:c3f31029c7428764"
        },
        {
          "n": 2,
          "key": "incident-weatherwatch-dinis-2",
          "made": "2026-11-11T03:36Z",
          "status": "handed over",
          "fingerprint": "sha256:cba9eccd1302fc0b"
        },
        {
          "n": 3,
          "key": "incident-weatherwatch-dinis-3",
          "made": "2026-11-11T09:43Z",
          "status": "active",
          "fingerprint": "sha256:42d7d19b2e70d905"
        }
      ]
    },
    {
      "id": "incident.media@web-summit.dinis",
      "kind": "agent",
      "role": "media",
      "line": "the media watch: outlets, by-lines on public articles, coverage as data; the contribute page",
      "owns": "research/media/, contribute.md",
      "icon": {
        "emoji": "📰",
        "glyph": "newspaper"
      },
      "first_commit": {
        "commit": "8b9392e6",
        "time": "2026-11-10T23:38:00Z"
      },
      "last_commit": {
        "commit": "8422f038",
        "time": "2026-11-11T09:39:39Z"
      },
      "commits": 32,
      "sessions": [
        {
          "n": 1,
          "key": "incident-media-dinis",
          "made": "2026-11-10",
          "status": "handed over",
          "fingerprint": "sha256:c32235761af5a47b"
        },
        {
          "n": 2,
          "key": "incident-media-dinis-2",
          "made": "2026-11-11",
          "status": "active",
          "fingerprint": "sha256:8146ed0f2b066a92"
        }
      ]
    },
    {
      "id": "incident.librarian@web-summit.dinis",
      "kind": "agent",
      "role": "librarian",
      "line": "everything findable: the catalogue, the start pack for new agents, the glossary",
      "owns": "library/, docs/, tools/library-*.mjs, agents/policy.json, tools/policy-check.mjs, agents/*/policy.md, …",
      "icon": {
        "emoji": "📚",
        "glyph": "books"
      },
      "first_commit": {
        "commit": "72a73628",
        "time": "2026-11-10T23:38:35Z"
      },
      "last_commit": {
        "commit": "95b2cef2",
        "time": "2026-11-11T09:56:54Z"
      },
      "commits": 97,
      "sessions": [
        {
          "n": 1,
          "key": "incident-librarian-dinis",
          "made": "2026-11-10T03:00Z",
          "status": "handed over",
          "fingerprint": "sha256:cefff668d770eca8"
        },
        {
          "n": 2,
          "key": "incident-librarian-dinis-2",
          "made": "2026-11-11T03:02Z",
          "status": "handed over",
          "fingerprint": "sha256:e77d2966a54afa44"
        },
        {
          "n": 3,
          "key": "incident-librarian-dinis-3",
          "made": "2026-11-11T04:07Z",
          "status": "handed over",
          "fingerprint": "sha256:b9954567e6e13193"
        },
        {
          "n": 4,
          "key": "incident-librarian-dinis-4",
          "made": "2026-11-11T04:15Z",
          "status": "handed over",
          "fingerprint": "sha256:5f913e60ada18db9"
        },
        {
          "n": 5,
          "key": "incident-librarian-dinis-5",
          "made": "2026-11-11T05:48Z",
          "status": "handed over",
          "fingerprint": "sha256:0d8363fe56621ca1"
        },
        {
          "n": 6,
          "key": "incident-librarian-dinis-6",
          "made": "2026-11-11T07:47Z",
          "status": "handed over",
          "fingerprint": "sha256:0c478754e23a8cb1"
        },
        {
          "n": 7,
          "key": "incident-librarian-dinis-7",
          "made": "2026-11-11T09:54Z",
          "status": "active",
          "fingerprint": "sha256:959ce49207047ded"
        }
      ]
    },
    {
      "id": "incident.graph@web-summit.dinis",
      "kind": "agent",
      "role": "graph",
      "line": "ontologist and cartographer: one graph of the storm, and SQL in the browser",
      "owns": "data/graph/, app/graph/, tools/graph-*.mjs, data/query/",
      "icon": {
        "emoji": "🕸️",
        "glyph": "graph"
      },
      "first_commit": {
        "commit": "9b42a2e6",
        "time": "2026-11-10T23:44:07Z"
      },
      "last_commit": {
        "commit": "35488817",
        "time": "2026-11-11T09:57:35Z"
      },
      "commits": 34,
      "sessions": [
        {
          "n": 1,
          "key": "incident-graph-dinis",
          "made": "2026-11-10T03:34Z",
          "status": "handed over",
          "fingerprint": "sha256:6caf6606ce46c991"
        },
        {
          "n": 2,
          "key": "incident-graph-dinis-2",
          "made": "2026-11-11T03:35Z",
          "status": "handed over",
          "fingerprint": "sha256:4e092cb8c9676a39"
        },
        {
          "n": 3,
          "key": "incident-graph-dinis-3",
          "made": "2026-11-11T07:56Z",
          "status": "active",
          "fingerprint": "sha256:af1009c9c126b694"
        }
      ]
    },
    {
      "id": "incident.studio@web-summit.dinis",
      "kind": "agent",
      "role": "studio",
      "line": "animated explanations with small characters, played as storyboards",
      "owns": "studio/, app/studio/",
      "icon": {
        "emoji": "🎬",
        "glyph": "clapper"
      },
      "first_commit": {
        "commit": "7fc709c8",
        "time": "2026-11-11T00:38:02Z"
      },
      "last_commit": {
        "commit": "b5c1f473",
        "time": "2026-11-11T03:55:10Z"
      },
      "commits": 26,
      "sessions": [
        {
          "n": 1,
          "key": "incident-studio-dinis",
          "made": "2026-11-11",
          "status": "handed over",
          "fingerprint": "sha256:a245b51b57e34f52"
        },
        {
          "n": 2,
          "key": "incident-studio-dinis-2",
          "made": "2026-11-11T03:36Z",
          "status": "active",
          "fingerprint": "sha256:ea7c0bb8950e70db"
        }
      ]
    },
    {
      "id": "incident.wikipedia@web-summit.dinis",
      "kind": "agent",
      "role": "wikipedia",
      "line": "Wikipedia on the storm: articles, revisions, claims, and this site measured by its values",
      "owns": "research/wikipedia/, tools/wikipedia-*.mjs",
      "icon": {
        "emoji": "📖",
        "glyph": "encyclopedia"
      },
      "first_commit": {
        "commit": "1e744ad9",
        "time": "2026-11-11T01:43:51Z"
      },
      "last_commit": {
        "commit": "faafaf41",
        "time": "2026-11-11T10:01:29Z"
      },
      "commits": 15,
      "sessions": [
        {
          "n": 1,
          "key": "incident-wikipedia-dinis",
          "made": "2026-11-11",
          "status": "handed over",
          "fingerprint": "sha256:da1d37c302cd8700"
        },
        {
          "n": 2,
          "key": "incident-wikipedia-dinis-2",
          "made": "2026-11-11",
          "status": "active",
          "fingerprint": "sha256:71df9610206086af"
        }
      ]
    },
    {
      "id": "incident.weather@web-summit.dinis",
      "kind": "agent",
      "role": "weather",
      "line": "the Weather face at /: the storm as a weather channel shows it, from our own JSON only",
      "owns": "weather/, app/weather/, tools/weather-*.mjs",
      "icon": {
        "emoji": "🌦️",
        "glyph": "cloud-sun"
      },
      "first_commit": {
        "commit": "82fa4e5a",
        "time": "2026-11-11T02:10:19Z"
      },
      "last_commit": {
        "commit": "53cd54bc",
        "time": "2026-11-11T10:29:23Z"
      },
      "commits": 32,
      "sessions": [
        {
          "n": 1,
          "key": "incident-weather-dinis",
          "made": "2026-11-11T09:29Z",
          "status": "handed over",
          "fingerprint": "sha256:59bd6a558daf0242"
        },
        {
          "n": 2,
          "key": "incident-weather-dinis-2",
          "made": "2026-11-11T09:31Z",
          "status": "active",
          "fingerprint": "sha256:d83e14069f37584a"
        }
      ]
    },
    {
      "id": "incident.ipma@web-summit.dinis",
      "kind": "agent",
      "role": "ipma",
      "line": "IPMA's open data: every endpoint mapped, read hourly, kept with diffs",
      "owns": "sources/ipma/, app/sources/ipma/, tools/ipma-*.mjs",
      "icon": {
        "emoji": "📡",
        "glyph": "antenna"
      },
      "first_commit": {
        "commit": "39c68b95",
        "time": "2026-11-11T02:30:56Z"
      },
      "last_commit": {
        "commit": "6a9ffba4",
        "time": "2026-11-11T09:57:24Z"
      },
      "commits": 20,
      "sessions": [
        {
          "n": 1,
          "key": "incident-ipma-dinis",
          "made": "2026-11-11",
          "status": "handed over",
          "fingerprint": "sha256:768a297eda9ef6b7"
        },
        {
          "n": 2,
          "key": "incident-ipma-dinis-2",
          "made": "2026-11-11",
          "status": "active",
          "fingerprint": "sha256:8809b017f0000fa8"
        }
      ]
    },
    {
      "id": "incident.sources@web-summit.dinis",
      "kind": "agent",
      "role": "sources",
      "line": "a section per source body, MeteoAlarm first: feeds, API, changes, licence",
      "owns": "sources/, app/sources/, tools/source-*.mjs",
      "icon": {
        "emoji": "🧭",
        "glyph": "compass"
      },
      "first_commit": {
        "commit": "ec7471fc",
        "time": "2026-11-11T02:21:37Z"
      },
      "last_commit": {
        "commit": "49b913dc",
        "time": "2026-11-11T10:25:28Z"
      },
      "commits": 22,
      "sessions": [
        {
          "n": 1,
          "key": "incident-sources-dinis",
          "made": "2026-11-11",
          "status": "active",
          "fingerprint": "sha256:f9bdf85cc46df676"
        }
      ]
    },
    {
      "id": "incident.archivist@web-summit.dinis",
      "kind": "agent",
      "role": "archivist",
      "line": "captures every outside page (screenshot, HTML, sha256) into vaults; the evidence pages",
      "owns": "evidence/, app/evidence/, tools/capture*.mjs, data/vaults.json",
      "icon": {
        "emoji": "🗄️",
        "glyph": "archive"
      },
      "first_commit": {
        "commit": "b708dbed",
        "time": "2026-11-11T02:22:15Z"
      },
      "last_commit": {
        "commit": "554db7e5",
        "time": "2026-11-11T10:27:07Z"
      },
      "commits": 26,
      "sessions": [
        {
          "n": 1,
          "key": "incident-archivist-dinis",
          "made": "2026-11-11",
          "status": "active",
          "fingerprint": "sha256:d3f6afe074c9293c"
        }
      ]
    },
    {
      "id": "incident.entities@web-summit.dinis",
      "kind": "agent",
      "role": "entities",
      "line": "the mini Wikipedia as data: a node and a page for every thing mentioned; the linker",
      "owns": "entities/, app/lens/, tools/entities-*.mjs",
      "icon": {
        "emoji": "🏷️",
        "glyph": "tag"
      },
      "first_commit": {
        "commit": "747d8321",
        "time": "2026-11-11T02:20:19Z"
      },
      "last_commit": {
        "commit": "3d899a61",
        "time": "2026-11-11T09:38:45Z"
      },
      "commits": 34,
      "sessions": [
        {
          "n": 1,
          "key": "incident-entities-dinis",
          "made": "2026-11-11T05:21Z",
          "status": "handed over",
          "fingerprint": "sha256:f7eaaf5aa9755aef"
        },
        {
          "n": 2,
          "key": "incident-entities-dinis-2",
          "made": "2026-11-11T05:20Z",
          "status": "handed over",
          "fingerprint": "sha256:67fc4a1c3cb7a9e2"
        },
        {
          "n": 3,
          "key": "incident-entities-dinis-3",
          "made": "2026-11-11T08:45Z",
          "status": "active",
          "fingerprint": "sha256:2824ab133170f5a0"
        }
      ]
    },
    {
      "id": "incident.labs@web-summit.dinis",
      "kind": "agent",
      "role": "labs",
      "line": "experiments: many timelines, decision views, lead times",
      "owns": "labs/, app/labs/, tools/labs-*.mjs",
      "icon": {
        "emoji": "🧪",
        "glyph": "flask"
      },
      "first_commit": {
        "commit": "22d1e0b2",
        "time": "2026-11-11T02:22:49Z"
      },
      "last_commit": {
        "commit": "64cc0708",
        "time": "2026-11-11T09:15:10Z"
      },
      "commits": 14,
      "sessions": [
        {
          "n": 1,
          "key": "incident-labs-dinis",
          "made": "2026-11-11T06:44Z",
          "status": "handed over",
          "fingerprint": "sha256:e7ba51b45cae191b"
        },
        {
          "n": 2,
          "key": "incident-labs-dinis-2",
          "made": "2026-11-11T06:44Z",
          "status": "active",
          "fingerprint": "sha256:ebba9a92c386ec63"
        }
      ]
    },
    {
      "id": "incident.board@web-summit.dinis",
      "kind": "agent",
      "role": "board",
      "line": "what is still open, each item tracked to its evidence",
      "owns": "board/, app/board/, tools/board-*.mjs",
      "icon": {
        "emoji": "📌",
        "glyph": "pin"
      },
      "first_commit": {
        "commit": "13eb44ea",
        "time": "2026-11-11T02:22:18Z"
      },
      "last_commit": {
        "commit": "bf665cd4",
        "time": "2026-11-11T09:34:52Z"
      },
      "commits": 21,
      "sessions": [
        {
          "n": 1,
          "key": "incident-board-dinis",
          "made": "2026-11-11",
          "status": "handed over",
          "fingerprint": "sha256:12562fc83a671f38"
        },
        {
          "n": 2,
          "key": "incident-board-dinis-2",
          "made": "2026-11-11T05:44Z",
          "status": "active",
          "fingerprint": "sha256:4660afd41f103b3c"
        }
      ]
    },
    {
      "id": "incident.social@web-summit.dinis",
      "kind": "agent",
      "role": "social",
      "line": "Bluesky and other public social sources, as data",
      "owns": "research/social/, app/social/, tools/social-*.mjs",
      "icon": {
        "emoji": "💬",
        "glyph": "speech"
      },
      "first_commit": {
        "commit": "904f80d8",
        "time": "2026-11-11T02:30:30Z"
      },
      "last_commit": {
        "commit": "519b03aa",
        "time": "2026-11-11T09:56:20Z"
      },
      "commits": 14,
      "sessions": [
        {
          "n": 1,
          "key": "incident-social-dinis",
          "made": "2026-11-11",
          "status": "handed over",
          "fingerprint": "sha256:a6df1c3e1a231d0f"
        },
        {
          "n": 2,
          "key": "incident-social-dinis-2",
          "made": "2026-11-11T05:44Z",
          "status": "active",
          "fingerprint": "sha256:0adef9c835729b33"
        }
      ]
    },
    {
      "id": "incident.meteorology@web-summit.dinis",
      "kind": "agent",
      "role": "meteorology",
      "line": "where the weather data comes from: observing systems, models, services, licences",
      "owns": "meteorology/, app/meteorology/, tools/meteorology-*.mjs",
      "icon": {
        "emoji": "🛰️",
        "glyph": "satellite"
      },
      "first_commit": {
        "commit": "8b8bf879",
        "time": "2026-11-11T02:36:46Z"
      },
      "last_commit": {
        "commit": "17c1804b",
        "time": "2026-11-11T08:25:17Z"
      },
      "commits": 12,
      "sessions": [
        {
          "n": 1,
          "key": "incident-meteorology-dinis",
          "made": "2026-11-11",
          "status": "handed over",
          "fingerprint": "sha256:162a3344a5c28014"
        },
        {
          "n": 2,
          "key": "incident-meteorology-dinis-2",
          "made": "2026-11-11T05:20Z",
          "status": "active",
          "fingerprint": "sha256:29969fb5974c7b2c"
        }
      ]
    },
    {
      "id": "incident.stories@web-summit.dinis",
      "kind": "agent",
      "role": "stories",
      "line": "data-driven stories from the data room only, every statement linked",
      "owns": "stories/, app/stories/, tools/stories-*.mjs",
      "icon": {
        "emoji": "✍️",
        "glyph": "quill"
      },
      "first_commit": {
        "commit": "e96857b6",
        "time": "2026-11-11T02:25:51Z"
      },
      "last_commit": {
        "commit": "14fe1eee",
        "time": "2026-11-11T09:56:44Z"
      },
      "commits": 35,
      "sessions": [
        {
          "n": 1,
          "key": "incident-stories-dinis",
          "made": "2026-11-11",
          "status": "handed over",
          "fingerprint": "sha256:756dd0add148a910"
        },
        {
          "n": 2,
          "key": "incident-stories-dinis-2",
          "made": "2026-11-11T05:44Z",
          "status": "handed over",
          "fingerprint": "sha256:164902fc084c209d"
        },
        {
          "n": 3,
          "key": "incident-stories-dinis-3",
          "made": "2026-11-11T07:55Z",
          "status": "handed over",
          "fingerprint": "sha256:d7f2e0730be22d91"
        },
        {
          "n": 4,
          "key": "incident-stories-dinis-4",
          "made": "2026-11-11T08:53Z",
          "status": "active",
          "fingerprint": "sha256:d92b540703adc9af"
        }
      ]
    },
    {
      "id": "incident.models@web-summit.dinis",
      "kind": "agent",
      "role": "models",
      "line": "other models, measured: evals on checkable tasks, through the ledger",
      "owns": "models/, app/models/, tools/models-*.mjs, tools/llm.mjs",
      "icon": {
        "emoji": "⚖️",
        "glyph": "scales"
      },
      "first_commit": {
        "commit": "4655fc5c",
        "time": "2026-11-11T02:35:30Z"
      },
      "last_commit": {
        "commit": "8e13cfe0",
        "time": "2026-11-11T09:32:31Z"
      },
      "commits": 11,
      "sessions": [
        {
          "n": 1,
          "key": "incident-models-dinis",
          "made": "2026-11-11",
          "status": "active",
          "fingerprint": "sha256:81ba78c3312c1f76"
        }
      ]
    },
    {
      "id": "incident.shadow@web-summit.dinis",
      "kind": "agent",
      "role": "shadow",
      "line": "shadow reporting: what other sources and answer engines say, compared with our record",
      "owns": "shadow/, app/shadow/, tools/shadow-*.mjs",
      "icon": {
        "emoji": "👥",
        "glyph": "shadow"
      },
      "first_commit": {
        "commit": "cae2457f",
        "time": "2026-11-11T02:26:13Z"
      },
      "last_commit": {
        "commit": "123e9dce",
        "time": "2026-11-11T10:06:59Z"
      },
      "commits": 12,
      "sessions": [
        {
          "n": 1,
          "key": "incident-shadow-dinis",
          "made": "2026-11-11",
          "status": "active",
          "fingerprint": "sha256:b563db30a7e9262c"
        }
      ]
    },
    {
      "id": "incident.ci@web-summit.dinis",
      "kind": "agent",
      "role": "ci",
      "line": "the pipeline made visible: every run and commit, who pushed, what is signed",
      "owns": "ci/, app/ci/, tools/ci-*.mjs, data/ci/, README.md",
      "icon": {
        "emoji": "⚙️",
        "glyph": "gear"
      },
      "first_commit": {
        "commit": "e94ded11",
        "time": "2026-11-11T02:27:54Z"
      },
      "last_commit": {
        "commit": "1b7eae63",
        "time": "2026-11-11T10:19:13Z"
      },
      "commits": 16,
      "sessions": [
        {
          "n": 1,
          "key": "incident-ci-dinis",
          "made": "2026-11-11T05:45Z",
          "status": "handed over",
          "fingerprint": "sha256:c3f625a55509acc1"
        },
        {
          "n": 2,
          "key": "incident-ci-dinis-2",
          "made": "2026-11-11T05:45Z",
          "status": "active",
          "fingerprint": "sha256:0f94b62eb1d9353a"
        }
      ]
    },
    {
      "id": "incident.perplexity@web-summit.dinis",
      "kind": "agent",
      "role": "perplexity",
      "line": "an answer engine used as a research tool: questions, answers, citations, cost",
      "owns": "research/perplexity/, app/perplexity/, tools/perplexity-*.mjs",
      "icon": {
        "emoji": "🔎",
        "glyph": "magnifier"
      },
      "first_commit": {
        "commit": "f24a7735",
        "time": "2026-11-11T03:01:18Z"
      },
      "last_commit": {
        "commit": "49907ea5",
        "time": "2026-11-11T05:27:46Z"
      },
      "commits": 6,
      "sessions": [
        {
          "n": 1,
          "key": "incident-perplexity-dinis",
          "made": "2026-11-11",
          "status": "active",
          "fingerprint": "sha256:ad99251a8a26259e"
        }
      ]
    },
    {
      "id": "incident.accountant@web-summit.dinis",
      "kind": "agent",
      "role": "accountant",
      "line": "what the project costs: model spend, tokens per session, CI time",
      "owns": "accounts/, app/accounts/, tools/accounts-*.mjs",
      "icon": {
        "emoji": "🧮",
        "glyph": "abacus"
      },
      "first_commit": {
        "commit": "5c6c532f",
        "time": "2026-11-11T02:58:01Z"
      },
      "last_commit": {
        "commit": "cbfb680c",
        "time": "2026-11-11T09:41:14Z"
      },
      "commits": 14,
      "sessions": [
        {
          "n": 1,
          "key": "incident-accountant-dinis",
          "made": "2026-11-11",
          "status": "handed over",
          "fingerprint": "sha256:7740387a11cc72c6"
        },
        {
          "n": 2,
          "key": "incident-accountant-dinis-2",
          "made": "2026-11-11T05:40Z",
          "status": "active",
          "fingerprint": "sha256:e1bfc8c65a6afbaa"
        }
      ]
    },
    {
      "id": "incident.reporter@web-summit.dinis",
      "kind": "agent",
      "role": "reporter",
      "line": "the project as it happens: a trace per workflow, from Dinis's word to a live page",
      "owns": "reporter/, tools/reporter-*.mjs",
      "icon": {
        "emoji": "🎙️",
        "glyph": "microphone"
      },
      "first_commit": {
        "commit": "4b5a93ac",
        "time": "2026-11-11T03:03:02Z"
      },
      "last_commit": {
        "commit": "4a58c6cd",
        "time": "2026-11-11T10:16:41Z"
      },
      "commits": 29,
      "sessions": [
        {
          "n": 1,
          "key": "incident-reporter-dinis",
          "made": "2026-11-11T04:06Z",
          "status": "handed over",
          "fingerprint": "sha256:809eafd1180698c7"
        },
        {
          "n": 2,
          "key": "incident-reporter-dinis-2",
          "made": "2026-11-11T04:06Z",
          "status": "handed over",
          "fingerprint": "sha256:c18fbbaced0fe23d"
        },
        {
          "n": 3,
          "key": "incident-reporter-dinis-3",
          "made": "2026-11-11T05:11Z",
          "status": "handed over",
          "fingerprint": "sha256:7ee5146689501cb2"
        },
        {
          "n": 4,
          "key": "incident-reporter-dinis-4",
          "made": "2026-11-11T10:14Z",
          "status": "active",
          "fingerprint": "sha256:1a91f355e683558d"
        }
      ]
    },
    {
      "id": "incident.journalist@web-summit.dinis",
      "kind": "agent",
      "role": "journalist",
      "line": "the project told: the story of how this was made, from the traces",
      "owns": "journal/, app/journal/, tools/journal-*.mjs",
      "icon": {
        "emoji": "🗞️",
        "glyph": "notebook"
      },
      "first_commit": {
        "commit": "641e2164",
        "time": "2026-11-11T02:59:44Z"
      },
      "last_commit": {
        "commit": "a9c590a5",
        "time": "2026-11-11T10:15:03Z"
      },
      "commits": 35,
      "sessions": [
        {
          "n": 1,
          "key": "incident-journalist-dinis",
          "made": "2026-11-11T04:09Z",
          "status": "handed over",
          "fingerprint": "sha256:6528852cc90c1ff7"
        },
        {
          "n": 2,
          "key": "incident-journalist-dinis-2",
          "made": "2026-11-11T04:09Z",
          "status": "handed over",
          "fingerprint": "sha256:35027cffa2f0930a"
        },
        {
          "n": 3,
          "key": "incident-journalist-dinis-3",
          "made": "2026-11-11T05:15Z",
          "status": "handed over",
          "fingerprint": "sha256:f5ff6a13d8fdd221"
        },
        {
          "n": 4,
          "key": "incident-journalist-dinis-4",
          "made": "2026-11-11T08:16Z",
          "status": "active",
          "fingerprint": "sha256:3a33f2da642fc656"
        }
      ]
    },
    {
      "id": "incident.envoy@web-summit.dinis",
      "kind": "agent",
      "role": "envoy",
      "line": "outreach with Dinis: the letter, one-pagers, posts; the newcomers' front page",
      "owns": "outreach/, comms/, welcome/",
      "icon": {
        "emoji": "✉️",
        "glyph": "envelope"
      },
      "first_commit": {
        "commit": "8d1efd8e",
        "time": "2026-11-11T09:35:57Z"
      },
      "last_commit": {
        "commit": "f02d17d9",
        "time": "2026-11-11T10:07:45Z"
      },
      "commits": 6,
      "sessions": [
        {
          "n": 1,
          "key": "incident-envoy-dinis",
          "made": "2026-11-11T09:35Z",
          "status": "active",
          "fingerprint": "sha256:415bdd988a305246"
        }
      ]
    },
    {
      "id": "incident.synthetic@web-summit.dinis",
      "kind": "agent",
      "role": "synthetic",
      "line": "four invented visitors walk the site and say what they understood (a test instrument, not people)",
      "owns": "research/synthetic/",
      "icon": {
        "emoji": "🧍",
        "glyph": "mannequin"
      },
      "first_commit": {
        "commit": "76ccd12c",
        "time": "2026-11-11T09:53:33Z"
      },
      "last_commit": {
        "commit": "5b489d1b",
        "time": "2026-11-11T10:09:58Z"
      },
      "commits": 4,
      "sessions": [
        {
          "n": 1,
          "key": "incident-synthetic-dinis",
          "made": "2026-11-11T09:51Z",
          "status": "active",
          "fingerprint": "sha256:f6d3ab50a877c868"
        }
      ]
    },
    {
      "id": "incident.storyteller@web-summit.dinis",
      "kind": "agent",
      "role": "storyteller",
      "line": "the story of the team: the cast, the primitives, ten paths, the arc",
      "owns": "story/",
      "icon": {
        "emoji": "📜",
        "glyph": "scroll"
      },
      "first_commit": {
        "commit": "edc481e0",
        "time": "2026-11-11T10:13:14Z"
      },
      "last_commit": {
        "commit": "6a43c78a",
        "time": "2026-11-11T10:30:41Z"
      },
      "commits": 11,
      "sessions": [
        {
          "n": 1,
          "key": "incident-storyteller-dinis",
          "made": "2026-11-11T10:12Z",
          "status": "active",
          "fingerprint": "sha256:04179652db3e2fa9"
        }
      ]
    },
    {
      "id": "incident.motion@web-summit.dinis",
      "kind": "agent",
      "role": "motion",
      "line": "small animations of the work: the flow format, the gallery at /flows/",
      "owns": "app/flows/, flows/, data/flows/, tools/flows-*.mjs",
      "icon": {
        "emoji": "🎞️",
        "glyph": "film"
      },
      "first_commit": {
        "commit": "b144acec",
        "time": "2026-11-11T10:20:49Z"
      },
      "last_commit": {
        "commit": "ae944231",
        "time": "2026-11-11T10:30:26Z"
      },
      "commits": 5,
      "sessions": [
        {
          "n": 1,
          "key": "incident-motion-dinis",
          "made": "2026-11-11T10:12Z",
          "status": "active",
          "fingerprint": "sha256:2717dab9e1ac419f"
        }
      ]
    },
    {
      "id": "incident.broadcast@web-summit.dinis",
      "kind": "agent",
      "role": "broadcast",
      "line": "the news-channel wall at /broadcast/: the storm as a live channel shows it",
      "owns": "broadcast/, app/broadcast/, tools/broadcast-*.mjs",
      "icon": {
        "emoji": "📺",
        "glyph": "tv"
      },
      "first_commit": {
        "commit": "9b6fe987",
        "time": "2026-11-11T10:22:08Z"
      },
      "last_commit": {
        "commit": "cd5d84e1",
        "time": "2026-11-11T10:28:09Z"
      },
      "commits": 2,
      "sessions": [
        {
          "n": 1,
          "key": "incident-broadcast-dinis",
          "made": "2026-11-11T10:20Z",
          "status": "active",
          "fingerprint": "sha256:fb72c29a70ed0783"
        }
      ]
    },
    {
      "id": "incident.transport@web-summit.dinis",
      "kind": "agent",
      "role": "transport",
      "line": "flights and transport, live: open data on flights at the four airports, the trains, the ferries",
      "owns": "transport/, app/transport/, incidents/*/data/transport/, tools/transport-*.mjs",
      "icon": {
        "emoji": "✈️",
        "glyph": "plane"
      },
      "first_commit": null,
      "last_commit": null,
      "commits": 0,
      "sessions": []
    },
    {
      "id": "incident.meteorologist@web-summit.dinis",
      "kind": "agent",
      "role": "meteorologist",
      "line": "the forecaster's reading of the storm; writes in the Web Summit site, the conductor syncs",
      "owns": "incidents/*/data/weather/",
      "icon": {
        "emoji": "🌀",
        "glyph": "cyclone"
      },
      "first_commit": null,
      "last_commit": null,
      "commits": 0,
      "sessions": []
    },
    {
      "id": "incident.researcher@web-summit.dinis",
      "kind": "agent",
      "role": "researcher",
      "line": "checks the organiser's decisions and times; writes in the Web Summit site, the conductor syncs",
      "owns": "incidents/*/data/decisions/",
      "icon": {
        "emoji": "🔬",
        "glyph": "microscope"
      },
      "first_commit": null,
      "last_commit": null,
      "commits": 0,
      "sessions": []
    },
    {
      "id": "incident.dev@web-summit.dinis",
      "kind": "agent",
      "role": "dev",
      "line": "the watchers and the storm script (websummit.mjs, the blog poll); writes in the Web Summit site, the conductor syncs",
      "owns": "tools/websummit*, incidents/*/data/watch/, app/storm.js",
      "icon": {
        "emoji": "🛠️",
        "glyph": "wrench"
      },
      "first_commit": null,
      "last_commit": null,
      "commits": 0,
      "sessions": []
    },
    {
      "id": "ipma",
      "kind": "outside",
      "name": "IPMA",
      "line": "Portugal's weather service: the body that warns; its warnings are the headline's source",
      "icon": {
        "emoji": "⚠️",
        "glyph": "warning"
      },
      "source": "CLAUDE.md (the headline rule)"
    },
    {
      "id": "web-summit",
      "kind": "outside",
      "name": "Web Summit",
      "line": "the organiser whose decisions about the event are the other headline",
      "icon": {
        "emoji": "🎤",
        "glyph": "stage"
      },
      "source": "BRIEF.md"
    },
    {
      "id": "press",
      "kind": "outside",
      "name": "the press",
      "line": "outlets that report the storm; quoted in short excerpts with a link",
      "icon": {
        "emoji": "📰",
        "glyph": "press"
      },
      "source": "CLAUDE.md (licences)"
    },
    {
      "id": "readers",
      "kind": "outside",
      "name": "readers",
      "line": "people and agents who read the site; counted only as totals, never named",
      "icon": {
        "emoji": "👀",
        "glyph": "readers"
      },
      "source": "CLAUDE.md (page views)"
    },
    {
      "id": "meteoalarm",
      "kind": "outside",
      "name": "MeteoAlarm",
      "line": "Europe's warnings feed, the first source body with its own section",
      "icon": {
        "emoji": "🚨",
        "glyph": "siren"
      },
      "source": "agents/JOBS.md (sources@)"
    },
    {
      "id": "ci-runner",
      "kind": "machine",
      "name": "CI",
      "line": "the pipeline: builds, gates, deploys, numbers the release and tags it; never commits",
      "icon": {
        "emoji": "🏭",
        "glyph": "factory"
      },
      "source": "CLAUDE.md (branches and versions)"
    },
    {
      "id": "clock",
      "kind": "machine",
      "name": "the clock (the scheduler)",
      "line": "the scheduled wakes: each agent woken hourly at its own minute, with no person present",
      "icon": {
        "emoji": "⏰",
        "glyph": "clock"
      },
      "source": "library/pack/wakes.json"
    },
    {
      "id": "vaults",
      "kind": "machine",
      "name": "the vaults (SG/Send)",
      "line": "where raw captures, model calls and page views go; git keeps a pointer and a sha256",
      "icon": {
        "emoji": "🔐",
        "glyph": "vault"
      },
      "source": "CLAUDE.md"
    }
  ]
}
