# HANDOFF AUDYTOWY — fabryka wideo-explainerów (`identyfikacja_yt`), stan 2026-09-02 wieczór

> Dokument dla modelu (lub człowieka), który będzie AUDYTOWAŁ tę pracę bez dostępu do rozmów.
> Odpowiada na trzy pytania: **co robiliśmy, dlaczego, i co dzięki temu osiągnęliśmy** — każde
> twierdzenie ma wskaźnik do dowodu na dysku. Pisany 2026-09-02 przez Claude (Fable 5.1) po
> przeglądzie całej konwersacji i repo; wszystkie liczby pochodzą z dokumentów repo lub z pomiarów
> wykonanych w tej sesji (wskazane ścieżki).

## 0. Jak czytać i czego się spodziewać

- **Repo NIE jest repozytorium git.** Nie ma historii commitów; dowodami są pliki, ich daty (`stat`)
  i dzienniki JSONL w katalogach biegów. Traktuj ten dokument jak indeks dowodów, nie jak prawdę objawioną.
- **Dokumenty źródłowe (kolejność czytania):**
  1. `README.md` — mapa repo, potoki, zasady twarde (aktualny).
  2. `HANDOFF-2026-09-02.md` — STAN: narzędzia (§1), biegi (§2), werdykty (§3), pułapki (§4), lab (§5),
     otwarte wątki (§6), dziennik ostatniej doby (§6a–§6g), wznowienie (§7), mapa (§8).
  3. `HANDOFF-2026-08-31.md` — DZIENNIK z dowodami, §1–§30 (od pivotu V2 po lab wycinek).
  4. `HANDOFF.md` (2026-08-29) i `ROZKMINA_fabryka_stylow_2026-08-28.md` — era V1 „styl jako dane”.
  5. `fabryka/NOTATNIK_STYL_REPOCHAD.md`, `fabryka/e2/analiza_*.md` — analiza stylu kanału-wzorca.
- **Konwencja twierdzeń:** „(dowód: ścieżka)” = plik do otwarcia; „(pomiar: …)” = liczba policzona
  skryptem w tej sesji, którą audytor może odtworzyć komendą z §7.
- **Rzeczy ulotne:** katalogi scratchpad (`/private/tmp/claude-501/…/scratchpad/`) z symulacjami,
  paskami klatek i pakietem walidacji codexa mogą już nie istnieć; wszystko, co istotne, jest
  skopiowane opisowo do handoffów.
- **Skala danych:** `przebiegi/` ≈ 13 GB (największy: `20260901-opus5-2t-pelna` 3,1 GB — masówka
  wzorcowni; `_lab-wycinki` 2,0 GB), `wzorcownia/` = 601 scen z 14 filmów kanału.

## 1. Cel projektu i droga do niego (sześć etapów)

**Cel końcowy (sformułowany przez usera stopniowo):** automatyczna fabryka polskich wideo-explainerów
w stylu kanału RepoChad — *tekst wchodzi, film wychodzi* — bez human review, z lektorem PL, z
infografikami generowanymi na żądanie i odsłanianymi po kolei na słowach lektora, tanio w tokenach.

