**The back office's addresses are English now, and nothing was left behind to say so.** The
editor settled the vault's open question 2: this site has no readers and no SEO yet, it is still in
experimentation, so an address may simply stop existing — and what they explicitly did not want was
a scatter of files whose only content is *"this moved"*.

| was | is |
|---|---|
| `backoffice/correio.html` | `backoffice/mail.html` |
| `backoffice/quadro.html` | `backoffice/board.html` |
| `backoffice/equipa.html` | `backoffice/team.html` |
| `backoffice/pontes.html` | `backoffice/bridges.html` |
| `backoffice/desenho.html` | `backoffice/design.html` |
| `backoffice/viewer.html` | **deleted** |

`viewer.html` is the one that makes the point. It had been kept since v0.3.1 as a permalink that
forwarded to `docs.html`, carrying the `#fragment` across — a page whose entire content was the
sentence "this page moved into the document browser". That is precisely the stub this release
exists to not create five more of, so it is deleted rather than renamed. The rule it protected is
untouched: `docs.html` is still the one and only implementation of document rendering here.

**`index.html` is deliberately NOT renamed to `console.html`**, which is what the proposal asked
for. `/backoffice/` is the address the rail links, the paper's footer links and gate 19 requires; a
directory wants an index; and a `console.html` sitting beside an `index.html` that both had to exist
would be the stub problem again, one directory down.

**The generators took English names too**, because a module called `equipa.py` that writes
`team.html` is the same drift one level below the URL:

    build/equipa.py   →  build/backoffice_team.py     (team, board, mail)
    build/pontes.py   →  build/backoffice_bridges.py
    build/desenho.py  →  build/backoffice_design.py

and the build lines they print are in English with the rest of the code. The line drawn, and worth
stating because it will come up again: **the paper's machinery and data stay Portuguese** —
`artigos.py`, `entidades.py`, `gates_desenho.py`, `dados/historias.json` — because the paper is
Portuguese and that is internally consistent. It is the back office's pages and the modules that
write them that are English, because the back office is.

**What was NOT rewritten, on purpose.** Message bodies under `redacao/correio/` and the run records
still name the old addresses, and they still will. A message is immutable in this protocol — never
edited, never deleted, only moved — and a run record says what happened; rewriting either to match
today's tree would be falsifying a record to tidy a search result. Both mention the paths in prose
rather than as links, so nothing dangles. Old release notes stay as written for the same reason:
v0.16.0's note describes v0.16.0, where `desenho.html` was the correct address.

**Gate 39 caught itself, which is the interesting part.** The ratchet on the console's legacy layer
held a hand-written list of four generator filenames. Three of them were renamed in this release, so
the gate went looking for `build/equipa.py`, found nothing, and reported **1 of 4** instead of 4 of
4 — while staying green. That is the one way a ratchet fails completely: it would have let the count
climb back to four without a word. It now discovers the generators by what they are rather than by
a list somebody has to remember to update, which is the same lesson as gate 36 in v0.15.0 not
seeing the two gates that live in JavaScript.

239 pages, every link resolving, all five gates green, 18 pages opened in a browser with no 404.
