pipelines/ART_FINAL_BUILD_2026-08-03.md
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*/.
| ruling | what it ordered | what landed |
|---|---|---|
| R-A | the critic's row-per-image shape IS the ruling; option_index is strictly the candidate axis (1..4); no new board SHAPE | 225 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-B | the 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-208 | 6 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-C | the v2 BLOCKER: a dress_route field + a care clause declaring that staging holds the SAME dress law as the figure row | dress_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-D | the SECOND reserved sentence — the protagonist's face and body, byte-identical on every protagonist plate | one 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-E | the anti-conservatism release | G048–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-F | labels | directional_label on 645 plate rows; generated plates carry generated_local / GENERATED-CLEAN-WEIGHTS; the previz→generated flip condition written into regeneration_trigger |
| R-G | the fire-night re-class, the §3.2a amendment, the realm-object owner, the missing BE_0002_S1 row | 4 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-H | the empty-care tooth | two 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 |
docs/art_boards/PLATES.csv 736 — lane G 548, lane P 94, lane R 94docs/licence_records/art_boards_plates/ — one per generated plate, written AT DISPATCHpanel_count correction (computed against git HEAD)recommended_candidate PROVISIONALCarried 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.
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.
cavern-phase-one-stalk-staging is 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-kelimutu-guardian-pair (BE_0002_S1) authored withthe 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.
care_source is computedand 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.
NO_GO — 2 BLOCKERs, 6 MAJOR, 5 MINOR)option_index used as a coverage index — CLOSED by R-A (see §1). Verified byrunning 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_id / canon_registry / 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.
citation_refs unfillable — CLOSED. Every lane-G/P plate carries citation_refs,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.
rather than, instead of, 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).
regeneration_trigger carries theflip condition on every row.
critics_running with an empty 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.
D1-08 keys on 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.
E:/refs_lane_r is empty. Every lane-P plate here is aGENERATED 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.
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.
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