| etap | daty | co zrobiliśmy | co osiągnęliśmy | dowód |
|---|---|---|---|---|
| E0 identyfikacja | 08-28 | Ustalenie toolchainu kanału RepoChad (HTML→wideo, klasa HyperFrames), reprodukcja stylu | Werdykt „prawie na pewno HyperFrames faceless-explainer”; projekt testowy `videos/local-ai-break-even/` | memory `repochad-style-investigation`, `fabryka/NOTATNIK_STYL_REPOCHAD.md` |
| E1 mini-fabryka V1 | 08-28/29 | „Styl jako dane”: `film.json` + skin → `fabryka/generuj.mjs` (composer), 21 builderów, 8 skinów, TTS Kokoro, 2 bramki jakości w kodzie | 20 filmów bez LLM na klatkach; LLM tylko scenariusz→`plansze.json` | `ROZKMINA_…md` (STATUS), `HANDOFF.md`, `videos/f01…f20` |
| E2 pivot V2 + masówka | 08-29→31 | Po 5 falach przebudowy silnika deterministycznego user orzekł: kompozycji wielu elementów nie da się zamknąć w JSON — **agent LLM pisze kod planszy** (`plansza.mjs`). Pilot 12 reżimów; wzorcownia (cięcie kanału na sceny OCR-em kickera); masówka naśladowań; naprawy P0; audyt kosztów; biblioteka elementów | Pilot: reżim I/M ≈ 121–126k świeżych/planszę w klasie A/B; wzorcownia 601 scen (OCR granic: recall 0,89, precision 0,87); **fala 1: 173/173 scen, 0 awarii, 25,8M świeżych (śr. 149k/scenę)**; kotwice słów: 28/173 błędnych → 0/173; biblioteka 82 karty / 285 egzemplarzy; standard **Opus 5 · 2 tury · wiedza pełna** | `HANDOFF-2026-08-31.md` §1–§4, §8, §10; `wzorcownia/`, `przebiegi/20260831-*`, `baza/` |
| E3 workflow V3 + style + arsenał | 08-31→09-01 | REŻYSER_V3 (tekst → tablice z DOMINANTĄ + wsparciem 0–3), TTS per tablica, `produkcje/`, strefa ciszy 3 s, `hold_s`; skiny „tylko farba”; 357 bloków HyperFrames zainstalowanych; drzewo prezentacji wiedzy dla agenta; test bojowy na obcym TTS (biologia); polskie glify w fontach; lektor m04 | Film z czystego tekstu (MHsO 22 tablice, V3B: opy/planszę 19→15); wiedza dla agenta 20 kB zamiast 84 kB; Mendel 7 tablic i enzymy 5/5 z obcego materiału | `HANDOFF-2026-08-31.md` §12–§19, §22; `produkcje/PMHsO, RMHsO, PMENDb, PWYTB`; `fabryka/fonty/` |
| E4 infografiki i warstwy | 09-01→02 | gpt-image-2 na żądanie agenta (`infografika.mjs`), tryby: dowolne → decyzja → **infografika-first**; odsłanianie warstwami: prostokąty → maski pikselowe → **presety kompozycji + prompt bez LLM + sloty jako regiony + sędzia bez LLM**; lab wycinek A/B/C (3 agenty) | Adopcja obrazów 0/7 → 1/7 → 7/7; **ig6: 7/7 plansz, 1,75M tokenów, 14 min, 0 wywołań wizji**; sędzia skalibrowany (prostokąty odrzucane, maski czyste); presety zmierzone (A2: 0/9 odrzuceń w geometrii v5) | `HANDOFF-2026-09-02.md` §1–§5, `HANDOFF-2026-08-31.md` §18–§30; `przebiegi/20260901-mendel-ig*`, `20260902-mendel-ig4…6`, `_lab-wycinki/` |
| E5 domknięcie jakości | 09-02 popołudnie/wieczór | Iteracja 7: „szkielet bez tuszu” (klatka 0 = czysty papier); iteracja 8: kontrola nagości (flaga), łagodne wejścia, kickery po polsku; walidacja promptów codexem | **Brud w klatce 0: 0 px w 7/7** (ig6: 533–31 498 px); t05 bez nagości; `fadeIn` 1 s; 7 kickerów PL; 21 poprawek promptów po recenzji codexa | `HANDOFF-2026-09-02.md` §6d–§6g; `przebiegi/20260902-mendel-ig7`, `ig8`; `www/produkcja_PMENDb.html` (8 kolumn) |

## 2. Architektura końcowa — potok „tekst → film” (stan na 09-02)

