PAGE_CURATION_AUDIT_2026-08-06.md

pipelines/PAGE_CURATION_AUDIT_2026-08-06.md

THE PAGE-CURATION AUDIT (2026-08-06) — every Flores board read against the curation law

What this is. The audit Josh chartered when he looked at the review pages and said most of what

is on them is crap. Thirty-five published board pages under docs/art_boards/flores_island/ were

read page-by-page by three fresh-context lanes against the curation law, with every canon id on

every page resolved (or refuted) in its owning registry. **All 35 pages fail the law. 77 of the 128

findings are page-unpublishable.** The defect is systemic and it is in the renderer, not in the

canon: the canon ids overwhelmingly resolve, and the pages publish the factory around them.

Machine worklist: docs/pipeline_review/page_curation_worklist.json

(35 rows, ranked slice-first), emitted by harness/emit_page_curation_worklist.py from these

returns verbatim.

---

1. The law being audited against

docs/spine/DECISIONS_PENDING_JOSH.md § JOSH MAKES IT UNIVERSAL + CONDEMNS THE PAGES

(2026-08-06). Josh, verbatim: *"not just creatures but companions, npcs, architecture, flora, fauna,

regions and environment and abilities and everything. and most of what you have on these pages are

absolute crap and completely messy or hallucinations. like wtf is that rock throw"*.

Two rulings came out of it. The second is the one this audit enforces:

flora, fauna, regions, environments, abilities, VFX — is GREYBOX until its plates pass Josh's

graded floor. Concept-first, Josh-graded floors are the law for every class.

"Rock Throw" is canonical (A_E_003, Earth T1, Ch 3 Manggarai, richly authored in

T0_Ability_Tree_Registry), so the defect is the PAGE, not the canon. The book/review

surfaces publish raw factory state — PENDING placeholders, superseded/rejected plates, REC-defect

diagnostics as body text. **RULED: published pages show CANON + the best current visual + an

HONEST TIER CHIP (concept/greybox/final), and NOTHING ELSE.** Factory diagnostics, supersession

ledgers, and rejected generations never render on a published page. WIP state lives in the repo,

not the book. Pages that cannot yet show an acceptable visual show the canon text plus

"no acceptable visual yet" honestly, rather than a rejected render.

Three standing laws bear on the fix and are cited where they bind: boards publish phone-first

(a board is DONE only with a phone-viewable publish); the honest register (nothing in the

generated-asset classes is shippable and the acceptable count is 0 — a chip that says otherwise is

the same inflation defect as the face judge); and §17.1 care is COLLECTIVE — rejected renders of

living-Manggarai personas and crowd types are the sharpest instance of what must not reach a viewer.

The audit's own honest register. This document records what the pages DO, verified by reading

the emitted HTML and resolving each canon id. It makes no claim that any Flores visual is

acceptable; the graded floor has passed nothing in this region.

---

2. Defect totals

SeverityFindingsPages carrying it
page_unpublishable7735 of 35
major4032
minor1111
Total12835
Defect classFindingsPagesWhat it means
factory_leak3535 of 35The critics-not-run / critic_verdicts empty / marketing_eligible false / PROVISIONAL banner, REC verdict diagnostics, supersession ledgers, lane and care arithmetic, bar_reason prose, and the "what this board does not carry" residue table render as page body
broken_or_missing_asset3232Every image reference is file:///E:/art/boards/… — a machine-local absolute URI, dead on any published or phone surface — and/or the row carries no visual at all
missing_tier_chip2323No concept/greybox/final chip anywhere; the badge row publishes factory fields (fidelity, condition, generation class, "private through selection") and tier appears only inside prose
rejected_render_shown2323<div class="grid superseded"> blocks render vision-review-REJECTED plates at opacity .42, and REGENERATE_ALL rows still display every failing candidate
structure_mess1111Raw ROW:<slug> H2 headings, pipe-packed canon_ref strings, repo paths, file:line citations, and registry column names as viewer-facing copy
canon_mismatch44A printed citation that does not resolve — two phantom BE_*_P* phase ids, one wrong owning registry across 8 rows, and two fabricated placeholder strings published as registry keys

