**The back office stops being a report and becomes a console.** The design review's second part
arrived as vault `e54hfntq` v0.5.0 and is about `/backoffice/`. Its one-sentence finding is that
the console "is a report about the newsroom, not a console for operating it" — 7,058px of state
across nine pages, with **zero** buttons, inputs, selects or textareas on eight of them. You could
read what happened. You could not do anything. This release implements it. The disposition of all
twelve §5 items, with what blocks the four that are not done, is at
[/newsroom/design.html](/newsroom/design.html).

**THE QUESTION THE CONSOLE EXISTS TO ANSWER.** When the editor opens the back office he is asking
one thing: what is blocked on me? The old answer was a single cell in row 6 of the first table —
`waiting on a human` — rendered in the **base** chip style, so it looked exactly like the five
`running` chips above it. Meanwhile the mail page knew he had an unread message, the board knew an
issue was chipped `waiting on dinis.humano`, and the pipeline knew stage 6 was stopped. Three pages
each held a piece of the answer and the index showed none of it. `pt-queue` is now the first thing
on the console and the only filled rank on it, and `backoffice.fila()` derives its items from all
four sources: the editor's own board lane, cards on another agent's lane whose `bloqueado_por` is
the editor, paper issues the formula assigns to the editor, and mail sitting in their inbox. **13
items**, against the one the console used to show. There is no count attribute anywhere — the rail
badge and the queue's own heading are both `len()` of the same list, so they cannot disagree. A
number typed beside a list it claims to describe is the failure this whole publication exists to
report.

**FOUR RANKS INSTEAD OF 159 LABELS.** The review counted 159 distinct chip labels across the back
office — 158 on the board alone — and ten different ways of saying "a human is blocking this", the
most important of which was the least visible of the set. `assets/console.css` defines one scale:
rank 1 a human must act (filled, and the only filled rank), rank 2 an agent is blocked (outlined
amber), rank 3 running (outlined neutral), rank 4 done (a tick and **no box at all**). Rank 4
losing its box is most of how a page stops having 158 chips on it. The board is at **25 ranks**,
and what was in most of those boxes — a section name, a priority, an effort estimate, an issue
number, an agent id — is metadata now, in mono beside the thing it describes. Two mappings were
backwards and were corrected at the generator rather than in the mapping: the design review's own
`parcial` was rendering filled red, which under this scale means a human must act, and `editor` —
the one disposition that does mean exactly that — was rendering as the quiet neutral outline.

**THE STRIP DOES NOT MOVE, AND NOW IT CANNOT.** The proposal replaces the whole back-office chrome,
which would have moved the top-level menu on crossing over from the paper — the thing the editor
asked in v0.11.0 that it stop doing, and which the first fix for a later layout bug quietly broke
again. Both times it was found by looking at a screenshot. So `site.css` is still loaded in the
back office, first, **for the operator strip and for nothing else**: the strip keeps the paper's
rules and the paper's ground, `console.css` loads second and wins everything below it, and **gate
36** opens both pages in a browser, reads the strip's box in each, and fails on a difference of more
than a pixel. It reported `y 8 → 0` the first time it ran, which is exactly the class of regression
it exists to catch. The strip measures **x=56 y=8 1168×33** on the paper and in the console.

One cost came with that decision and is paid in full rather than hidden: site.css's `.nav` rule
lands on the rail's items, which carry `class="nav"` too, and brought `justify-content: center`
with it — the rail rendered **centred**, every label at a different indent, which is how a
navigation column stops reading as a column. `console.css` answers it with a closed reset of
exactly the properties site.css's `.nav` sets, so a leak is impossible rather than unlikely.

**THE PREAMBLE, SAID ONCE.** The same 70 words opened **9 of 9** pages — roughly 300px of identical
prose above every screen, which trains the operator to scroll past the top of every page, exactly
where the urgent things live. It also broke this project's own rule that content exists once. It is
now on `guidance.html` and nowhere else. That is not the rule being softened: **gate 19** requires
every back-office page to say it is not the publication, because this whole area is in English by
the editor's decision and the condition of that exception is that a reader who lands here can *see*
it. What every page carries instead is one sentence, in the rail rather than above the content, so
it is permanently visible without ever being in the way. The gate is unchanged and still finds its
string.