```
scenariusz_<VID>_czasy.txt (tekst + czasy)
  └─ 06_produkcja.py --binarka codex1 → REŻYSER_V3 (codex, strict JSON) → PLAN.json: tablice {kicker, waga, dominanta, wsparcie}
       └─ produkcje/<PID>/tNN/ (BRIEF.md, szkielet HyperFrames, audio: Kokoro → 10_polski_glos.py = omnivoice m04 + loudnorm + words)
            └─ 06_masowka.py --zrodlo produkcje --biblioteka --infografiki warstwy (Opus 5, 2 tury, wiedza pełna)
                 agent T1: czyta BRIEF + VADEMECUM + blok v5 → wybiera PRESET (schematy.py, tabela decyzyjna)
                   └─ infografika.mjs --prompt szablon --schemat <preset> --regiony
                        A. prompt_szablon.py (0 LLM) [albo codex2 wg INFOGRAFIKA_REGULY*]
                        B. imagegen (gpt-image-2, codex2, ~75–145 s, ~0,01 $) → assets/ig/NN.png
                        B'. kontrola_tresci.py (qwen-flash :8020, 0 $) → postacie / NAGOŚĆ → tylko FLAGA
                        D. regiony.py --schemat (sloty = regiony, 0 LLM) → maski PNG „LA” + DOMKNIĘCIE (szkielet bez tuszu)
                        D'. lab_wycinki_metryki.py (sędzia, 0 LLM) → BRAMKA: ODRZUCONY/1 region ⇒ obraz w całości, inaczej WARSTWY
                        → agent dostaje snippet CSS/HTML/OPS (fadeIn 1 s per region) i pisze plansza.mjs
                 harness.mjs: kompozycja → check → render → podglad/mozaika.png; agent T2 ogląda mozaikę → KEEP/ACCEPT/ROLLBACK
            └─ 11_porownanie.py --sklej → FILM.mp4 + www/produkcja_<PID>.html; 13_przeglad.py → www/przeglad_ig.html
```

Komponenty i ich status: `HANDOFF-2026-09-02.md` §1 (tabela). Kluczowe pliki: `fabryka/pilot/{infografika.mjs,
schematy.py, prompt_szablon.py, regiony.py, lab_wycinki_metryki.py, kontrola_tresci.py, harness.mjs}`,
`fabryka/wzorcownia/{06_masowka.py, PROMPT_T1.md, PROMPT_T2.md}`, `fabryka/prompty/REZYSER_V3.md`,
`fabryka/biblioteka/{06_produkcja.py, 10_polski_glos.py, 11_porownanie.py, 12_propaguj_audio.py, 13_przeglad.py}`.

Zasada organizacyjna, która przewija się przez wszystko: **0 LLM tam, gdzie da się deterministycznie**
(prompt z presetu, regiony ze slotów, maski z tuszu, sędzia z metryk, kontrola treści za darmo na qwen),
LLM tylko tam, gdzie decyduje o treści (REŻYSER, agent-plansza).

## 3. Co osiągnęliśmy — liczby (te same 7 tablic Mendla, `produkcje/PMENDb`)

| bieg | co testował | obrazów | świeże tokeny | wynik |
|---|---|---|---|---|
| `20260901-mendel-base` | bez infografik | — | 2,10M | 7× ACCEPT_T2 (punkt odniesienia) |
| `…-mendel-ig` | blok „opcjonalny” | 0/7 | 1,54M | narzędzie niewidzialne dla agenta |
| `…-mendel-ig2` | decyzja obowiązkowa | 1/7 | 1,50M | 6× NIE z uzasadnieniem |
| `…-mendel-ig3(+b,c)` | infografika-first | 7/7 | 2,72M | dogrywki przez limity narzędzia |
| `20260902-mendel-ig4` | warstwy v1: prostokąty | 7/7 | 1,43M | user: „dziury creepy” |
| `…-mendel-ig5(+b)` | warstwy v2: maski (wizja) | 7/7 | 2,06M | 0 cięć obiektów |
| `…-mendel-ig6` | v3: presety + szablon 0 LLM + sloty + sędzia | 7/7 | **1,75M** | **14 min**, 7× UWAGI, 0 ciężkich |
| `…-mendel-ig7` | ig6 + domknięcie masek | 7/7 | 0 (kopia) | brud w klatce 0: **0 px / 7 scen** |
| `…-mendel-ig8` | ig7 + kontrola nagości, fadeIn, kickery PL | 7/7 | 0 (kopia) | t05 ubrane (1. próba), film 8 wersji obok siebie |