Read the first row again. factory_leak is 35 of 35. Not one page in the region is curated;

every page is the factory console with a title on it. That is a renderer property, which is why the

rebuild plan leads with code and not with pages.

Coverage caveat, stated rather than papered over. The G3 lane's return truncated mid-finding on

BRD_0015; that page's asset-path and structure findings are UNRETURNED. BRD_0015 is therefore

recorded at three findings and is owed a re-audit. Every other page's findings are complete.

The three lanes covered 18 + 11 + 6 = 35 pages.

---

3. Per-group findings

3.1 G1 — regions, sites, architecture, mood (18 pages, 68 findings)

PageDefect classesSeverityDetail
BRD_0001 region establishing boardfactory_leak · broken_asset · missing_chipUNPUBLISHABLEThe region's front door shows no artwork at all: all 24 named plates render the literal word "pending", and the single <img> is a JS-templated src inside a script-built schematic. Body renders a "Plate state / Critics" strip, per-option "Citation caveat" blocks ("A2 CARRIES THE SAME DEFECT CLASS AS A3"), acquisition-backlog notes, rights-class strings, and serial-phase gate arithmetic. No tier chip and not even the sibling boards' "REVIEW render tier" sentence. Canon clean (flores_island resolves; SRC_00193/00230/00483 all present)
BRD_0002 Ch 2 region/site platesrejected_render · factory_leak · broken_asset · missing_chip · structureUNPUBLISHABLETwo superseded grids, 23 superseded captions; the page states outright that superseded plates are "kept on this page, marked". PROVISIONAL banner plus two REC · REGENERATE_ALL verdicts as body. 29/29 images file:///E:/. Raw ROW: headings
BRD_0003 Kelimutu + recharge waterfallrejected_render · factory_leak · broken_asset · missing_chipUNPUBLISHABLEFive superseded grids, 53 superseded captions. 86/86 images file:///E:/, none tier-chipped
BRD_0004 Mount Inerie cone countryrejected_render · factory_leak · broken_asset · missing_chipUNPUBLISHABLESix superseded grids, 66 superseded captions; six REC · REGENERATE_ALL verdicts. 96/96 images file:///E:/
BRD_0005 compang lingko + highland rowscanon_mismatch · rejected_render · factory_leak · broken_asset · missing_chipUNPUBLISHABLEPublishes fabricated placeholder strings as registry keys: canon_id pending_no_ngada_central_highland_zone_in_the_zone_catalog and pending_no_ngada_or_nage_central_highland_zone_row_exists, both declared "in build/zones/flores_island.csv". Neither is a row — the catalog's zone_id column holds 11 ids and a grep for `ngadanage` returns 0. Plus two superseded grids (21 captions), three REGENERATE_ALL writeups, nine PENDING blocks, 9 of 12 rows with no visual
BRD_0016 Kelimutu adjacency / CH02_B06factory_leak · broken_asset · missing_chipUNPUBLISHABLETwo REC verdicts quoting reviewer findings verbatim ("All four are monochrome aerial-survey orthophotos … garbled map lettering"), a "KEY ADJACENCY DECLARED" bookkeeping block with density-formula arithmetic. Declares 40 plates, renders 12
BRD_0017 Liang Bua + Inerierejected_render · factory_leak · broken_asset · missing_chipUNPUBLISHABLEFour superseded grids, 45 captions; six PENDING blocks. 6 of 12 rows imageless; 57 images file:///E:/
BRD_0018 living-dress acquisition rowsbroken_asset · factory_leak · structureUNPUBLISHABLEZero <img> elements. All 12 rows publish factory internals: "GENERATION BARRED — LANE_R_ACQUISITION … care_tier ELEVATED and protected TRUE (build/zones/flores_island.csv), and board.md line one-three-eight rules …" — raw line-citations into the factory's own source file (the numbers are transcribed as words here so this record does not itself mint a line-range citation)
BRD_0019 Manggarai village edgerejected_render · factory_leak · broken_asset · missing_chipUNPUBLISHABLEOne superseded grid (13 captions), nine PENDING blocks; 9 of 12 rows carry no visual
BRD_0020 compang / village edge / Inerierejected_render · factory_leak · broken_asset · missing_chipUNPUBLISHABLEOne superseded grid (12 captions), nine PENDING blocks; 9 of 11 rows carry no visual
BRD_0021 Wae Rebo acquisition rowsbroken_asset · factory_leak · structureUNPUBLISHABLEZero <img> elements. Five PENDING placeholders publish the LANE-R acquisition doctrine and "the row's bar_reason carries the care arithmetic"
BRD_0022 compang acquisition rowsbroken_asset · factory_leak · structureUNPUBLISHABLEZero <img> elements. Publishes the critic_verdicts/marketing_eligible banner and four bar_reason PENDING blocks — the BRD_0045 defect class verbatim
BRD_0029 lingko forest edge + water springrejected_render · factory_leak · broken_asset · missing_chipUNPUBLISHABLEOne superseded grid (9 captions), five PENDING blocks; 5 of 7 rows imageless
BRD_0030 Ch 2 scene specsrejected_render · factory_leak · broken_asset · missing_chipUNPUBLISHABLEWorst supersession density in G1: seven superseded grids, 70 superseded captions, with the page printing the doctrine "kept on disk and kept on this page, marked, because a content-addressed plate is never deleted". 81/81 images file:///E:/. Canon clean (SC_CH02_polos_offer / village_edge / rift_fall_waking all resolve)
BRD_0031 Mama Klara's waterfallfactory_leak · broken_asset · missing_chip · structureUNPUBLISHABLEPer-row provenance prose naming the generating script and its columns (harness/regen_zone_catalog.py …, flores_style_v1 at a per-row strength inside the hashed payload) plus raw line-citations into docs/spine/CH_03.md and flores_island.md (line numbers on the page; not reproduced here as citations)
BRD_0032 forest edge / Todo / water springfactory_leak · broken_asset · missing_chipUNPUBLISHABLEThree REGENERATE_ALL verdicts, two PENDING blocks, care/lane arithmetic as body; 2 of 6 rows imageless
BRD_0041 CH03 beat plates + CHAR_0002factory_leak · canon_mismatch · broken_asset · missing_chipUNPUBLISHABLEAll 8 rows declare canon_id CH03_B01..B12 in T0_Scene_Spec_Registry — that registry holds 27 rows and **none is a CH03_B*** (its scene_id column is SCENE_CH77_*/SC_* endgame keys). The beat ids are real but live in build/spine_rows/CH_03/beats.csv: the page names the wrong owning registry on every row. Plus four raw canon_note line-citations as body
BRD_0042 Ch 3 mood setfactory_leak · broken_asset · missing_chip · structureUNPUBLISHABLE"care_tier standard, DECLARED. T0_Chapter_Index carries no care_tier column" bookkeeping and canon_note line-citations as body; internal taxonomy strings ("mood_set · plate role mood · 4 candidates", "lane Lane G · generated") as viewer-facing copy

