ART_FINAL_BUILD_2026-08-03.md

pipelines/ART_FINAL_BUILD_2026-08-03.md

ART FINAL BUILD — 2026-08-03

The build that closed the two adversarial critiques of the Ch-2 concept-art prompt packs (v2

GO_WITH_FIXES, v3 NO_GO) against the director's rulings R-A … R-H, generated every

dispatchable plate, and landed the result on the live board tables.

Every number below is computed from the landed artifacts at the moment this file was written.

Re-derive any of them by reading docs/art_boards/*.csv, docs/licence_records/art_boards_plates/

and registries/T0_Scene_Spec_Registry*/.

1. What the rulings were, and what each one became on disk

rulingwhat it orderedwhat landed
R-Athe critic's row-per-image shape IS the ruling; option_index is strictly the candidate axis (1..4); no new board SHAPE225 leaf rows at ROW:<plate_slug>, one per distinct coverage image, serial_index kept as row metadata; every row's candidates are SEEDS of one brief, option_index 1..4; board_shape stays leaf_candidate_sheet
R-Bthe pending-canon rows re-key to LIVE ids; mint the six Ch-2 scene rows as a faithful transcription of docs/spine/CH_02.md:203-2086 rows appended to T0_Scene_Spec_Registry via harness/apply_registry_rows.py (registry now 22 rows); all 10 pending: rows re-keyed to a live primary; zero lane-G/P rows key a pending: token
R-Cthe v2 BLOCKER: a dress_route field + a care clause declaring that staging holds the SAME dress law as the figure rowdress_route on the row and on both boss-pocket staging plates, the STAGING_AT_THE_ATTESTED_FLOOR clause stated verbatim, 6 dress negatives added per plate, and the composer predicate extended to fire on SUBJECT (subject_side_care_predicate on the row)
R-Dthe SECOND reserved sentence — the protagonist's face and body, byte-identical on every protagonist plateone sentence carried on 52 plates, asserted by two-way substring; species + age stage cited to canon, the ear/hair/build picks DECLARED in not_derived as board-pickable look choices
R-Ethe anti-conservatism releaseG048–G054 → lane P; G042/G045/G047 re-argued to lane P; lane R kept for protected settlement architecture and named community rites; the four v2 HELD entity-care rows released under care-by-verification with each entity's own roster care register bound to the row
R-Flabelsdirectional_label on 645 plate rows; generated plates carry generated_local / GENERATED-CLEAN-WEIGHTS; the previz→generated flip condition written into regeneration_trigger
R-Gthe fire-night re-class, the §3.2a amendment, the realm-object owner, the missing BE_0002_S1 row4 landed plates moved to D1-04/mount_inerie_cone_country/ (bytes unchanged, superseded path archived at E:/pipe_archive/art_boards/D1-03/CH02_B02/, licence records updated); §3.2a amended in place with its supersession note; §3.2c's pending: scope corrected to match the armed tooth; BRD_0001 content carries the realm-object supersession note; the-kelimutu-guardian-pair authored at D1-14 with 4 plates
R-Hthe empty-care toothtwo lines beside T-LANE-CARE in harness/read_boards.py + two must-fire fixtures; the self-test now runs 56 fixtures and the live gate stays green

2. The accounting, computed

2a. THE IDENTITY LAW (R-D), in full

Carried BYTE-IDENTICAL on 52 plates

(20 in the v3 pack, on every plate that carries the garment

sentence; 32 in the v2 pack, on every plate whose positive puts

the figure in frame). Asserted by substring in both directions, exactly as the garment law is, so the

two laws are one tooth.

The child reads as a small elven child: the ears subtly pointed, the build slight and light for their age, the hair dark and unkempt, the face and proportions those of a young child.

WHAT CANON FIXES, and is therefore asserted. SPECIES and AGE STAGE are canon and are asserted: 'a small elven child' (docs/spine/CH_02.md:24; :21 'a young elven child'), elven identity per CVD §9.1 and T3_Core_Characters §2 ('The protagonist is an elf ... Species is not a Ch 1 selection'), Childhood age stage per T3_Core_Characters §2 age-stage canon.

WHAT CANON DOES NOT FIX — declared, never asserted as canon.

