Ako napísať CLAUDE.md, ktorý prežije stret s realitou
Väčšina koreňových inštrukčných súborov sa napíše raz a už nikdy sa neupraví. Toto je návod, čo do nich patrí, čo z nich vynechať a v akom poradí.
Koreňový inštrukčný súbor sa pri každej relácii číta celý, takže jeho dĺžka predstavuje priebežné náklady. Štruktúra, ktorá obstojí, dáva identitu a pevné pravidlá na začiatok, všetko podmienené presúva za spúšťače a nové pravidlo pridáva až vtedy, keď sa niečo pokazí druhýkrát.
Predpoklady
Agent, ktorý pri každej relácii načíta koreňový inštrukčný súbor. Miesto, kam uložiť súbory, ktoré sa načítavajú podmienene.
Postup
1. Najprv napíšte identitu a udržte ju operatívnu. Nie náčrt osobnosti — prevádzkový postoj. Od koho prijíma pokyny, akým jazykom, akým tónom, na čo optimalizuje. Všetko nižšie sa číta cez tento rámec, takže nejasnosť na tomto mieste sa draho vypomstí všade inde.
2. Pevné pravidlá umiestnite hneď za ňu a obmedzte ich počet. Menej ako 10. Každé na jeden riadok, s dôvodom hneď vedľa. Na pozícii záleží: pravidlo na riadku 300 súperí o pozornosť namiesto toho, aby vyhralo vďaka priorite — a spúšťajú sa práve tie na začiatku.
Dôvod nie je voliteľný. Pravidlo bez uvedenej príčiny neskorší čitateľ vymaže, pretože nevidí, čomu zabraňuje.
3. Všetko podmienené presuňte za tabuľku spúšťačov. Súbor, ktorý sa načítava vždy, by mal obsahovať len to, čo platí pre každú reláciu. Detaily týkajúce sa konkrétnej domény patria do samostatných súborov s tabuľkou, ktorá určuje, kedy sa majú načítať:
| supplier question | supplier standard, ordering profile |
Toto je jednoznačne najsilnejšia páka na kvalitu. Dlhší kontext preukázateľne zhoršuje extrakciu informácií, takže súbor, ktorý horlivo zahŕňa všetko relevantné, súperí sám so sebou.
4. Protokol odpovede napíšte ako usporiadaný zoznam s vypínačmi. Čo sa má vygenerovať, v akom poradí a čo danú časť vypína. Práve polovica s vypínačmi zabraňuje tomu, aby agent ignoroval požiadavku na stručnosť.
5. Pravidlá pridávajte až po druhom výskyte. Raz je incident. Dvakrát je vzor. Súbor naplnený vymyslenými pravidlami učí agenta strážiť sa pred vecami, ktoré sa nikdy nestanú, a do tretieho mesiaca je nečitateľný.
6. Ku každému pridaniu priraďte odstránenie. Nové pravidlo dnu, staré von. Ak sa nedá nič vyradiť, je to signál, že súbor prerástol bod, v ktorom ešte niekto vidí, čo v ňom už je.
7. Súbor datujte a zaznamenávajte každú zmenu. Jeden riadok do changelogu pri každej úprave, vedený mimo samotného súboru. O šesť mesiacov nikdy nejde o otázku čo toto pravidlo hovorí, ale prečo bolo pridané a platí to ešte, a odpovie na ňu len changelog.
8. Raz mesačne si ho celý znova prečítajte. Nie kvôli úpravám — kvôli všímaniu si. Rozporov, pravidiel, ktoré potichu prestali platiť, sekcií, ktoré prerástli svoju užitočnosť. Toto je jediný mechanizmus, ktorý zachytí postupný odklon, a trvá to asi 10 minút.
Overenie
Dva testy, oba lacné.
Test cudzinca: dokázal by niekto, kto systém nikdy predtým nevidel, len na základe tohto súboru predpovedať, ako sa agent zachová v 5 bežných situáciách? Ak nie, niečo nosné je implicitné.
Test rozporu: hľadajte pravidlá, ktoré by mohli platiť pre rovnakú situáciu, no viesť rôznymi smermi. V súbore akéhokoľvek veku sa nejaké nájdu a sú neviditeľné, kým ich niekto cielene nehľadá.
Riešenie problémov
Agent ignoruje jasne napísané pravidlá. Text v promptu je najslabšia forma vynucovania, aká existuje. Dôležité pravidlá presuňte do kontrol, ktoré sa skutočne spúšťajú — hook, krok v builde, bránu — a zmierte sa s tým, že súbor správanie špecifikuje, ale negarantuje.
Súbor stále rastie. Krok 6 sa nedeje. Rast je predvolený stav a zmenšovanie si vyžaduje vlastné pravidlo.
Relácie sa správajú nekonzistentne. Skôr než to pripíšete variabilite modelu, hľadajte dve pravidlá, ktoré si protirečia. V praxi je príčinou zvyčajne súbor, nie model.
Pozri tiež
weekly-triage-pass · the-uncertainty-gate · reviewing-your-own-session
$ head -12 writing-a-claude-md-that-survives.md
$ cite writing-a-claude-md-that-survives
Citation id SV-5449 is stable. It resolves at
https://stillvalid.dev/sk/c/SV-5449 even if this artifact moves to another section,
which a bare URL does not survive. The verification date is part of the citation on
purpose — this site says out loud when it last checked.
[Ako napísať CLAUDE.md, ktorý prežije stret s realitou](https://stillvalid.dev/sk/playbooks/writing-a-claude-md-that-survives) — stillvalid, SV-5449 (playbook, verified 2026-08-14)