3.2 G2 — characters, NPCs, bosses (11 pages, 32 findings)

PageDefect classesSeverityDetail
BRD_0006 CHAR_0001 the protagonistfactory_leak · rejected_render · broken_assetUNPUBLISHABLEThe rendered surface is the factory at 5× the BRD_0045 scale. Two superseded grids render 18 REJECTED plates with their rejection reasons printed beside them — eye-blood on the child, an HL_0095 roundel reveal-leak, polydactyly. 28/28 images file:///E:/. Badges read fidelity / condition / generation class "invented" / "private through selection" — factory fields, not a tier chip. Canon clean (CHAR_0001 resolves)
BRD_0007 NW_0001 / living-dress rowsfactory_leak · rejected_render · broken_assetUNPUBLISHABLE5 of 6 rows are acquisition diagnostics naming the MUST-ACQUIRE title and the substrate-gap line range. The page is an acquisition worklist rendered as a published board
BRD_0008 BE_0002 cavern bossfactory_leak · rejected_render · canon_mismatchUNPUBLISHABLEThree superseded grids; of 48 images roughly 30 are already-rejected plates. Publishes canon_id BE_0002_P2 in T0_Boss_Encounter_Registry/Sheet1no such row: boss_id enumerates BE_0002, BE_0002_S1, BE_0002_S2. The _S sub-boss suffix resolves; the _P phase suffix does not (phases live in the phase_breakdown_object column)
BRD_0009 BE_0002_S1/S2factory_leak · rejected_render · broken_assetUNPUBLISHABLEHeaviest leak in G2: 75 leak-marker hits — 9 REC verdict blocks, 6 supersession ledgers, a bare "promised, not yet produced" placeholder, the coverage ledger tail. Five superseded grids; of 72 images the clear majority are rejected generations
BRD_0023 named villagersfactory_leak · rejected_render · broken_assetUNPUBLISHABLE11 of 12 rows are acquisition-barred placeholders; the tail publishes "12 subjects … 2 carry a generated candidate and 10 are held" with a per-row bar_reason table. The one row with images shows a majority-rejected set. On a phone: twelve headings and no picture
BRD_0024 villagers at workfactory_leak · rejected_render · broken_assetUNPUBLISHABLETwo superseded grids, one of them CHAR_0014 Healer Maria — an elevated-care living-Manggarai persona. Rejected plates of a protected-community figure are precisely the §17.1 collective-care instance that must not reach a viewer. 6 of 10 rows imageless
BRD_0025 crowd typesfactory_leak · rejected_render · broken_assetUNPUBLISHABLE83 leak-marker hits — 12 REC verdict blocks with per-option defect prose, 7 supersession ledgers, coverage ledger tail. Six superseded grids; of 86 images a clear majority are rejected generations of living-Manggarai crowd types. Largest board in G2 and essentially a factory console
BRD_0026 household threshold studyfactory_leak · rejected_render · missing_chipUNPUBLISHABLEBoth rows carry a REC block and a supersession ledger; both render superseded grids (20 images, most of them the rejected set). The lane records the missing-chip defect here as group-wide across all 11 G2 pages
BRD_0033 the Ch-3 castfactory_leak · missing_chip · broken_assetUNPUBLISHABLECleanest page in G2 — no superseded, no PENDING, all 8 rows carry 4 plates — and still factory: it opens "Nothing here is picked and nothing here is promotable", renders 8 REC verdict blocks plus lane_p_underlay / canon_note / care_conditions rule blocks, and publishes a boarded registry defect by finding-id ("boarded as finding F-3"). All four candidates per row are shown with one outlined: a selection surface, not canon + the one best visual
BRD_0034 BE_0003 Kaba Lomesfactory_leak · canon_mismatch · broken_assetUNPUBLISHABLEPublishes BE_0003_P1 and BE_0003_P2 — neither is a row (BE_0003, _S1, _S2, _S3 present). Same phantom-phase-suffix class as BRD_0008; contrast BRD_0035, whose _S ids all resolve cleanly
BRD_0035 BE_0003 sub-bossesfactory_leak · broken_assetUNPUBLISHABLENo superseded, no PENDING, all three canon ids resolve — and the page still carries the PROVISIONAL banner, 3 REC verdict blocks, and lane/care_conditions rule blocks. The proof that curation, not canon, is the defect. Group total: 369 of 369 image references across all 11 G2 pages use file:///E:/

