**The first five articles are published, and the front page stops being about itself.** Until now
the three blocks a reader met first were the readability of the national register, an event that
names its stages two ways, and a speaker list with one capture — three stories about **this
newsroom's own plumbing**, honest and the only things the site could claim before it had published
anything, and the wrong thing to put in front of somebody who came to read about AI in Portugal.
Those three are gone, along with an empty container for the national AI agenda's legal instrument.
In their place: the AI Act designation that is nowhere on the government's own AI page, the
Gigafactories resolution and its €200M, €25M for AI in public administration, the Data Centres Plan
read whole from the gazette's PDF, and the agenda with 32 initiatives whose founding act still will
not open.

**The rule held at every step.** The editor of record decided ChatGPT's first delivery item by item:
five approved, none rejected, three left undecided on purpose. A claim reached prose only when the
excerpt was re-found in the frozen bytes AND the editor approved it; the claims that were not, were
not written, and each article says which and why. The three undecided items all rest on a page that
returns 2 346 bytes and **22 characters** of visible text — rejecting them would have said the
newsroom does not want them, and it wants them more than anything else in the delivery. Issue 006
unblocks all three with one PDF.

**The research brief pointed at a schema nobody could fetch.** It published the contract at
`newsroom.sgit.ai/briefs/pt-newsroom-pack/…` when this site is `pt.newsroom.sgit.ai` serving
`briefs/pack/` — wrong host and wrong directory, in both briefs and in the schema's own `$id`.
ChatGPT said so in its own delivery notes and then failed validation on twelve counts, every one a
closed list it could not read. The address is fixed, the closed lists are spelled out in the brief's
prose as well as in the schema, and the brief now lists the eight pages already frozen so a second
delivery does not re-fetch them.

**Counting which page lost the most claims produced the most useful rule.** Nine of the ten unusable
claims rested on one `/dr/detalhe/` address, which renders by script. The same delivery's
`files.diariodarepublica.pt` PDF froze 228 725 bytes carrying 30 808 characters, and both claims on
it confirmed. Follow the record page to the *Série I* PDF and cite the PDF.

**`build/entregas.py` was never in the pipeline, and putting it there found something worse.** The
editor's decisions live in `redacao/revisoes/` and nothing in `build/tudo.py` read them: an approval
written by a human reached no page, and gate 13 went on believing nothing had been approved. It runs
now, anchored to the register's newest capture rather than to the clock. And that is how this turned
up: **the same frozen PDF, with the same SHA-256 re-verified by gate 1, read 30 808 characters on 14
September and 0 on 15 September.** The bytes had not changed; the machine had. `build/pdf.py` does
AES by importing pycryptodome, the package was absent, `_aes_cbc` returned `None`, `Cifra.ok` stayed
`True`, and the reader concluded the diploma was *«provavelmente um PDF digitalizado»* — a false
statement about somebody else's document, made with the build green, while both claims resting on it
turned silently to `fonte_inacessivel`. The AES-256 path already names the missing package; the
AESV2 path says nothing. `requirements.txt` now names both dependencies with the reason for each and
CI installs them before the gates; the fix in `pdf.py` is behind the deny list and is the editor's,
as issue 005. **Evidence that depends on which machine reads it is not evidence.**

**Two duplicate renderers died.** Publishing exercised a path that predated the dated folders: every
published article was rendered a second time at `artigos/<slug>.html` from `conteudo/<slug>.md`, and
the front-page lead linked to that dead address. Nothing had caught it because nothing had ever been
published. Content exists once.

**The archive is the complete list; the front page is a choice.** `/artigos/` groups everything
published by the **day it was published** — a different date from the one in the path, which is the
day the bytes were frozen, and both are shown. The chips under the lead headline now describe the
lead's own sources, named by publisher and byte count rather than by the id the register carries.

*This release was built as v0.10.1 to v0.10.3 while `dev` moved on — to v0.15.0, then to v0.16.0 — in another session.
The work was merged forward and renumbered once, at the end — which is what
[`docs/guidance/concurrent-sessions.md`](../docs/guidance/concurrent-sessions.md) says to do, and
the three conflicting source files were `build/build.py`, `admin/versions.json` and `version.txt`;
every other conflict was a generated file and was resolved by rebuilding.*
