Forkovatelnost je v konstituci vedená jako závazný invariant, ne jako marketingová vlastnost. Znamená to konkrétní věc: kdokoli si může vzít tenhle repozitář, vyměnit téma i subjekty a provozovat vlastní nezávislý web na stejném datovém modelu — bez dohody s kýmkoli, bez přístupu k naší infrastruktuře a bez našeho redakčního schválení.
Proč to jde
Protože tady není co skrývat ani co doinstalovat. Build je statický: nemá serverovou část, nečte žádný secret, nevolá privátní API a nepotřebuje účet u žádné služby. Nasazení jde přes GitHub Actions do Pages přes OIDC token workflow — ani deploy tedy nepotřebuje osobní token, který by fork nemohl mít. Všechna data, která web zobrazuje, jsou v repozitáři jako verzované soubory; strojově čitelná data se z nich generují při buildu, ne z nějaké databáze vedle.
Jeden vstupní bod
Repozitář má přes třicet npm skriptů a je snadné netrefit ten, na kterém záleží. Proto je v rootu justfile (just):
just # vypíše všechny recepty
just doctor # zkontroluje prerekvizity (Node, Zola, hooks)
just setup # nainstaluje závislosti a nastaví git hooks
just dev # live preview na 127.0.0.1:1111
just build # TA brána kvality — stejná sekvence jako CI
just je pouze pohodlí. Každý recept je obyčejný příkaz, který jde spustit i přímo, a nic v buildu, v hooku ani v CI na just nezávisí — kdo ho nechce, přijde jen o výpis.
Podstatný je just build. Je to stejná sekvence, kterou spouští CI, a zahrnuje validátory, které tenhle datový model vlastně definují: integrita registrů, parita ručně psané tabulky s generovanými stránkami, stavová pravidla podle počtu citovaných zdrojů, existence kotev v hotovém HTML, poctivost JSON-LD. Adoptér, který tyhle kontroly vypne, se nemůže hlásit k tomuto datovému modelu — vypnutím kontrol z něj zbyde jen vzhled.
Co fork nastavuje
base_url v config.toml (a static/CNAME, pokud chce vlastní doménu), title a description, registr dossierů v data/dossiers.toml a samotný obsah content/. Autorizační log v AGENTS.md si každý fork vede vlastní — náš není a nemůže být pro nikoho jiného platný.
Co fork ještě musí upravit ručně
Tady je poctivé omezení, které patří na tuhle stránku stejně jako to předchozí: dokud neskončí de-specializační migrace, zůstávají v navigaci a několika šablonách zbytky historické vazby na výchozí dossiery tohoto webu. Přesný, průběžně aktualizovaný seznam je v auditu docs/migrations/remove-macinka-turek-coupling-audit.md a hlídá ho vlastní linter (lint:historical-coupling). Fork je tedy možný, ale vyžaduje jejich ruční úpravu — a dokud to platí, nebudeme tvrdit, že je forkování bezešvé.
Co si fork řeší sám
Redakční odpovědnost, právní posouzení a případný příjem podnětů. Fork nepřebírá naše redakční schválení ani naši autorizaci pokrytí konkrétních osob; každý záznam o reálné osobě musí projít vlastním rozhodnutím provozovatele forku. A platí i tady, co je napsané v bezpečnostních hranicích: tenhle projekt nemá důvěrný intake a fork ho nedostane jako součást balíku — kdo ho potřebuje, musí si ho postavit a odpovídat za něj.