3.3 G3 — creatures, equipment, familiars, inscriptions, sites (6 pages returned, 28 findings)

PageDefect classesSeverityDetail
BRD_0010 CR_0001/0002/0003factory_leak · rejected_render · missing_chip · broken_asset · structureUNPUBLISHABLEThe BRD_0045 defect class at 12× scale: 12 REC diagnostics (5 REGENERATE_ALL) and 5 supersession ledgers. 82 figures render and only 12 are starred; five superseded galleries show rejected plates (including a verdict for rendering "a furry canid mammal … instead of a Komodo dragon"), and non-recommended candidates carrying named defects — red lesions, a detached shoulder flap, a human hand in frame — are shown at full opacity. Grep for greybox\concept\final returns zero. 82/82 images file:///E:/. Canon clean (CR_0001/0002/0003 each resolve to exactly 1 row)
BRD_0011 CR_0010 / CR_0151factory_leak · rejected_render · missing_chip · broken_asset · structureUNPUBLISHABLEFive PENDING blocks including the two-predicate refusal published in full: "CR_0010 carries cultural_depiction_required TRUE and hard_line_anchors HL_0005;HL_0002 in its own registry row". Two superseded galleries; four REGENERATE_ALL rows still render all four failing candidates. 18 lane-rule blocks on the reader surface
BRD_0012 EQ_0001 the Mother's Amuletfactory_leak · rejected_render · missing_chip · broken_asset · structureUNPUBLISHABLEPROVISIONAL banner + "critics running" eyebrow; one supersession ledger; the REGENERATE_ALL row still displays its four failing candidates. Foot coverage section renders a header row with no data. Canon clean (EQ_0001 resolves)
BRD_0013 FAM_01 Shellfactory_leak · rejected_render · missing_chip · broken_asset · structureUNPUBLISHABLE5 REC diagnostics (3 REGENERATE_ALL), 3 supersession ledgers, two "No image yet." blocks. 21/21 images file:///E:/
BRD_0014 INSC_77H_CH02_FRAGMENTfactory_leak · rejected_render · missing_chip · broken_asset · structureUNPUBLISHABLEThree superseded galleries; the REGENERATE_ALL rows render every failing candidate. Canon id resolves, though the registry row itself still carries [POPULATE→T1_Trades_Master] stub cells
BRD_0015 VS_CH02_001 Liang Bua sitefactory_leak · rejected_render · missing_chipUNPUBLISHABLE11 REC diagnostics (5 REGENERATE_ALL) and 5 supersession ledgers — the largest leak surface in G3 after BRD_0010. 75 figures against 11 rows; five superseded galleries; five REGENERATE_ALL rows display their entire failing candidate sets. Lane return truncated here — the asset-path and structure findings are unreturned and a re-audit is owed