Inne mierzalne wyniki: masówka wzorcowni 173/173 (25,8M); pilot V2 — koszt świeżych płaski przy
1 rundzie (§2 dziennika); wiedza agenta 20 kB zamiast 84 kB; lab C: prostokąty ig4 7/7 ODRZUCONE
vs maski 0,0 cięć; A2: szablon bez LLM ma **mniej** tuszu poza slotami niż prompt codexa (4,9 % vs 11,4 %);
koszt obrazu ≈ 0,01 $ i 75–145 s; kontrola nagości 1,5–3 s/obraz za 0 $ (1 trafienie, 6 negatywów na ig7).

Strony przeglądowe (serwer `:8899`, LaunchAgent `pl.gileneo.fabryka-www`): `www/produkcja_PMENDb.html`
(8 kolumn: base, ig2, ig3, ig4, ig5, ig6, ig7, ig8), `www/przeglad_ig.html` (106 kafli), `www/lab_wycinki_{A,C}.html`.

## 4. Decyzje usera (obowiązują; audytor powinien sprawdzać zgodność z nimi)

1. **Walidacja = FLAGI, nigdy odrzucenie obrazu** — narzędzie z wątpliwością zapisuje flagę i jedzie dalej.
2. **Nagości nie zakazujemy w promptach** („zaraz będzie wszystko zakrywać”) — tylko kontrola wizją z flagą.
3. Nieodsłonięte ma **nie istnieć** na ekranie: żadnych przyciemnień/rozmyć/placeholderów (reflektor odrzucony).
4. Warstwy: rysownik i wycinacz muszą dzielić jedną definicję (presety); preset dowolny, „byleby to grało ze sobą”;
   system bez human review, zmierzony na kilkunastu obrazach, najtaniej (0 LLM przy cięciu).
5. Elementy obrazu mają się **wyłaniać, nie wyskakiwać** (`fadeIn` ~1 s, nigdy `pop`).
6. **Kicker w języku lektora** (film po polsku → nagłówki po polsku).
7. Lektor PL: omnivoice **m04** + loudnorm na box 5060 Ti (m01 „upośledzony”; Kokoro nie zna polskiego).
8. Standard produkcyjny: **Opus 5 · 2 tury · wiedza pełna**; prompty produkcyjne pisze codex1 z briefów;
   zero retry; stop przez STOP-flagę (drain), nigdy pkill; sekrety nigdy w repo; memory tylko na polecenie.
9. Infografika jest **nośnikiem treści** planszy (infografika-first), HyperFrames ją omawia, nie zasłania.
10. Werdykty jakości tylko z wideo lub gęstej sondy klatek — stille zawyżają oceny (lekcja metodyczna z pilota).

## 5. Znane ograniczenia i ryzyka (uczciwie, z wagą)