BOARD-PICKABLE LOOK CHOICES, declared and never asserted as canon: (1) the EAR rendering -- canon fixes the species, it does not fix how the ear reads, so 'subtly pointed' is this board's consistency pick and the costume-elf register is barred in the negatives; (2) HAIR colour and state -- T3_Core_Characters §2 Selection 3 makes hair a Ch-1 PLAYER selection, so 'dark and unkempt' is a board pick held consistent across the plate set and never a canon claim; (3) BUILD -- canon fixes no build, so 'slight and light for their age' is the board's pick. All three are held BYTE-IDENTICAL across every plate that carries the law, in BOTH packs, exactly as the garment sentence is, so the two laws are one tooth.

3. Every critique finding, and its disposition

v2 (GO_WITH_FIXES — 1 BLOCKER, 4 MAJOR, 3 MINOR)

dress_route STAGING_AT_THE_ATTESTED_FLOOR, the row's bar_reason now evaluates and STATES the

subject-side predicate instead of asserting a clean one, and both plates bar ikat pattern, songket,

patterned woven cloth and invented regalia. The predicate is recorded as a row field so it fires on

SUBJECT for the next pack and not only on zone care_tier + entity cultural_depiction_required.

re-labelled cavern-phase-two-approach-pillar-country and "PHASE ONE" is struck from its positive;

the missing P1 staging is AUTHORED at the beat's own site

(inerie-p1-jungle-stalk-staging, D1-04 / mount_inerie_cone_country, CH_02.md:141). The spine-side

tension the critic named — CH_02.md:142's cavern-side counters inside an inerie beat — is RAISED on

the plate's canon_note and is not resolved in a prompt.

removes the need for the representation: the rows are RELEASED and dispatch, so no hold has to

survive the CSV boundary. Each row carries released_by_ruling, binding care_conditions, and the

entity's own T0_Creature_Roster.cultural_care_register verbatim for the image critics to verify

against.

the critique's own four plates — the pair at the falls threshold, the two lanes as one fight space,

the withdraw-and-open beat, and a top-down staging plan — and the-polos-offer raised 3 → 4. The

habitat conflict is NAMED on the row (adult komodo on the dry lowland approach per

flores_island.md:177-182) rather than papered over.

and stamped on every row and every plate, naming the exact file and column each cell was read from.

Where the keying registry has no care column the row SAYS SO and names the real basis; the

boilerplate zone clause no longer appears on rows that key no zone; the cast rows gained

zone:manggarai_village_edge@flores_island on canon_ref so the predicate is recomputable. The

registry gap is boarded: cultural_depiction_required exists on T0_Creature_Roster and nowhere

else, which is why the character-side care route has to be argued instead of read.

value moved to a non-prompt object_size_cm, and the lint extended from body-part measures to ANY

digit-plus-unit token in a positive, run over both packs with zero survivors.

RECOMMENDATION line and its strongest objection.

settlement-derived floor arithmetic; the realm object's ownership and the Mother's Amulet

naming tension are settled on finding #9 and in BRD_0001's own content.

v3 (NO_GO — 2 BLOCKERs, 6 MAJOR, 5 MINOR)

running the LANDED gate against a simulated apply before a single GPU second was spent: 0 non-file

structural fails across all 30 boards.

CANON_REF_PREFIXES contradiction is settled in the doc rather than implicitly in a pack:

CANON_REF_PREFIXES is the LANE-G/P prefix set and the guard §3.2c owed was LANE, not

generation_status. Four beats (CH02_B03/B05/B07/B09) have no §13 scene anchor, so minting one

would invent a canon anchor the spine does not declare — they key their BEAT, which P9 resolves

against the spine and which the amended §3.2a admits.

fact; the 7→9 reasoning moved to care_line.

released rule stated on each row's face: a motif-free technique render is not a dress claim.

canon_ref are emitted at PLATE grain: a zone-keyed class keys on the zone THAT PLATE STANDS IN

(read from its own care_source), every other class keys on the row's primary with the plate's

zone riding canon_ref as a secondary. G037's phantom key is gone by construction.

resolved from the landed per-subject SRC sets first and from a declared subject→source table

otherwise; every id is checked against T0_Source_Material_Registry at build time and the build

FAILS on an unresolvable or empty cell.

(29 required columns + critic_plate_set_hash), approval_state critics_running with

critic_verdicts EMPTY (the four critics have not run; critics_running is the state, and a

verdict token outside GO/GO_WITH_FIXES/NO_GO would fail T-CRITIC-NOGO), one RECS row per row_key,

and the 0 panel_count corrections on the landed leaves.

as opposed to and attested joined both scans and every occurrence in BOTH packs was rewritten