---

4. The rebuild plan

Ranked by leverage. (a) lands first and alone, because it re-renders all 35 pages clean in one

change; per-page work that (a) cannot reach is the tail, not the head.

4.1 (a) THE SYSTEMIC FIX — make factory state impossible to render

The renderer is harness/boards/render_board.py::render_leaf (L979–1183). It has exactly one

surface today, and that surface is the factory. The fix is a published surface that is

structurally incapable of emitting the six defect classes, plus a gate that proves it.

A1 — split the surface. Add --surface {factory,published} in main() (L1186) and a surface

parameter on render_leaf. factory keeps today's behaviour for the internal sheet; published

is the law's page. Every diagnostic emitter below is gated on surface == "factory", so the

published branch cannot reach the code that prints them.

A2 — delete the diagnostics from the published branch. Each is a named line today:

false … Nothing here is picked and nothing here is promotable") and its markdown twin at

L1037–1039.

the superseded plates are kept on disk and kept on this page, marked").

registry columns, not reader content.

lane_p_underlay, entity_care_register, care_conditions). canon_note is the only field of

the six that may survive, and only after harness/site/firewall.py::player_register().

selection"; the published page carries one chip (A4) and nothing else.

A3 — the superseded gallery is deleted, not dimmed. L1137–1148 builds <figure> elements from