| waga | ograniczenie | skutek | gdzie |
|---|---|---|---|
| WYSOKA | **Nagość = tylko flaga** (decyzja usera). Nagi obraz wchodzi do planszy; flaga jest w dzienniku/konsoli, nikt na nią nie reaguje | możliwa „wtopa” w produkcji bez human review | `infografika.mjs` (KONTROLA TREŚCI), §6e |
| WYSOKA | **Nowe reguły nie przeszły jeszcze pełnego świeżego biegu.** ig7/ig8 to kopie ig6 z przeliczonymi maskami i podmianami; zmiany z §6e–§6g (blok v5, REŻYSER, reguła 6 regionów, `fadeIn` w snippecie) zadziałają dopiero w nowym biegu | ryzyko regresji niewykryte | pierwszy krok audytu: bieg ig9 (§7) |
| ŚREDNIA | Sędzia nie ma OCR: nie widzi etykiety w cudzym slocie (t02: „osiem roślin” pod tacą wchodzi 4 kroki przed obiektem) ani zgubionych ogonków na obrazie | semantyczny błąd odsłaniania, brzydkie napisy | `lab_wycinki_metryki.py`, §6 otwarte |
| ŚREDNIA | Rysownik gpt-image-2 jest niedeterministyczny: dorysowuje ozdoby, podtytuły, wystaje poza sloty; domknięcie masek to maskuje (wszystko idzie do właścicieli), ale np. blada ozdoba ≤ 77 px od cudzego obiektu wejdzie z nim | drobne „za wcześnie” | §6d |
| ŚREDNIA | Biegi-dowody ig6/ig7 zawierają nagi obraz t05 (`PMENDb-t05/assets/ig/01.png`); ig8 ma go w `_ig7/` | nie publikować tych katalogów | `przebiegi/20260902-mendel-ig6,7,8` |
| ŚREDNIA | Produkcja testowa enzymów `PWYTB` i biegi sprzed 09-02 mają angielskie kickery | niespójność językowa w starych filmach | `produkcje/PWYTB/PLAN.json` |
| NISKA | Brak gita; scratchpady ulotne; venv faster-whisper w scratchpadzie (`10_polski_glos.py --venv`); `HF_BIN` niepinowany (npx cache) | odtwarzalność | §6 otwarte, README |
| NISKA | Ślady falstartu `produkcje/PADHDb`, `scenariusz_ADHDbio`; `produkcje/KATALOG.jsonl` liczy je (60 scen) | szum | §2 stanu |
| NISKA | Pojedyncze reguły REŻYSERA edytowane bezpośrednio (kicker PL, poprawki z §6g) zamiast przez codex1 z briefu — świadome odstępstwo od standardu (jednozdaniowe zmiany) | zgodność ze standardem | §6f, §6g |

## 6. Otwarte wątki (co dalej, w kolejności wartości)

1. **Bieg ig9 na czystym wejściu** (`06_masowka.py … --infografiki warstwy` na PMENDb): sprawdza wszystkie poprawki
   z §6e–§6g naraz (blok v5, snippet `fadeIn`, reguła 6, prompty). Oczekiwane: 7/7, sędzia bez ciężkich, kickery PL,
   pas werdyktu jako osobny ostatni region w `porownanie`, 0 `pop` w `plansza.mjs`.
2. Reakcja na `FLAGA: NAGOŚĆ` — decyzja usera (np. agent wpina obraz bez tego slotu albo masówka zbiera flagi do raportu).
3. OCR w sędzim (flaga lekka): diakrytyki na obrazie vs lista etykiet; etykieta w cudzym slocie.
4. Presety niezmierzone obrazem: `os-czasu`, `stos`, `pion`, `siatka`; `mapa-mysli` warunkowo (0 obrazów w geometrii v5).
5. Strzałki między slotami w `proces` trafiają do następnego obiektu (akceptowalne; do decyzji).
6. Utrwalić venv whispera w repo (`fabryka/.venv_asr`), pinować `HF_BIN`, posprzątać `PADHDb`.
7. Zamrożone od wcześniej: masówka kanału 91/355, FJKiX-t02, poczekalnia 44 typów biblioteki, kanał co_kraj_to_obyczaj.

## 7. Lista kontrolna audytu (jak zweryfikować kluczowe twierdzenia)

Wszystkie komendy z katalogu repo `/Users/gileneo/www_new/misc/identyfikacja_yt`.