affirmatively, with the barred form moved into the negatives; the cloth sentence is affirmative on

all 18 plates that carry it.

dead-still dust carry the canon-named physical cue, and six aura/VFX negatives were added.

asserted by substring; G062's three variants now render from ONE prefix (asserted: the set of the

three variants' opening clauses has size 1).

flip condition on every row.

4. What this build did NOT close, stated

critic_verdicts, so every board computes marketing_eligible false and nothing is promotable.

The generated plates are DRAFT-stage candidates at the REVIEW render tier; the ruled T2I primary

(HiDream / Qwen-Image, PIPE_ART §1) is not installed on this box, so every plate here is

directional by construction and the label says so.

zone_id and the Zone Catalog carries no Ngada, Nage or Keo central-highland row. Seating central-

Flores material on a Manggarai zone to give it a key is the exact culture-conflation defect the

board's exclusion list exists to catch. They sit on their leaf's coverage block as pending with

the owning registry named; the predecessor is a Zone Catalog row and never a prompt.

GENERATED BASE and its licence record says so verbatim; the paintover pass over acquired,

rights-checked reference is owed, and the delivered plate's rights value is re-derived there.

release is scoped to motif-free technique rendering; it does not close the gap.

tokens the v3 MINOR added are at zero across both packs

(rather than 0, instead of 0, as opposed to 0, attested 0). The ORIGINAL six-token list is at

323 across the 225 prompts

(no 172, not 73, never 21, nothing 53, nobody 0, none 4), and every one of them is in the v2

pack (323 in v2 against

0 in v3) — the v3 lane swept its own pack

on that list and the v2 lane never did. Neither critique raised it, so nothing here rewrites 300+

carefully-authored clauses on a finding nobody made; the count is on the record so the next pass

cannot miss it, and the extended scan is what will catch it.

leggings against v2's soaked, mud-caked wrap-tunic, and the v2 form has six live spellings. Neither

critique could see it (each read one pack). The IDENTITY sentence is unified across both because

the child is one child; the GARMENT is deliberately left alone, because which garment the child

wears in which beat is a design call with canon implications and unifying it inside a build pass

would be the silent change the cardinal rule forbids. Boarded for the next sitting.

dark and unkempt; spot-checking the rendered set shows candidates where it reads grey or ash. That

is a candidate-level variance, which is exactly what a four-seed sheet and a pick surface exist to

resolve — the law is on the row byte-identical and the drift is visible on the board.

floor" is still not a query.

5. GAP HUNT — what the rulings implied that nobody built

The standing law is that every wave carries a gap-hunter step after the floor is built. Four findings,

none of them raised by either critique, all BOARDED rather than absorbed:

1. R-C's subject-side predicate has no tooth. The ruling makes a named living-people figure with a

declared dress-substrate gap route on SUBJECT, and this build lands that as a row field

(subject_side_care_predicate) plus prose. PLATES.csv has no column for it, so nothing can fail

on it. Closing it is a column-add plus a tooth, which is a schema change and not the "small gate

edit" R-H scoped. Board it as the next art-lane tooth.

2. R-F's directional label has no tooth either. T-PREVIZ-LABEL fires only on rights_value

previz_only; a generated plate with an empty directional_label passes. Every plate this build

lands carries one, and nothing keeps that true. Board it beside item 1 — one tooth can cover

both (lane in (G,P) implies a non-empty label).

3. The licence-record schema had a hole the payload amendment opened. RECORD_SCHEMA.json is

additionalProperties: false and carried no render_tier or style_lora_hash, so a record that

faithfully recorded the v1.1.0 ELEVEN-key payload was schema-invalid, while a valid one could not

say at what resolution the plate was rendered. FIXED IN THIS COMMIT — both properties added

with their grounding. (No gate reads the schema today, which is why the hole survived: the

lifecycle gate checks the required roster and never the closed property set.)

4. The two packs disagree about the child's garment (see §4). Boarded for the next sitting.

6. How to re-derive

python harness/read_boards.py                    # the board gate, unpiped
python harness/check_art_pointers.py             # path / hash / sha / canon-id resolution
python harness/check_generation_lifecycle.py     # L1-L10, incl. the licence law
python harness/generation_prompt_hash.py --self-test
python harness/registry_fidelity.py --reference _source/00_Tier_0_Master_Indices \
    --candidate registries --fk-spec docs/fk_spec.json --baseline docs/fidelity_baseline.json
python harness/run_gates.py                      # the full suite

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