Przy każdej regeneracji gen_pages.py buduje archiwum do wrzucenia w okno
czatu: wszystkie pliki .md bundle'a z zachowaniem struktury katalogów
(28 plików: koncepty, indexy podkatalogów, log.md) plus wygenerowany
AI-README.md. Nie wchodzą pages/, zdjęcia, generatory ani __pycache__ —
paczka niesie samą wiedzę, nie rusztowanie.
Deterministycznie: stały czas modyfikacji wpisów (1980-01-01), stała
kolejność i stały poziom kompresji, więc archiwum jest bajt w bajt takie
samo, dopóki nie zmieni się treść — git nie widzi diffów z niczego
(zweryfikowane: dwa uruchomienia, ten sam md5).
Z tego samego powodu AI-README.md podaje jako datę nie odczyt zegara,
tylko najnowsze `ostatnia_aktualizacja` w bundle'u ("data treści") —
data z zegara robiłaby nową wersję pliku każdego dnia, także wtedy, gdy
nic nie doszło.
AI-README.md (PL + EN, generowany z bundle'a): czym jest baza, format
OKF (markdown + YAML frontmatter, jeden plik = jeden koncept), polecenie
odpowiadania wyłącznie z tych plików i objaśnienie dwóch pól niosących
pewność danych — `status_ceny` i `dostepnosc_6_13_02_2027`, z ostrzeżeniem,
żeby nie zgadywać dostępności przy 🔍 i nie podawać szacunków jako cen
potwierdzonych.
Link "Pobierz bazę (.zip) — wrzuć do ChatGPT/Claude'a i pytaj" jako piąty
kafel na start.html i pozycja w sekcji "Wejście" na linki.html.
Plus wpis do log.md podsumowujący całą zmianę terminu.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cztery regiony w jednym schemacie <region>/region.md + <region>/oferty/*.md.
Saalbach przestaje być wyjątkiem w korzeniu bundle'a.
- git mv region.md → saalbach/region.md, oferty/ → saalbach/oferty/
- linki bundle-relative przepisane: /region.md → /saalbach/region.md,
/oferty/* → /saalbach/oferty/*
- nowy saalbach/index.md wg §6, symetryczny do ischgl/kronplatz/sfl
Zdjęcia obiektów przetrwały bez zmian: mapowanie oferta→zdjęcia jest
kluczowane po polu `id` we frontmatterze (pages/img/<id>/), nie po
ścieżce pliku — gen_images.py:121,390 i gen_pages.py:695-709.
Region "Saalbach" w gen_pages.py bierze się z dirname konceptu, więc
przejście "" → "saalbach" obsługuje się samo.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Tańsze stawki 385/231 € to VIP Skipass: tylko dla nocujących
w Ischgl/Mathon, 46 urządzeń, NIE działa na wyciągach Kappl. Nasz
PLAN A to nocleg w Kappl, więc obowiązuje Silvretta Skipass
(451/257 €, 75 urządzeń z Kappl i See) — ceny w tabelach zostają bez
zmian, zmienia się ich uzasadnienie.
Przy okazji dwa błędy w karcie, które rozstrzygnięcie odsłoniło:
tabela 451/257 € była podpisana "VIP Skipass" (to Silvretta), a sekcja
"Teren" przypisywała VIP-owi zasięg całego Paznaun łącznie z Kappl —
czyli dokładnie to, czego VIP nie obejmuje.
Pułapka wiekowa 8–<17 potwierdzona i zostaje w wyjazd.md; dopisany
plus po stronie Silvretty: dzieci <8 lat gratis (przy dwójce takich
dzieci grupa schodzi z ~5 150 € do ~4 640 €). Nowy wiersz "Dzieci
gratis" w tabeli porównawczej — b.d. tam, gdzie bundle nie ma danych,
zamiast domyślnego "brak".
Źródło: ischgl.com, cennik 26/27 (26.11.2026–02.05.2027), sprawdzone
03.08.2026.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cztery sekcje skipassowe uzupełnione o stawki przysłane przez grupę,
każda z adnotacją źródła i datą. Istniejące tabele nietknięte —
w każdym regionie nowe liczby stoją obok starych, z datami obu.
Saalbach: peak season 440/330/220 € potwierdza dotychczasową prognozę
(i jest górną granicą, bo nasz termin jest poza szczytem).
Kronplatz: twardy cennik, ale sezonu 2025/26 — nie tego, na który
jedziemy; szacunki 26/27 zostają.
Ischgl: dane od grupy SPRZECZNE z cennikiem w karcie — 385/231 € wobec
451/257 € i próg młodzieży 10–17 wobec 8–<17. Obie wersje zestawione,
rozstrzygnięcie zostawione grupie; do budżetowania nadal wariant
droższy. Jeśli obowiązuje próg 10–17, znika "pułapka wiekowa", która
jest dziś głównym argumentem przeciw Ischgl w tabeli w wyjazd.md.
SFL: link informacyjny (portal agregujący, nie cennik oficjalny).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Karta zbiorcza pages/index.html grupowała tylko korzeń i oferty/ —
dziewięć konceptów wariantów dostawało własne karty, ale nie było ich
na liście. Grupowanie idzie teraz po katalogach najwyższego poziomu,
a nazwa grupy to pierwszy nagłówek index.md tego katalogu, więc kolejny
region wystarczy dodać do bundle'a, żeby pojawił się tu sam.
Linki wariantów w root index.md prowadzą do region.md, nie do index.md
podkatalogów: pliki zarezerwowane nie mają kart, więc w pages/ taki
odnośnik degenerował się do linku na samego siebie.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- index.md: frontmatter zredukowany do samego okf_version (§6/§11),
body przepisane na listing sekcji w formacie §6.
- Nowy koncept wyjazd.md (type: Trip) przejmuje metadane wyjazdu
(nazwa/grupa/termin) oraz ranking ofert i najbliższe kroki z index.md.
- Każdy koncept dostał title/description/timestamp/tags (§4.1);
polskie pola zostawione bez zmian jako rozszerzenia.
- Wszystkie linki wewnątrz bundle'a na bundle-relative z / (§5.1).
- Nowe: oferty/index.md (§6) i log.md (§7).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>