# The library: dataset (131)

> Kept by incident.librarian@web-summit.dinis. Built by [`tools/library-index.mjs`](../../tools/library-index.mjs) on every push; nobody writes it by hand. JSON data: every value with its source and the time read. Back to [the library](../README.md) · every kind as data: [index.json](../index.json).

*By* is who the file itself says wrote or keeps it (the agents in its commits follow when they differ); *Changed* is the last commit (UTC) when known, else the file's own date; *Made from* is the sources its header names.

| File | What it is | By | Changed | Made from |
|---|---|---|---|---|
| [`data/agents/commits.json`](../../data/agents/commits.json) | The last commits on dev of this repository: who pushed what, when, and for whom (Agent: and For: trailers), and each pair's count. Written by tools/agents-commits.mjs from git log; a snapshot as of … | incident.observability@ | 11-11 12:21 | 2026-11-11T08:18:05Z, [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs) |
| [`data/agents/count.json`](../../data/agents/count.json) | The one count of the team to cite (data/agents/count.json is the same object): agents = the roster in agents/JOBS.md; with_active_key = agents with at least one key marked active in data/keys.json; … | incident.observability@ | 11-11 12:21 | data/agents/index.json (count), written by tools/agents-index.mjs, [`agents/JOBS.md`](../../agents/JOBS.md), [`data/keys.json`](../../data/keys.json) |
| [`data/agents/detail-2026-11-10T21.json`](../../data/agents/detail-2026-11-10T21.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 02:19 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-10T22.json`](../../data/agents/detail-2026-11-10T22.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 02:19 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-10T23.json`](../../data/agents/detail-2026-11-10T23.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 02:19 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T00.json`](../../data/agents/detail-2026-11-11T00.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 02:19 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T01.json`](../../data/agents/detail-2026-11-11T01.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 02:19 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T02.json`](../../data/agents/detail-2026-11-11T02.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 03:09 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T03.json`](../../data/agents/detail-2026-11-11T03.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 04:16 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T04.json`](../../data/agents/detail-2026-11-11T04.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 05:16 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T05.json`](../../data/agents/detail-2026-11-11T05.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 06:20 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T06.json`](../../data/agents/detail-2026-11-11T06.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 07:16 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T07.json`](../../data/agents/detail-2026-11-11T07.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 08:15 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T08.json`](../../data/agents/detail-2026-11-11T08.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 09:15 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T09.json`](../../data/agents/detail-2026-11-11T09.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 10:00 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T10.json`](../../data/agents/detail-2026-11-11T10.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 11:24 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T11.json`](../../data/agents/detail-2026-11-11T11.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 12:20 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/detail-2026-11-11T12.json`](../../data/agents/detail-2026-11-11T12.json) | What each commit of this hour changed: its message beyond the subject, its session (the Claude-Session trailer), and its files with lines added and removed (git numstat; at most 40 files a commit). … | incident.observability@ | 11-11 12:21 | [`tools/agents-commits.mjs`](../../tools/agents-commits.mjs), [`data/agents/commits.json`](../../data/agents/commits.json) |
| [`data/agents/groups.json`](../../data/agents/groups.json) | How the agents page groups the agents: by what they work on. Kept by hand by incident.observability@ (the one thing on that page that is); a role not listed here shows under "Other". | incident.observability@ | 11-11 12:19 |  |
| [`data/agents/index.json`](../../data/agents/index.json) | Every agent of the incident team behind storm-charles.promptugal.news: its job (agents/JOBS.md), what it says it is doing, has done, will do next and asks for (agents/<role>/status.json; asks … | incident.observability@ | 11-11 12:21 | [`agents/JOBS.md`](../../agents/JOBS.md), [`data/keys.json`](../../data/keys.json), [`tools/agents-index.mjs`](../../tools/agents-index.mjs) |
| [`data/agents/obs.json`](../../data/agents/obs.json) | Where app/agents/obs.js sends page views and reads. Public on purpose: an append token can only write to its lane, the key can only encrypt, and the read key reads the vault's published counts … | incident.observability@ | 11-11 09:54 | [`BRIEF.md`](../../BRIEF.md) |
| [`data/agents/sessions.json`](../../data/agents/sessions.json) | Agent provenance for storm-charles.promptugal.news: for every agent that has committed here, its key and its sessions, from what is written down (commit trailers, status files, data/keys.json). "not … | incident.observability@ | 11-11 12:21 | [`data/keys.json`](../../data/keys.json), [`data/ci/index.json`](../../data/ci/index.json) |
| [`data/agents/starts.json`](../../data/agents/starts.json) | Who started each incident agent's session, from which session and on whose word, as the conductor stated it. tools/agents-sessions.mjs uses it for an agent's latest session where the agent's own … | incident.observability@ | 11-11 03:17 | incident.conductor@'s statements to incident.observability@ (session messages, 11 November 2026, 02:20 and 03:16 UTC), recorded here by incident.observability@; Dinis's words are in BRIEF.md, the section named, [`tools/agents-sessions.mjs`](../../tools/agents-sessions.mjs) |
| [`data/agents/views.json`](../../data/agents/views.json) | Page views of storm-charles.promptugal.news, as counts only. A browser sends a sealed event when a page is opened and when it is left (app/agents/obs.js): the country and city from one lookup per tab … | incident.observability@ | 11-11 12:19 | the append lanes of vault zd1cb3kt on https://dev.send.sgraph.ai, [`tools/agents-views.mjs`](../../tools/agents-views.mjs) |
| [`data/ci/commits/2026-11-10.json`](../../data/ci/commits/2026-11-10.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 10:19 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T00.json`](../../data/ci/commits/2026-11-11T00.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 10:19 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T01.json`](../../data/ci/commits/2026-11-11T01.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 02:28 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T0200.json`](../../data/ci/commits/2026-11-11T0200.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 03:17 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T0210.json`](../../data/ci/commits/2026-11-11T0210.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 10:19 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T0220.json`](../../data/ci/commits/2026-11-11T0220.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 10:19 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T0230.json`](../../data/ci/commits/2026-11-11T0230.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 10:19 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T0240.json`](../../data/ci/commits/2026-11-11T0240.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 03:17 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T0250.json`](../../data/ci/commits/2026-11-11T0250.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 03:17 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T03.json`](../../data/ci/commits/2026-11-11T03.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 04:11 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T04.json`](../../data/ci/commits/2026-11-11T04.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 05:16 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T05.json`](../../data/ci/commits/2026-11-11T05.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 06:23 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T06.json`](../../data/ci/commits/2026-11-11T06.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 07:18 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T07.json`](../../data/ci/commits/2026-11-11T07.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 08:18 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T08.json`](../../data/ci/commits/2026-11-11T08.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 09:19 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T09.json`](../../data/ci/commits/2026-11-11T09.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 10:19 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T10.json`](../../data/ci/commits/2026-11-11T10.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 11:25 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T11.json`](../../data/ci/commits/2026-11-11T11.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 12:14 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/commits/2026-11-11T12.json`](../../data/ci/commits/2026-11-11T12.json) | Commits on dev made on this day (UTC, committer time), oldest first, from a full clone. agent: the Agent: trailer (agent_from says where it was read); what: the subject without the agent; to: the … | incident.ci@ | 11-11 12:18 | [github.com](https://github.com/PrompTugal/PrompTugal__News__Storm-Charles/commits/dev), [`agents/policy.json`](../../agents/policy.json) |
| [`data/ci/index.json`](../../data/ci/index.json) | The pipeline and the repository of storm-charles.promptugal.news as data: the list of the day files (runs/, commits/), the totals, the pipeline's measures, who pushes where (agents against top-level … | incident.ci@ | 11-11 12:18 | [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-10.json`](../../data/ci/runs/2026-11-10.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 02:31 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T00.json`](../../data/ci/runs/2026-11-11T00.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 09:19 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T01.json`](../../data/ci/runs/2026-11-11T01.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 02:36 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T02.json`](../../data/ci/runs/2026-11-11T02.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 05:48 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T03.json`](../../data/ci/runs/2026-11-11T03.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 05:48 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T04.json`](../../data/ci/runs/2026-11-11T04.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 05:48 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T05.json`](../../data/ci/runs/2026-11-11T05.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 12:18 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T06.json`](../../data/ci/runs/2026-11-11T06.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 07:18 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T07.json`](../../data/ci/runs/2026-11-11T07.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 12:14 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T08.json`](../../data/ci/runs/2026-11-11T08.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 09:19 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T09.json`](../../data/ci/runs/2026-11-11T09.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 10:19 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T10.json`](../../data/ci/runs/2026-11-11T10.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 11:25 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T11.json`](../../data/ci/runs/2026-11-11T11.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 12:18 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/runs/2026-11-11T12.json`](../../data/ci/runs/2026-11-11T12.json) | Runs of the deploy workflow (.github/workflows/deploy.yml) on this day (UTC, by the time GitHub queued them), oldest first, as GitHub's Actions API gave them. version: v<series>.<run number>, CI's … | incident.ci@ | 11-11 12:18 | [api.github.com](https://api.github.com/repos/PrompTugal/PrompTugal__News__Storm-Charles/actions/runs), [`tools/ci-read.mjs`](../../tools/ci-read.mjs) |
| [`data/ci/tree.json`](../../data/ci/tree.json) | The repository as a map: every top-level folder (and the folders inside it) with its tracked files, bytes, kinds by extension, largest file, and who owns its files under agents/policy.json (a file … | incident.ci@ | 11-11 12:18 | [`agents/policy.json`](../../agents/policy.json), [`CLAUDE.md`](../../CLAUDE.md) |
| [`data/flows/schema.json`](../../data/flows/schema.json) | **A flow of the team's work (flows/v1).**  | incident.motion@ | 11-11 11:48 |  |
| [`data/graph/crossings.json`](../../data/graph/crossings.json) | Where the graph of Storm Charles, Lisbon: Wednesday 11 November 2026 joins the site's other graphs, without copying them: the register of sources (sources/), the weather data supply chain … | incident.graph@ | 11-11 11:51 | [`data/graph/storm.json`](../../data/graph/storm.json), [`data/graph/ontology.json`](../../data/graph/ontology.json), [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/ontology.json`](../../data/graph/ontology.json) | The ontology of an incident on this site: eight kinds of thing and nine relations, small enough to explain on one page (README.md beside this file). tools/graph-build.mjs reads it, builds … | incident.graph@ | 11-11 05:54 | [`data/graph/README.md`](../../data/graph/README.md), [`tools/graph-build.mjs`](../../tools/graph-build.mjs), [`data/graph/storm.json`](../../data/graph/storm.json) |
| [`data/graph/queries.json`](../../data/graph/queries.json) | The worked queries of the query page (/data/query/): each answers a real question about Storm Charles from the tables built by tools/graph-build.mjs. SQL for SQLite. Kept by … | incident.graph@ | 11-11 02:33 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/ref/ipma-areas.json`](../../data/graph/ref/ipma-areas.json) | IPMA's warning areas by code (idAreaAviso), from IPMA's list of districts and islands: the first place listed for each area gives its name and coordinates. Reference data for the graph's Place nodes. … | incident.graph@ | 11-11 00:29 | [api.ipma.pt](https://api.ipma.pt/open-data/distrits-islands.json), [`tools/graph-places.mjs`](../../tools/graph-places.mjs) |
| [`data/graph/storm-decisions.json`](../../data/graph/storm-decisions.json) | Part of the graph of Storm Charles, Lisbon: Wednesday 11 November 2026: every Decision, with the edges that touch it and no Source or Signal (decides, precedes, affects). Same shape as … | incident.graph@ | 11-11 11:51 | [`data/graph/storm.json`](../../data/graph/storm.json), [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/storm-elsewhere.json`](../../data/graph/storm-elsewhere.json) | The rest of the graph of Storm Charles, Lisbon: Wednesday 11 November 2026: IPMA's red and orange warnings in force outside the Lisbon district, and those districts. Same shape as … | incident.graph@ | 11-11 11:51 | [`data/graph/storm.json`](../../data/graph/storm.json), [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/storm-signals.json`](../../data/graph/storm-signals.json) | Part of the graph of Storm Charles, Lisbon: Wednesday 11 November 2026: every Signal (a row of the timeline), with the edges that touch it and no Source (reports). Same shape as … | incident.graph@ | 11-11 11:51 | [`data/graph/storm.json`](../../data/graph/storm.json), [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/storm-sources.json`](../../data/graph/storm-sources.json) | Part of the graph of Storm Charles, Lisbon: Wednesday 11 November 2026: every Source (a URL that was read) and Dataset, with the edges that touch them (cites, produced-by). Same shape as … | incident.graph@ | 11-11 11:51 | [`data/graph/storm.json`](../../data/graph/storm.json), [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/storm.json`](../../data/graph/storm.json) | One graph of Storm Charles, Lisbon: Wednesday 11 November 2026: actors, decisions, warnings, signals, sources, places, datasets and agents, built from the incident's JSON files by … | incident.graph@ | 11-11 11:51 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs), [`data/graph/ontology.json`](../../data/graph/ontology.json) |
| [`data/graph/tables/actors.json`](../../data/graph/tables/actors.json) | Who decides, warns or reports: bodies, operators, the organiser, outlets (outlets are derived from cited hosts). Built by tools/graph-build.mjs from the incident's JSON; every row carries label, … | incident.graph@ | 11-11 11:51 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/tables/coverage-2.json`](../../data/graph/tables/coverage-2.json) | What each outlet published on the storm and when (one row per item; the title as published, with its link; the kind of by-line, never a name). The item's URL is its source. From incident.media@'s … | incident.graph@ | 11-11 11:51 | [`data/graph/tables/coverage.json`](../../data/graph/tables/coverage.json), [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/tables/coverage.json`](../../data/graph/tables/coverage.json) | What each outlet published on the storm and when (one row per item; the title as published, with its link; the kind of by-line, never a name). The item's URL is its source. From incident.media@'s … | incident.graph@ | 11-11 11:51 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/tables/decisions.json`](../../data/graph/tables/decisions.json) | Decisions and issued warnings: who (by), what, when (at, at_epoch in seconds when known to the minute), status, and what each followed. Built by tools/graph-build.mjs from the incident's JSON; every … | incident.graph@ | 11-11 11:51 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/tables/first_on_fact.json`](../../data/graph/tables/first_on_fact.json) | Who was first on each keyed fact: for each fact (IPMA's red wind, the alert, Web Summit's decision ...), each outlet's first item on it and the minutes after the primary source. From … | incident.graph@ | 11-11 11:51 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/tables/signals.json`](../../data/graph/tables/signals.json) | The timeline as rows: one per signal, with who published it (publisher) where the source has a URL. Built by tools/graph-build.mjs from the incident's JSON; every row carries label, source, read and … | incident.graph@ | 11-11 11:51 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/tables/sources.json`](../../data/graph/tables/sources.json) | Every URL read: the researcher's list, every other URL an item cites and the pages covering the storm (coverage: liveblog, explainer, ...; from research/weather-sites), with its publisher, how often … | incident.graph@ | 11-11 11:51 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/tables/timeline.json`](../../data/graph/tables/timeline.json) | The lead-time line: every warning and decision with a time known to the minute, in order: hours since the previous one, since the first, before the first red warning starts in Lisbon … | incident.graph@ | 11-11 11:51 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/graph/tables/warnings.json`](../../data/graph/tables/warnings.json) | Warnings: issued (when made or first read), in_force (type, level, area, start, end: IPMA), cap (IPMA's own CAP messages for Lisbon: at is when IPMA sent it; an Update names the message it replaces) … | incident.graph@ | 11-11 11:51 | [`tools/graph-build.mjs`](../../tools/graph-build.mjs) |
| [`data/keys.json`](../../data/keys.json) | Public keys of the agents that write this repository. Public halves only: no private key, vault key or token is ever listed here. Each entry was added by the agent that made it, in its own session; … | *not said* |  |  |
| [`data/lanes.json`](../../data/lanes.json) | The lanes to incident.conductor@web-summit.dinis (incident.identity@web-summit.dinis; the design is SECURITY.md). Public on purpose: an append token can only write to its lane, and the recipient's … | incident.identity@ | 11-11 09:39 | [`SECURITY.md`](../../SECURITY.md) |
| [`data/vaults.json`](../../data/vaults.json) | The vaults this site reads or keeps evidence in (SG/Send, encrypted before upload; the server holds ciphertext only). Only READ keys of vaults meant to be read are published here: a read key is … | incident.archivist@ | 11-11 10:27 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/addresses.json`](../../incidents/2026-11-10-storm-charles/data/decisions/addresses.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/addresses.json)) | For each timeline row in signals.json (the new site, made_at 2026-11-11T01:53Z) that had no openable address: the exact public address(es) of its primary source, the time read, and what kind of … | incident.researcher@ (commits: incident.conductor@) | 11-11 02:18 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/airport.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/airport.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/airport.json)) | Every decision in graph.json about airport: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said* | 11-11 10:34 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/bridges.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/bridges.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/bridges.json)) | Every decision in graph.json about bridges: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said* | 11-11 11:35 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/carris.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/carris.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/carris.json)) | Carris (Lisbon buses, trams, funiculars). | *not said* | 11-11 11:56 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/courts.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/courts.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/courts.json)) | Every decision in graph.json about courts: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said in the file*; commits: incident.conductor@ | 11-11 09:32 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/cp.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/cp.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/cp.json)) | Every decision in graph.json about cp: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said* | 11-11 09:30 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/ferries.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/ferries.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/ferries.json)) | Every decision we hold about ferries (generated by incident.researcher@web-summit.dinis; graph.json is the source of truth where an edge exists). | *not said in the file*; commits: incident.conductor@ | 11-11 09:32 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/fertagus.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/fertagus.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/fertagus.json)) | Fertagus (trains across the 25 de Abril bridge). | *not said* | 11-11 11:56 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/flixbus.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/flixbus.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/flixbus.json)) | Every decision we hold about flixbus (generated by incident.researcher@web-summit.dinis; graph.json is the source of truth where an edge exists). | *not said in the file*; commits: incident.conductor@ | 11-11 09:32 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/hospitals.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/hospitals.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/hospitals.json)) | Every decision we hold about hospitals (generated by incident.researcher@web-summit.dinis; graph.json is the source of truth where an edge exists). | *not said in the file*; commits: incident.conductor@ | 11-11 02:42 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/madeira.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/madeira.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/madeira.json)) | Every decision and official count we hold about Madeira (generated from graph.json by incident.researcher@web-summit.dinis). | *not said in the file*; commits: incident.conductor@ | 11-11 10:28 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/metro.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/metro.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/metro.json)) | Every decision in graph.json about metro: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said* | 11-11 09:30 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/museums.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/museums.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/museums.json)) | Every decision in graph.json about museums: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said in the file*; commits: incident.conductor@ | 11-11 09:32 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/parliament.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/parliament.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/parliament.json)) | Every decision we hold about parliament (generated by incident.researcher@web-summit.dinis; graph.json is the source of truth where an edge exists). | *not said in the file*; commits: incident.conductor@ | 11-11 02:42 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/port.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/port.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/port.json)) | Every decision in graph.json about port: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said in the file*; commits: incident.conductor@ | 11-11 09:32 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/rede-expressos.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/rede-expressos.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/rede-expressos.json)) | Every decision in graph.json about rede-expressos: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said* | 11-11 09:30 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/retail.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/retail.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/retail.json)) | Every decision we hold about retail (generated by incident.researcher@web-summit.dinis; graph.json is the source of truth where an edge exists). | *not said in the file*; commits: incident.conductor@ | 11-11 02:42 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/schools.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/schools.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/schools.json)) | Every decision in graph.json about schools: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said in the file*; commits: incident.conductor@ | 11-11 09:32 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/tap.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/tap.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/tap.json)) | Every decision in graph.json about tap: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said in the file*; commits: incident.conductor@ | 11-11 09:32 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/entities/tunnels.json`](../../incidents/2026-11-10-storm-charles/data/decisions/entities/tunnels.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/entities/tunnels.json)) | Every decision in graph.json about tunnels: who decided, when published, when it takes effect, the exact address, the time read, fact or evidence. Generated from graph.json by … | *not said* | 11-11 11:35 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/graph.json`](../../incidents/2026-11-10-storm-charles/data/decisions/graph.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/graph.json)) | The decision graph of the storm (WS-214), kept by incident.researcher@web-summit.dinis. Nodes are decision-makers; edges are decisions, each with who made it (by), whom it touches (to) and what it … | incident.researcher@ | 11-11 11:56 |  |
| [`incidents/2026-11-10-storm-charles/data/decisions/sources.json`](../../incidents/2026-11-10-storm-charles/data/decisions/sources.json) ([api](../../api/v1/2026-11-10-storm-charles/decisions/sources.json)) | Every source incident.researcher@ uses for WS-214: what it holds, how often it changes, whether a machine can read it, its status when last tried. parser_ask = the part we ask incident.dev@ to parse. | *not said in the file*; commits: incident.conductor@ | 11-11 07:37 |  |
| [`incidents/2026-11-10-storm-charles/data/exposure/ensemble.json`](../../incidents/2026-11-10-storm-charles/data/exposure/ensemble.json) ([api](../../api/v1/2026-11-10-storm-charles/exposure/ensemble.json)) | Where the storm's centre crosses 9.5 W (off Lisbon) in each of the 51 ECMWF ensemble forecasts, grouped north / near / south of Lisbon, and the spread of model gusts at Lisbon hour by hour. SHARES OF … | incident.datascience@ | 11-11 11:57 | [ensemble-api.open-meteo.com](https://ensemble-api.open-meteo.com/v1/ensemble?latitude=35.5,35.75,36,36.25,36.5,36.75,37,37.25,37.5,37.75,38,38.25,38.5,38.75,39,39.25,39.5,39.75,40,40.25,40.5,40.75,41,41.25,41.5,38.72&longitude=-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.5,-9.14&hourly=pressure_msl,wind_gusts_10m&models=ecmwf_ifs025&timezone=GMT&wind_speed_unit=kmh&start_date=2026-11-11&end_date=2026-11-12) |
| [`incidents/2026-11-10-storm-charles/data/exposure/hospitals.json`](../../incidents/2026-11-10-storm-charles/data/exposure/hospitals.json) ([api](../../api/v1/2026-11-10-storm-charles/exposure/hospitals.json)) | Hospitals mapped in OpenStreetMap in Portugal (amenity=hospital or healthcare=hospital), each placed in its municipality and IPMA warning area. A map of buildings, not a statement that any is open, … | incident.datascience@ | 11-11 12:05 | [production-raw-data-api.s3.amazonaws.com](https://production-raw-data-api.s3.amazonaws.com/ISO3/PRT/health_facilities/hotosm_prt_health_facilities_osm_geojson.zip) |
| [`incidents/2026-11-10-storm-charles/data/exposure/lisbon-grid.json`](../../incidents/2026-11-10-storm-charles/data/exposure/lisbon-grid.json) ([api](../../api/v1/2026-11-10-storm-charles/exposure/lisbon-grid.json)) | Lisbon in 49 squares of 2 km (7 x 7, rows A to G from north, columns 1 to 7 from west, centred on 38.745 N, 9.16 W): residents, land 0.5 to 5 m above sea level, residents on it, and hospitals mapped … | incident.datascience@ | 11-11 12:05 | [data.humdata.org](https://data.humdata.org/dataset/kontur-population-portugal) |
| [`incidents/2026-11-10-storm-charles/data/exposure/lisbon-municipalities.json`](../../incidents/2026-11-10-storm-charles/data/exposure/lisbon-municipalities.json) ([api](../../api/v1/2026-11-10-storm-charles/exposure/lisbon-municipalities.json)) | The 18 municipalities of the Lisbon metropolitan area: residents, aged 65+ and 0-14 (Census 2021), land 0.5 to 5 m above sea level (Copernicus DEM) and an estimate of residents living on it, and OSM … | incident.datascience@ | 11-11 12:05 | [ine.pt](https://www.ine.pt/ine/json_indicador/pindica.jsp?op=2&varcd=0011609&lang=PT) |
| [`incidents/2026-11-10-storm-charles/data/exposure/people-by-hour.json`](../../incidents/2026-11-10-storm-charles/data/exposure/people-by-hour.json) ([api](../../api/v1/2026-11-10-storm-charles/exposure/people-by-hour.json)) | Residents (INE Census 2021) living in each IPMA warning area, by hour, under the highest level in force there (any hazard). Where people sleep, not where they are at a given hour, and never a count … | incident.datascience@ | 11-11 11:51 | [api.ipma.pt](https://api.ipma.pt/open-data/forecast/warnings/warnings_www.json) |
| [`incidents/2026-11-10-storm-charles/data/exposure/population.json`](../../incidents/2026-11-10-storm-charles/data/exposure/population.json) ([api](../../api/v1/2026-11-10-storm-charles/exposure/population.json)) | Residents counted by the 2021 Census, by IPMA warning area (district; Madeira by zone) and by municipality: total, aged 0-14 and aged 65+. Where people sleep, not where they are at a given hour. | incident.datascience@ | 11-11 11:49 | [ine.pt](https://www.ine.pt/ine/json_indicador/pindica.jsp?op=2&varcd=0011609&lang=PT) |
| [`incidents/2026-11-10-storm-charles/data/exposure/tides.json`](../../incidents/2026-11-10-storm-charles/data/exposure/tides.json) ([api](../../api/v1/2026-11-10-storm-charles/exposure/tides.json)) | High and low water, sea level and wave height at Cascais, the Tagus and Funchal, yesterday to tomorrow (UTC). A model, not Instituto Hidrográfico's official tide table and not a warning: IPMA issues … | incident.datascience@ | 11-11 11:52 | [marine-api.open-meteo.com](https://marine-api.open-meteo.com/v1/marine?latitude=38.68&longitude=-9.42&hourly=sea_level_height_msl,wave_height,wave_period&timezone=GMT&start_date=2026-11-10&end_date=2026-11-12) |
| [`incidents/2026-11-10-storm-charles/data/signals.json`](../../incidents/2026-11-10-storm-charles/data/signals.json) ([api](../../api/v1/2026-11-10-storm-charles/signals.json)) | The incident timeline as data, made from timeline.md by tools/timeline.mjs (never edit by hand; edit timeline.md). See README.md. | *not said* | 11-11 12:26 | [`incidents/2026-11-10-storm-charles/timeline.md`](../../incidents/2026-11-10-storm-charles/timeline.md), [`tools/timeline.mjs`](../../tools/timeline.mjs), [`incidents/2026-11-10-storm-charles/data/README.md`](../../incidents/2026-11-10-storm-charles/data/README.md) |
| [`incidents/2026-11-10-storm-charles/data/transport/buses.json`](../../incidents/2026-11-10-storm-charles/data/transport/buses.json) ([api](../../api/v1/2026-11-10-storm-charles/transport/buses.json)) | Buses and trams: each operator's own site, feed or open API first; the press only where the operator publishes nothing readable (those are the researcher's decisions, linked). Short excerpts with the … | incident.transport@ | 11-11 12:17 |  |
| [`incidents/2026-11-10-storm-charles/data/transport/ferries.json`](../../incidents/2026-11-10-storm-charles/data/transport/ferries.json) ([api](../../api/v1/2026-11-10-storm-charles/transport/ferries.json)) | Ferries: each operator's own site, feed or open API first; the press only where the operator publishes nothing readable (those are the researcher's decisions, linked). Short excerpts with the link. | incident.transport@ | 11-11 12:17 |  |
| [`incidents/2026-11-10-storm-charles/data/transport/flights.json`](../../incidents/2026-11-10-storm-charles/data/transport/flights.json) ([api](../../api/v1/2026-11-10-storm-charles/transport/flights.json)) | Airline flights at Lisbon, Porto, Faro and Funchal as OpenSky Network's public data shows them: counts only, never an aircraft. Facts are what the source shows; the caveat is our reading. … | incident.transport@ | 11-11 12:17 |  |
| [`incidents/2026-11-10-storm-charles/data/transport/metro-schedule.json`](../../incidents/2026-11-10-storm-charles/data/transport/metro-schedule.json) ([api](../../api/v1/2026-11-10-storm-charles/transport/metro-schedule.json)) | Our summary of the operator's published timetable; the operator's site is not read or republished (its terms). | incident.transport@ | 11-11 12:25 |  |
| [`incidents/2026-11-10-storm-charles/data/transport/metro.json`](../../incidents/2026-11-10-storm-charles/data/transport/metro.json) ([api](../../api/v1/2026-11-10-storm-charles/transport/metro.json)) | Metro and light rail: each operator's own site, feed or open API first; the press only where the operator publishes nothing readable (those are the researcher's decisions, linked). Short excerpts … | incident.transport@ | 11-11 12:17 |  |
| [`incidents/2026-11-10-storm-charles/data/transport/services.json`](../../incidents/2026-11-10-storm-charles/data/transport/services.json) ([api](../../api/v1/2026-11-10-storm-charles/transport/services.json)) | Each operator's current state from its own notices where an open, machine-readable source exists, with short excerpts and the link. Operators without an open source (Metro, CP, Fertagus, Carris, the … | incident.transport@ | 11-11 12:17 |  |
| [`incidents/2026-11-10-storm-charles/data/transport/trains.json`](../../incidents/2026-11-10-storm-charles/data/transport/trains.json) ([api](../../api/v1/2026-11-10-storm-charles/transport/trains.json)) | Trains: each operator's own site, feed or open API first; the press only where the operator publishes nothing readable (those are the researcher's decisions, linked). Short excerpts with the link. | incident.transport@ | 11-11 12:17 |  |
| [`incidents/2026-11-10-storm-charles/data/watch/websummit.json`](../../incidents/2026-11-10-storm-charles/data/watch/websummit.json) ([api](../../api/v1/2026-11-10-storm-charles/watch/websummit.json)) | Web Summit's own channels, watched for its decisions (Wednesday 11 November: off, 19:38; now Day 3 and the open items: talks, PITCH, side events, tickets): the blog's listings (polled every 2 … | *not said in the file*; commits: incident.conductor@ | 11-10 21:37 | [`tools/websummit.mjs`](../../tools/websummit.mjs), [`incidents/2026-11-10-storm-charles/data/README.md`](../../incidents/2026-11-10-storm-charles/data/README.md) |
| [`incidents/2026-11-10-storm-charles/data/weather/airport-madeira.json`](../../incidents/2026-11-10-storm-charles/data/weather/airport-madeira.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/airport-madeira.json)) | IPMA's aeronautical forecast (TAF) and observations (METAR) for Madeira airport (LPMA, Santa Cruz, on the south-east coast), read through the US NOAA Aviation Weather Center's public API. Knots, with … | *not said* | 11-11 12:23 |  |
| [`incidents/2026-11-10-storm-charles/data/weather/airport.json`](../../incidents/2026-11-10-storm-charles/data/weather/airport.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/airport.json)) | IPMA's aeronautical forecast (TAF) and observations (METAR) for Lisbon airport (LPPT), 8 km north of the centre, read through the US NOAA Aviation Weather Center's public API. Knots, with km/h (1 kt … | *not said* | 11-11 12:23 |  |
| [`incidents/2026-11-10-storm-charles/data/weather/analysis.json`](../../incidents/2026-11-10-storm-charles/data/weather/analysis.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/analysis.json)) | Reasoning from the facts in this folder; not IPMA's words. Times are UTC = Lisbon time (WET). See analysis.md for the reasons. | incident.meteorologist@ | 11-10 19:05 | [`incidents/2026-11-10-storm-charles/data/weather/analysis.md`](../../incidents/2026-11-10-storm-charles/data/weather/analysis.md) |
| [`incidents/2026-11-10-storm-charles/data/weather/cap.json`](../../incidents/2026-11-10-storm-charles/data/weather/cap.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/cap.json)) | IPMA's warnings for the Lisbon district as CAP messages (Common Alerting Protocol), read through MeteoAlarm's public feed (https://www.meteoalarm.org). A dated record, not a live feed: read … | *not said* | 11-11 12:23 | [feeds.meteoalarm.org](https://feeds.meteoalarm.org/api/v1/warnings/feeds-portugal) |
| [`incidents/2026-11-10-storm-charles/data/weather/changes.json`](../../incidents/2026-11-10-storm-charles/data/weather/changes.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/changes.json)) | thursday (first): Lisbon warnings touching Thursday 12 Nov and the forecasts for its morning. gusts_above_warned: every LPPT METAR gust from Wed 05:00 above the gust warned for that hour (the IPMA … | *not said* |  | [`incidents/2026-11-10-storm-charles/data/weather/tools/refresh.py`](../../incidents/2026-11-10-storm-charles/data/weather/tools/refresh.py) |
| [`incidents/2026-11-10-storm-charles/data/weather/communiques.json`](../../incidents/2026-11-10-storm-charles/data/weather/communiques.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/communiques.json)) | IPMA's communiqués (special weather information) from its RSS feed, kept across reads; earthquake notices left out. | *not said* | 11-11 12:23 | [ipma.pt](https://www.ipma.pt/resources.www/rss/comunicados.xml) |
| [`incidents/2026-11-10-storm-charles/data/weather/forecast.json`](../../incidents/2026-11-10-storm-charles/data/weather/forecast.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/forecast.json)) | IPMA's own forecast for Lisbon (globalIdLocal 1110600): the 5-day daily forecast and the hourly model forecast (mean wind, no gusts). IPMA's wind classes: 1 weak, 2 moderate, 3 strong, 4 very strong. | *not said* |  |  |
| [`incidents/2026-11-10-storm-charles/data/weather/gusts-vs-forecast.json`](../../incidents/2026-11-10-storm-charles/data/weather/gusts-vs-forecast.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/gusts-vs-forecast.json)) | The latest observed wind in Lisbon against what was forecast for that hour. Facts with sources; no analysis here (see analysis.md). | *not said* | 11-11 12:23 | [`incidents/2026-11-10-storm-charles/data/weather/analysis.md`](../../incidents/2026-11-10-storm-charles/data/weather/analysis.md) |
| [`incidents/2026-11-10-storm-charles/data/weather/lisbon-rain.json`](../../incidents/2026-11-10-storm-charles/data/weather/lisbon-rain.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/lisbon-rain.json)) | IPMA's hourly station observations at Lisbon's stations (the same eight as stations.json), in madeira.json's shape: rain in mm per hour and mean wind, kept across reads, sorted by each station's … | *not said* | 11-11 12:23 | [api.ipma.pt](https://api.ipma.pt/open-data/observation/meteorology/stations/observations.json), [api.ipma.pt](https://api.ipma.pt/open-data/observation/meteorology/stations/stations.json), [`incidents/2026-11-10-storm-charles/data/weather/stations.json`](../../incidents/2026-11-10-storm-charles/data/weather/stations.json), [`incidents/2026-11-10-storm-charles/data/weather/madeira.json`](../../incidents/2026-11-10-storm-charles/data/weather/madeira.json) |
| [`incidents/2026-11-10-storm-charles/data/weather/madeira.json`](../../incidents/2026-11-10-storm-charles/data/weather/madeira.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/madeira.json)) | IPMA's hourly station observations in Madeira (rain in mm per hour, mean wind), kept across reads (the feed holds 24 hours), sorted by each station's largest rain over six consecutive hourly values. … | *not said* | 11-11 12:23 | [api.ipma.pt](https://api.ipma.pt/open-data/observation/meteorology/stations/observations.json), [api.ipma.pt](https://api.ipma.pt/open-data/observation/meteorology/stations/stations.json) |
| [`incidents/2026-11-10-storm-charles/data/weather/stations.json`](../../incidents/2026-11-10-storm-charles/data/weather/stations.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/stations.json)) | IPMA's hourly station observations in and next to Lisbon, kept across reads (the feed holds 24 hours). Mean wind only: this feed has NO gusts; gusts are in the airport's METAR (airport.json). | *not said* | 11-11 12:23 | [api.ipma.pt](https://api.ipma.pt/open-data/observation/meteorology/stations/observations.json), [api.ipma.pt](https://api.ipma.pt/open-data/observation/meteorology/stations/stations.json), [`incidents/2026-11-10-storm-charles/data/weather/airport.json`](../../incidents/2026-11-10-storm-charles/data/weather/airport.json) |
| [`incidents/2026-11-10-storm-charles/data/weather/warnings.json`](../../incidents/2026-11-10-storm-charles/data/weather/warnings.json) ([api](../../api/v1/2026-11-10-storm-charles/weather/warnings.json)) | IPMA's weather warnings for the Lisbon district (idAreaAviso LSB), non-green only; red and orange warnings elsewhere; and how Lisbon's warnings changed over time. Times are local = UTC (WET). IPMA's … | *not said* | 11-11 12:23 | [api.ipma.pt](https://api.ipma.pt/open-data/forecast/warnings/warnings_www.json), [`incidents/2026-11-10-storm-charles/data/weather/cap.json`](../../incidents/2026-11-10-storm-charles/data/weather/cap.json) |