1. **Klatka 0 bez brudu (ig7/ig8) i brud w ig6** — sędzia na tych samych obrazach:
   ```bash
   for r in ig6 ig7; do for t in 1 2 3 4 5 6 7; do ig=przebiegi/20260902-mendel-$r/PMENDb-t0$t/assets/ig; python3 fabryka/pilot/lab_wycinki_metryki.py --png $ig/01.png --wyj $ig --tryb maski --json --ocr off >/dev/null 2>&1; python3 -c "import json;w=json.load(open('$ig/01.metryki.json'));print('$r t0$t',w['werdykt'],'M7a',w['M7a_brud_klatki0_px'])"; done; done
   ```
   Oczekiwane: ig6 M7a 533–31 498 px (ODRZUCONY przez M7a), ig7 M7a 0 (UWAGI). Uwaga: komenda nadpisuje `metryki.json`
   w katalogach dowodowych identycznym wynikiem.
2. **Kontrola nagości** — `python3 fabryka/pilot/kontrola_tresci.py --png przebiegi/20260902-mendel-ig7/PMENDb-t05/assets/ig/01.png`
   → `NAGOŚĆ · postaci 7`; to samo dla `…-ig8/…` → `ok · postaci 8` (wymaga qwen-flash `:8020`; bez niego rc=2).
3. **Pas werdyktu jako osobny region po poprawce reguły 6** (nie zapisuj do sceny — użyj `--wyj /tmp/x`):
   `python3 fabryka/pilot/regiony.py --png przebiegi/20260902-mendel-ig8/PMENDb-t05/assets/ig/01.png --nazwy "Bialy albo purpurowy;Wzrost czlowieka;Policzyc, nie mierzyc" --model auto --warstwy maski --schemat porownanie --wyj /tmp/x`
   → `4 regionów`, ostatni „Policzyc, nie mierzyc” (ig6/ig7/ig8 mają 3 — scalone, bo powstały przed poprawką).
4. **Presety** — `python3 fabryka/pilot/schematy.py --test` → `presetów z flagami: 0`; `--rejestr` → 12 rodzin.
5. **Łagodne wejścia i kickery PL w ig8** — `grep -c '"pop", sel: "#pl-ig-r' przebiegi/20260902-mendel-ig8/PMENDb-t0*/plansza.mjs`
   → 0 wszędzie; kickery: `grep -h 'pl-kick\|id="kick\|tb-kicker\|f2-kick' przebiegi/20260902-mendel-ig8/PMENDb-t0*/plansza.mjs`
   → 7 polskich haseł (OCZYWISTA ODPOWIEDŹ, NADAJ WYNIKOM ZNACZENIE, KONTROLUJ KRZYŻÓWKĘ, PRZEŁĄCZ MECHANIZM,
   POLICZ, CO SIĘ RÓŻNI, USTAL PUNKT WYJŚCIA, F2 WYDAJE WERDYKT); oryginały w `produkcje/PMENDb/PLAN.json` pole `kicker_en`.
6. **Reguła językowa REŻYSERA** — `sed -n '30p' fabryka/prompty/REZYSER_V3.md` (kicker w języku lektora) i linia 102
   (złoty przykład z polskimi kickerami, poprawny JSON).
7. **Filmy i strony** — `ls -la przebiegi/20260902-mendel-ig{6,7,8}/FILM.mp4`; `www/produkcja_PMENDb.html` ma 8 `<h4>`;
   każda scena ma `renders/plansza.mp4` i `podglad/mozaika.png` (2×3 klatek, czytać rzędami).
8. **Koszty tokenów** — liczyć z transkryptów `~/.claude/projects/-Users-gileneo-www-new-misc-identyfikacja-yt/*.jsonl`
   z dedup po `message.id` (po `uuid` zawyża ~2×); metryka „świeże = out + in + cache_w”; liczby w §2 stanu pochodzą z tej metody.