**STRUCTURE, WHICH THE BACK OFFICE HAD NONE OF.** Zero `<h2>` in the entire back office, and five
of nine pages with no heading at all — section titles were `.sect` divs, which are styling and not
structure, so nothing could outline these pages and `Ctrl-F` was the only way in. All **34** of
them are real `<h2>` now. Every page has exactly one `<h1>` and it **names the place**: the
console's used to be a sentence in the publication's voice — *"What the newsroom has done, what it
is waiting on, and who is allowed to do what"* — which describes a page rather than labelling where
you are standing. What still wears `.sect` is a field label inside a card, "Refuses", "Writes in",
because promoting sixty of those would have made every outline useless a different way. The rail
replaces eleven flat links with three groups, marks the current page with `aria-current="page"`
rather than weight alone, and carries a count on the three items that can be behind — never a zero,
because a count that is always there has stopped being a signal.

**REAL CONTROLS, AND HONESTY ABOUT WHAT THEY DO.** The bridges page's controls were the only real
ones in the back office and were dressed as status chips, in the same box as "secret" and "in
transit"; they are buttons and fields now, primary for keeping a credential and danger for
forgetting one. The queue's action names the file it would write in its `title`, so an operator who
does not trust a button can do the same thing by hand. But a button cannot write a file on a static
site — there is no server to write it — so each one **goes to the place the write happens**: the
document browser for a file, the mail page for a thread, the bridges page for a message to the
newsroom. Nothing claims to have written anything. Making them act is the append lane's job, the
lane is built, and it has no credentials: that is §5.10, and it is the editor's.

**THE MAIL MODEL, SHOWN RATHER THAN EXPLAINED.** The review called the mail protocol the best thing
in the back office and its presentation the weakest: a paragraph and a four-row table for something
that is a path a file walks. It is the path now — `saida/ → expedicao/ → entrada/ → tratado/`, each
folder carrying the rank its state means — and it needs no paragraph. The protocol's own table is
still published, folded into a `<details>`, because the detail is real and is not what the page is
for. The mailbox table gained a state column and the editor's row is marked on the **row**: a state
marked only inside a cell is one you have to hunt for by reading every row.

**THE LEGACY LAYER, AND THE RATCHET ON IT.** Nine generated pages emit the paper's class names, and
rewriting every generator in the release that adopted the console would have been a much larger
diff than the review. So `console.css` maps those names onto the console's own — lossily, and in
the direction the review asks for. It is a bridge with a declared end state, and **gate 39** is what
makes that more than a promise: it counts the generators still emitting the paper's classes and
holds the count to a ratchet, which may fall and may not rise. The first version of that gate
counted *usages* in the built HTML and went red on the very next commit, because that commit added
twelve items to the design-review page. The number had gone up for the right reason and the gate
could not tell. A metric that rises when the newsroom publishes more is not measuring the bridge.

**Two defects in the adopted files, found by the gates.** `pt-queue.css` hardcoded `#fff` and
`#000`, which **gate 33b** rejected — the same finding the review itself had made about the five
shipped components, in the component the review shipped. `pt-queue.js` reported a read failure by
telling the operator to look at "the list below" while its own stylesheet hid that list; a read
failure now un-hides it. And a third, introduced here and caught at 390px: copying `white-space:
nowrap` from the rank scale onto the legacy `.chip`, which is whatever a generator put in it —
including a whole sentence — pushed the console 75px past the viewport.

**Not done, and why.** Four §5 items are open and each says what blocks it on the design page. The
filenames are not renamed to `console.html` / `mail.html` / `board.html`: those addresses are
published in llms.txt and the sitemap, this site's own argument is that a link resolves, and
whether ten redirect pages are worth the consistency is the editor's call. The vault channel's
reply box is not built, because it needs three credentials this repository may not hold. The
Portuguese left in the running prose is **quoted** — an agent's mission, a card's own reading of its
work, the formula's `porque` column — and paraphrasing a record on the way to a screen is how a
console starts to drift from the files it reports on. And the review's ~2,600px page height would
mean deciding which of the roster, the articles, the sections, the deliveries and the run records
the console stops showing, which is an editorial decision and not a design one.
