**A second delivery arrives, and this time it validates.** ChatGPT's first research delivery failed
the published schema on 45 counts — every one of them a closed list it could not read, because the
brief sent it to an address that does not exist. The address was corrected in v0.17.0. This
delivery, run against the corrected brief, **validated on the first attempt**, re-sent none of the
eight pages the newsroom already holds, and carried 3 of its 4 claims through the byte check.

**The delivery page becomes navigable.** It was already dense — four stat tiles, the assistant's own
notes, a source table with hashes and readability, an item per lead with every claim under it, and
41 queries at the end — and the only way to reach the item you cared about was to scroll. It now
opens with a contents table: one row per item, its kind, **how many of its excerpts were found in
the frozen bytes**, and the editor's decision, each row jumping to the item. Alongside it, chips to
the sources, the queries and the decisions, and a strip linking the sibling deliveries — a part is
one of eight, and a reader landing on one should not have to go back to the index to reach another.
The frozen copies stay listed, hashed and **unlinked**: they are evidence, not pages of this site.

**The assistant found a defect in the brief, and it was mine.** v0.17.0 told it to omit
`delivery.vault` until the vault exists. The schema lists `vault` in `delivery.required` and types
it `["object", "null"]` — omitting it fails. The delivery said so in its own notes, used `null`, and
validated. The brief now says to send `"vault": null`, and says why it changed.

**The freeze date was being read from the wrong place, twice.** `build/entregas.py --date` defaults
to today and re-checks each excerpt against `fontes/congeladas/<date>/entregas/`; point it at the
wrong day and every source reads as unreadable with the build still green. v0.17.0 anchored it to
the register's newest capture. That was wrong in two ways at once: the register is written by
`build/extract.py`, which `build/tudo.py` **skips** unless `--fetch` was asked for, so it can be
days stale; and the value was read at import, before that step could have run anyway. A freshly
frozen delivery was checked against the previous day's directory, found nothing, and reported **0 of
4 sources readable** — green build, silent loss. It now reads the frozen directories themselves, at
the moment the step runs. Ground truth is where the bytes are.

**What is still not readable.** The EUR-Lex PDF of Regulation (EU) 2026/1744 answered **HTTP 202**
with no body, so the claim about Article 113 and the date of 2 December 2027 could not be checked
against anything. And the Série I PDF of the RCM that approves the national AI agenda is still
missing: the assistant spent fifteen of its forty-one queries hunting it and **did not construct the
address by guesswork**, which is the correct behaviour and is worth recording as such.