9. **Dzienniki biegów** — `przebiegi/<bieg>/PMENDb-tNN/infografiki.jsonl` (wpisy narzędzia: `ok`, `sedzia`, `kontrola`, flagi),
   `harness.json` (kotwice EXACT/STEM/FALLBACK, walidacja opów), `raport.md` agenta, `sesja_t1.json/sesja_t2.json` (SDK).
10. **Zgodność z werdyktami usera (§4)** — w promptach nie ma zakazu nagości (`grep -ri "nude\|clothed" fabryka/pilot/*.py fabryka/pilot/*.mjs fabryka/pilot/*.md`
    → tylko `kontrola_tresci.py`); snippet daje `fadeIn` (`grep -n 'op: "fadeIn", sel: "#{P}-ig-r' fabryka/pilot/regiony.py`).

## 8. Mapa najważniejszych miejsc (skrót; pełna w README)

- Narzędzia infografik i warstw: `fabryka/pilot/` (+ reguły `INFOGRAFIKA_REGULY*.md`, wiedza agenta `VADEMECUM.md`).
- Orkiestracja i prompty agentów: `fabryka/wzorcownia/06_masowka.py` (bloki `INFOGRAFIKA_BLOK_*`), `PROMPT_T1.md`, `PROMPT_T2.md`.
- REŻYSER i produkcja: `fabryka/prompty/REZYSER_V3.md`, `fabryka/biblioteka/06_produkcja.py`, `produkcje/<PID>/`.
- Lab wycinek: `przebiegi/_lab-wycinki/{BRIEF_WSPOLNY.md, A/RAPORT.md, B/wyniki_iter1-3, C/RAPORT.md, C/bieg.py}`.
- Kanon zewnętrzny (konta, komendy, TTS, gpt-image-2): `~/www_new/external_connections/` (`NARZEDZIA.md`, `KONTA.md`,
  `codex_cli/05-exec-wzorzec.md`, `tts/README.md`, `image_generators/gpt_image_2/`).
- Plan infografik zatwierdzony przez usera: `~/.claude/plans/immutable-pondering-metcalfe.md`.

## 9. Słowniczek (żeby audytor nie zgadywał)

- **tablica / plansza** — jedna scena filmu (jeden `plansza.mjs`, jeden render); REŻYSER dzieli scenariusz na tablice.
- **kicker** — mikro-nagłówek planszy (wersaliki, mono); **dominanta** — gospodarz kadru, nośnik tezy; **wsparcie** — 0–3 dodatki.
- **tura 1 / tura 2 (T1/T2)** — agent pisze planszę; potem ogląda własną mozaikę i decyduje KEEP_T1/ACCEPT_T2/ROLLBACK_T1.
- **masówka** — orkiestrator SDK odpalający N agentów na scenach; **bieg** — jeden katalog w `przebiegi/`.
- **infografika-first / tryb warstwy** — na każdej planszy jedna infografika jako nośnik treści, odsłaniana regionami.
- **preset (schemat)** — układ slotów w % płótna (12 rodzin w `schematy.py`); ten sam dla rysownika i wycinacza.
- **region / warstwa / maska** — fragment obrazu odsłaniany na kotwicy; maska PNG „LA” = alfa składowych tuszu regionu.
- **szkielet / reszta / klatka 0** — to, co widać zanim wejdzie pierwszy region; po iteracji 7 = sam papier.
- **domknięcie** — reguła: pył, sporne linie i blade piksele idą do warstwy właściciela najbliższego tuszu.
- **sędzia** — `lab_wycinki_metryki.py`, symuluje odsłanianie i liczy M1–M7; **bramka** — decyzja warstwy vs cały obraz.
- **flaga** — wpis w dzienniku o wątpliwości, nigdy blokada (doktryna); wyjątki: brak pliku, limit budżetu.
- **świeże tokeny** — `out + in + cache_w` (bez odczytu cache); miara kosztu przyjęta przez usera.
- **kotwica «słowo»** — czas wejścia elementu wyznaczony słowem lektora z `words` (faster-whisper), exact-first.
