`osoby/`, `umowy/`, `tematy/` istnieją jako katalogi puste (`.gitkeep`) — **zero
stron typu `osoba`** w lipcowym proof-of-concept. To jest jedyna luka pokrycia
typów, którą Etap 1 tej sesji (§2) faktycznie domyka, nie duplikuje.
Jakość: wysoka, metodologicznie zgodna z tym, co audyt 08-26 dopiero rekomendował
(sekcja „Niepewne/sprzeczne" jako wzorzec — tam nazwana wprost inaczej, ale ta sama
funkcja; degradacja przy uszkodzonym OCR zamiast ślepego zaufania streszczeniu;
84/86 wpisów `sources[].chunks` i 73/73 przypisów inline zweryfikowanych wprost w
bazie, udokumentowane w `_meta/lint-reports/lint-report-2026-07-21.md`). Pełna
treść: `_meta/conventions.md` tamtego repo (różni się od konwencji tej sesji w
kilku miejscach nieistotnych merytorycznie — casing `INDEX.md`/`index.md`, typ
`meta` vs `temat` dla `conventions.md` — patrz §3).
**`kb-m5-faza4.md` (linia 17, `docs/sessions/2026-07-21.md`) już to dokumentowały
poprawnie** — ten fakt był w repo `homelab-codex-ws` cały czas, czytelny `git log`/
`grep -r kb-wiki`. Audyt 08-26 po prostu tego nie sprawdził (§0 wyżej).
---
## 2. Co ta sesja (2026-08-27) faktycznie zrobiła — Etap 1 wg zlecenia, **lokalnie, bez wiedzy o §1**
Zbudowany od zera, niezależnie: `~/kb-wiki-etap1-sesja-2026-08-27/` (przemianowany
z `~/kb-wiki/` po odkryciu §1 — żeby nie kolidować ścieżką z przyszłym `git clone`
prawdziwego repo). Git lokalny, **6 commitów, nigdy nie pushowany do żadnego
remote** (żaden remote nie był skonfigurowany — zgodnie z literą pierwotnego
zlecenia, które okazało się oparte na błędnym założeniu z §0).
3 strony proof, celowo zróżnicowane typy (jak żądał audyt §9 Etap 1):
| Strona | Typ | Pokrycie względem §1 |
|---|---|---|
| `sprawy/fll-2025-26.md` | sprawa | **Duplikat tej samej encji** co lipcowe repo — skompilowany niezależnie, z częściowo innym zestawem chunków (uzupełniające, nie identyczne `sources`). Wysoka zgodność wniosków — patrz §4. |
| `podmioty/mbank.md` | podmiot | **Nowe pokrycie** — nie istnieje w lipcowym repo (tam tylko PZU/WARTA, ubezpieczyciele) |
| `osoby/pawel-cesar-sanjuan-szklarz.md` | osoba | **Domyka lukę** — lipcowe repo ma katalog `osoby/` pusty; to pierwsza strona typu `osoba` w całym projekcie, jedyny dotąd test entity-resolution na aliasach |
Pełna treść stron, `_meta/conventions.md` tej sesji (napisane niezależnie od
| Plik nawigacyjny root | `INDEX.md` (duża litera), osobny od OKF-owego `index.md` (nie istnieje w ogóle w lipcowym repo — brak pliku `index.md`) | `index.md` (mała litera, OKF §11 reserved-file, pełni tę samą rolę) | Do rozstrzygnięcia przez operatora — lipcowe repo **nie ma pliku `index.md`** w ogóle, więc formalnie nie przechodzi `check_okf.py` tej sesji (`brak bloku frontmattera` nie wystąpi, bo pliku nie ma, ale reguła "root index.md wymagany" by to złapała, gdyby uruchomić walidator tej sesji na lipcowym repo — nie testowane, bo nie nasze repo do modyfikacji) |
| `type` dla `_meta/conventions.md` | `meta` (dodatkowa wartość w słowniku typów) | `temat` (nadużycie istniejącego typu, bo `TYPES` tej sesji nie miało `meta`) | Lipcowe podejście czystsze — warto przyjąć `meta` jako 6. typ przy rekoncyliacji |
| Frontmatter `sources` obowiązkowe niepuste | Nie wymuszone narzędziem (ręczna dyscyplina) | Wymuszone w `check_okf.py` (poza `_meta/`) | Zachować regułę tej sesji przy rekoncyliacji — tańsze niż poleganie na dyscyplinie |
| Walidator jako plik w repo | Brak (weryfikacja ad hoc, nieskomitowana) | `check_okf.py`, skomitowany, wielokrotnego użytku | Przenieść `check_okf.py` tej sesji do prawdziwego repo przy rekoncyliacji |
| Remote skonfigurowany | Tak (Forgejo, `master`) | Nie (lokalny, celowo) | — |
Żadna z różnic nie jest błędem — obie konwencje są spójne z faza3 §8.2 i audytem
08-26 w rzeczach, które się nakładają (format `[^envelope_id#chunk_id]`, fallback,
sekcja niepewności, CC/API-only, izolacja retrievalu kompilacji od `source='wiki'`).
---
## 4. Rekoncyliacja — do operatora, nie rozstrzygane przez tę sesję
To jest decyzja o realnych, już opublikowanych danych osobowych (finanse,
ubezpieczenia, dziecko na turnieju) w prawdziwym repo — powyżej progu, przy którym
ta sesja podejmuje decyzje sama. Opcje, bez rekomendacji wiążącej:
1.**Scalić nowe strony tej sesji do prawdziwego repo.**`podmioty/mbank.md` i
`osoby/pawel-cesar-sanjuan-szklarz.md` nie kolidują z niczym w lipcowym repo —
czysty dodatek. `sprawy/fll-2025-26.md`**koliduje** (dwie różne kompilacje tej
samej encji) — wymaga porównania treść-po-treści przez operatora albo kolejną
sesję CC, nie automatycznego scalenia.
2. **Porównanie dwóch niezależnych kompilacji `fll-2025-26` jako test jakości
kompilatora.** Obie wersje (lipcowa i ta) zgadzają się merytorycznie w
kluczowych punktach: wynik 195 pkt jako jedyny czytelny wprost z chunka
(`paperless:119#277`/`#278` — obie sesje trafiły w ten sam chunk niezależnie),
pozostałe dwa wyniki (165/230) tylko ze streszczenia, nominacja do Nagrody
Sędziów niepotwierdzona wprost w chunku, imiona z formularzy zgód celowo
pominięte, nazwisko trenera nieczytelne OCR. Rozbieżność: ta sesja znalazła i
zacytowała sprzeczność liczebności drużyny (10 vs 8 osób, z korespondencji
gmail — lipcowa wersja jej nie ma, bo nie sięgnęła po te same koperty gmail).
Lipcowa wersja znalazła niejednoznaczność sezonu SUBMERGED vs UNEARTHED
(`paperless:6`) i konkretne imiona dzieci z nazw plików (metadane, nie treść
dokumentu) — ta sesja pominęła `paperless:6` całkowicie i nie sięgnęła po
`entities[type=filename]`. **Dwie niezależne kompilacje tej samej encji nie są
sprzeczne, są komplementarne** — dobry sygnał, że metoda jest powtarzalna, zły
sygnał, że jedna kompilacja pomija realne dowody, które druga znalazła.
3. **Zostawić oba repo osobno, jawnie zarchiwizować to jako dwa niezależne
przebiegi tej samej fazy.** Najbezpieczniejsze, ale traci szansę na scalenie
uzupełniających się dowodów z punktu 2.
Krok operatora, niezależnie od wyboru z (1)-(3): **`~/kb-wiki-etap1-sesja-2026-08-27/`
istnieje lokalnie, nigdy nie pushowany** — do usunięcia/scalenia/zachowania wg
decyzji, nie automatycznie.
---
## 5. Poza zakresem tej notatki (Etap 2, jeśli operator potwierdzi kontynuację)
Zależnie od wyniku rekoncyliacji z §4:
- Skala do pełnej listy 17 encji z audytu §3 (już częściowo pokryta lipcowym repo
inną listą — PZU/WARTA/wspólnota/FLL nie pokrywają się z 17-pozycyjną listą
audytu poza `fll-2025-26`; wymaga ponownego review, które z 17 są już zrobione
pod innymi nazwami).
- Lint automatyczny w kodzie (`kb-wiki/lint.py`, inwariant 3 pełny) — żadna z
dwóch kopii tego nie ma, obie robiły lint ręcznie.
- Jednorazowy skan `<60>`/`\x00` na źródłach, które faktycznie zasiliły PoC (decyzja
h) — nie wykonany w żadnej z dwóch kompilacji; oba proof-of-concept **napotkały**
uszkodzony OCR organicznie (paperless:119/120 w obu wersjach fll-2025-26,
mbank.md ta sesja) bez systematycznego skanu.
- Integracja `source='wiki'` w `packages/kb-retrieval` (inwariant 5+7) — poza
zakresem obu przebiegów.
- Rozjazd `scripts/kb/check_okf.py` (SCOPE sztywny) — patrz §2, nie naprawiony