the superseded list computed at L1091. On the published surface that list is never iterated: a

plate whose generation_status == "regeneration_required" can never reach a <figure>. Second

tooth at the staging layer — see A6.

A4 — one evidence-derived tier chip per visual. The machinery already exists and is already

honest: harness/site/asset_gallery.py L68 `LADDER = ["ITERATION","GREYBOX","CONTENT-COMPLETE",

"POLISH","AAAAA-VERIFIED"], derive_tier()` (L400) which derives the rung **from evidence on disk,

never from an assertion**, and tier_pill() (L725). Factor those three into a new

harness/site/curation.py and have both the gallery and the board renderer import them, so there

is one tier oracle in the repo. The published board emits the chip beside every visual, mapped to

the law's viewer-facing words (concept / greybox / final). AAAAA-VERIFIED stays underivable, which

is the correct honest register: the acceptable count in this region is 0.

A5 — best_visual(), not a candidate grid. New in harness/site/curation.py: given a row's

plates and its REC row, return the single plate that is (i) not regeneration_required, (ii)

judged/picked, and (iii) present on disk — or None. The published page renders that one plate.

BRD_0033's four-up outlined-recommendation layout is a selection surface and does not survive.

A6 — kill file:/// at the source. L1125 and L1141 hardcode

src="file:///{art_root}/{asset_path}". That single expression is 369+ dead images across the

region and is why every board is unpublishable on a phone. The published branch must stage each

plate through harness/site/build_progress_site.py::Images.stage() (class at L672) — copy, downscale to the

phone-first width, apply image_policy() — and emit the returned site-relative /…jpg URL. Two

supporting changes:

any source whose PLATES.csv row carries generation_status == regeneration_required, so a

rejected plate is unstageable at the copy layer and A3 has a second, independent tooth.

file: or drive-letter src raises rather than renders.

A7 — the honest no-visual state replaces the PENDING block. L1149–1152 today prints

<b>No image yet.</b> {bar_reason or "promised, not yet produced"} — that bar_reason string is

where LANE_R acquisition doctrine, care arithmetic, cultural_depiction_required predicates and

board.md line-citations reach the reader. The published branch emits the law's state instead:

the canon text, then a single line reading "No acceptable visual yet." bar_reason never

renders on a published page.

A8 — headings are canon, not slugs. L1047 emits <h2>ROW:{k}</h2>. Published headings come

from content.json's row title, falling back to a humanised slug. Pipe-packed canon_ref

strings, repo paths, file:line citations and registry column names are factory-surface only.

A9 — THE CURATION FIREWALL (the gate that keeps it fixed). harness/site/firewall.py already

has the right shape: compiled rules with a stated why, a CANARY positive control that must trip

every rule, an entity-decoded two-pass sweep_files() (L143 — a real bypass found by mutation

test), and an exit-code-bearing __main__ wired into harness/gates_config.json :: site_firewall.

Add a second rule-set in the same file, with its own canary:

exactly one class="tier-chip". Its positive control is a fixture page with the chip stripped,

which must fail. (Standing law: a rule that cannot fail is not armed, and a zero that was never

controlled is not evidence.)

Wire the sweep into build_progress_site.py::deploy() (L2320) ahead of the publish, so a leaking

board cannot be deployed, and add the emitted docs/art_boards/**/board.html set to the swept

paths. Note that the existing reveal rules apply to these pages the moment they are published —

BRD_0006 currently prints an HL_0095 rejection reason as body text, which the held-object rule

already catches; the curation fix and the reveal firewall land the same page clean.

4.2 (b) The page template, per the law

One block per subject, in this order, and nothing else on the page:

firewall.player_register(). The canon id is resolvable in the repo but is not shouted on the

page; where it is printed it must resolve in its named owning registry (§4.3, C-rows).

Never a candidate grid, never a superseded plate, never a dimmed rejected render.

ladder. Given the honest register, essentially every Flores chip reads concept or greybox today,

and that is the point of the chip.

and nothing more. No reason string, no lane, no acquisition doctrine, no bar_reason.

Page furniture allowed: the board title, the subject count, and a single dated stamp. Not allowed:

banners about critics, coverage-residue tables, promotability language, finding-ids, lane

taxonomy, file:line citations, registry column names, repo paths.

4.3 (c) The per-page worklist, ordered slice-first

Every flores_island board sits inside the Josh gate (Prologue→Ch 13), so the ordering is by what is

reached first — the region front door, then the protagonist, then Ch 2 subjects in encounter order,

then Ch 3 — with pages whose defect is only the renderer ahead of pages that additionally need a

canon repair, a generation, or an acquisition. Full rows, with every finding and its owner, are in

page_curation_worklist.json.

#PageOwners beyond the rendererNote
1BRD_0001GENERATIONThe region's front door renders zero artwork. Re-render clean, then it is a generation queue, not a curation queue
2BRD_0006GENERATIONThe protagonist. Rejected plates with their defect reasons must be gone before anything else ships
3BRD_0030GENERATIONCh 2 scene specs; 7 superseded grids is the worst supersession density in the region
4–11BRD_0002 · 0003 · 0004 · 0016 · 0017 · 0019 · 0020 · 0029GENERATION (imageless rows)Ch 2 region/site plates — pure renderer fixes plus rows that will honestly read "no acceptable visual yet"
12BRD_0005CANON + GENERATIONRepair the two fabricated pending_no_ngada_* canon_ids before re-render — a published page may not name a key that does not resolve. Either mint the highland zone row in build/zones/flores_island.csv or re-key the rows to a live zone
13–18BRD_0010 · 0011 · 0013 · 0012 · 0014 · 0015GENERATIONCreatures, familiar, equipment, inscription, site. BRD_0015 additionally owes a re-audit (truncated return)
19–20BRD_0008 · BRD_0009CANON (0008) + GENERATIONRepair BE_0002_P2 → cite BE_0002 and name the phase from its phase_breakdown_object cell, or mint real phase rows. Do not print a phantom key
21–24BRD_0023 · 0024 · 0025 · 0026GENERATION + §17.1 care reviewThe living-Manggarai persona and crowd-type boards. Rejected renders of protected-community figures are the sharpest instance of the law; these pages get a care read before any visual is promoted
25–28BRD_0007 · 0018 · 0021 · 0022ACQUISITIONFour boards that are acquisition backlogs, not pages. After the renderer fix they honestly read canon + "no acceptable visual yet"; they stay that way until the Lane-R acquisitions land. They must never again publish the acquisition doctrine as body copy
29–32BRD_0031 · 0041 · 0042 · 0032CANON (0041) + GENERATIONBRD_0041 names the wrong owning registry on all 8 rows: re-cite the beats to build/spine_rows/CH_03/beats.csv, or mint the scene rows in T0_Scene_Spec_Registry if the beats are meant to live there
33–35BRD_0033 · BRD_0034 · BRD_0035CANON (0034) + GENERATIONBRD_0034 repeats the BE_0003_P1/_P2 phantom-phase defect; BRD_0035's _S ids are the clean contrast and it needs the renderer fix alone

Sequencing rule. The four canon_mismatch repairs (BRD_0005, 0008, 0034, 0041) block their

pages' re-render — a citation that does not resolve is a hallucination on the page whatever the

renderer does. Everything else re-renders the moment §4.1 lands.

---

5. What this audit did not do

claimed acceptable here.

boards are separately HALTED under the same sitting's exemplar-first ruling), nor the

progress-site pages, nor the asset gallery. The same firewall (§4.1 A9) is the instrument for

both when they are swept.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root