Przycinanie CLAUDE.md i AGENTS.md: protokół ablacji
ENPrzycinanie plików kontekstu polega na traktowaniu CLAUDE.md, AGENTS.md i reguł Cursora jak budżetu do cięcia, a nie dziennika do rozbudowy. Protokół ablacji archiwizuje plik, zapisuje, które błędy się powtarzają, przywraca tylko linie, które im zapobiegają, resztę przenosi do reguł z zakresem, skilli i hooków, a przy każdej zmianie modelu rusza od nowa.
Trzy miesiące temu dopisałeś linię, żeby agent nigdy nie uruchamiał pnpm build, gdy działa serwer deweloperski. Dziś rano uruchomił pnpm build przy działającym serwerze. Odruch podpowiada przepisać regułę wersalikami i dodać „IMPORTANT”. To wydłuża plik, a długość pliku to jeden z powodów, dla których reguła przepadła. Ta strona jest dla programisty, który odpowiada za konfigurację agentów w repozytorium, i dla tech leada, który musi utrzymać jeden plik użyteczny dla ośmiu osób i trzech narzędzi. Jeśli nie masz jeszcze pliku kontekstu, zacznij od zwięzłego kontekstu repozytorium i wróć tu, gdy plik urośnie.
Co daje przycinanie plików kontekstu
Dział zatytułowany „Co daje przycinanie plików kontekstu”- Mapę tego, co Claude Code, Codex i Cursor ładują na starcie, co ładują na żądanie i które „optymalizacje” niczego nie oszczędzają
- Tabelę routingu, która odpowiada na pytanie „gdzie ma trafić ta linia” dla każdej zachowanej reguły
- Sześć promptów do skopiowania, które archiwizują, audytują, przenoszą, konsolidują i ponownie testują pliki instrukcji
- Skrypt budżetu bajtów dla Codeksa i bramkę liczby linii w CI, żeby plik nie odrósł po cichu
- Pętlę weryfikacji, która dowodzi, że przycięty plik nadal działa
Dlaczego dłuższy plik kontekstu pogarsza pracę agenta
Dział zatytułowany „Dlaczego dłuższy plik kontekstu pogarsza pracę agenta”Dokumentacja pamięci Anthropic mówi o koszcie wprost: celuj w mniej niż 200 linii na CLAUDE.md, bo dłuższe pliki „consume more context and reduce adherence”. Trzy kolejne mechanizmy wyjaśniają, czemu długość szkodzi:
- Instrukcje to rada, nie konfiguracja. Claude Code dostarcza
CLAUDE.md„as a user message after the system prompt”, bez „guarantee of strict compliance, especially for vague or conflicting instructions”. Gdy dwie linie sobie przeczą, „Claude may pick one arbitrarily”. - Każdą kopię płacisz od nowa. W Claude Code każdy subagent poza wbudowanymi Explore i Plan ładuje całą hierarchię
CLAUDE.md, chyba że jego definicja ustawiaomitClaudeMd: true(v2.1.271+). Uruchom dziesięć subagentów bez tego pola, a zapłacisz za plik jedenaście razy. - Codex obcina nadmiar. Codex ogranicza treść projektowych
AGENTS.mddomyślnie do 32 KiB (project_doc_max_bytes, sprawdzone w kodzie 0.157.1). Plik, który przekracza limit, zostaje ucięty, a każdy następny pominięty.
Akrecja to dopisywanie linii po każdej pomyłce: plik tylko rośnie. Ablacja to termin z badań nad uczeniem maszynowym: usuwasz składnik, żeby zmierzyć, co wnosił. Tutaj oznacza celowe kasowanie linii i przywracanie tylko tego, co w sprawdzalny sposób się psuje.
Ustaw pokrętło pod model, który czyta plik
Dział zatytułowany „Ustaw pokrętło pod model, który czyta plik”Im mocniejszy model, tym mniej rusztowania potrzebuje repozytorium. Każda reguła to zakład, że model sam czegoś nie wywnioskuje, a nowsze modele wygrywają coraz więcej takich zakładów. Na dzień 2026-10-12 domyślne są Claude Opus 5.5 w Claude Code (od v2.1.280, na obu kanałach wydań) i GPT-6.1 Sol jako domyślny model wbudowany w Codeksa (od CLI 0.159.1); aktualną listę trzyma hub modeli.
- Domyślne modele z czołówki. Tnij mocno. Zostaw tylko to, co model bez tej linii robi źle.
- Tańsze lub starsze modele (alias
sonnetlubhaiku, model lokalny). Zostaw więcej jawnych instrukcji: menedżer pakietów, wymagania wstępne, jedno polecenie, którego nie wolno uruchamiać. - Zespoły mieszane. Jeśli ten sam plik czyta twoja sesja z Opusem, tańszy model kolegi i zadanie w CI, pisz dla najsłabszego czytelnika. Mocny model lepiej znosi lekko przesadnie opisany plik niż słaby model plik niedopowiedziany.
Dlatego audyt powtarzasz przy zmianie modelu, nie według kalendarza, jako jeden z kroków planu oceny nowego modelu. Claude Code ma do tego gotowe sprawdzenie: /doctor prompt-audit szuka „instructions written for older models”, odwołań do nieistniejących plików i poleceń oraz plików, które sobie przeczą (v2.1.283, oba kanały wydań w dniu 2026-10-12). Gdy dla oszczędności schodzisz niżej o klasę modelu, spodziewaj się przywrócenia części linii. To ruch pokrętła, nie regres.
Co ładują Claude Code, Codex i Cursor, i kiedy
Dział zatytułowany „Co ładują Claude Code, Codex i Cursor, i kiedy”Główny plik ładuje się w każdej sesji. O tym, gdzie trafi każda ocalała linia, decyduje to, które inne mechanizmy ładują się dopiero na żądanie.
Na starcie, w całości: zarządzane pliki polityk, ~/.claude/CLAUDE.md, każdy CLAUDE.md i CLAUDE.local.md w katalogu roboczym i katalogach nad nim oraz każdy plik .claude/rules/*.md bez frontmattera paths. Pamięć automatyczna dokłada pierwsze 200 linii albo 25 KB pliku MEMORY.md, zależnie od tego, co nastąpi wcześniej.
Na żądanie: pliki .claude/rules/*.md z globem paths ładują się, gdy Claude czyta pasujący plik. Pliki CLAUDE.md w podkatalogach poniżej katalogu roboczego ładują się, gdy Claude czyta plik w danym katalogu.
AGENTS.md: od v2.1.277 (na obu kanałach wydań, odkąd stable osiągnął v2.1.287, sprawdzone 2026-10-12) Claude Code czyta AGENTS.md, gdy w katalogu roboczym ani wyżej nie ma CLAUDE.md, .claude/CLAUDE.md ani CLAUDE.local.md. Żeby ładować oba, ustaw Project instructions w /config na claude-md-and-agents-md.
Pułapki warte uwagi:
- Importy
@pathnie zmniejszają kontekstu. Importowane pliki „are expanded and loaded into context at launch”. Pięć schludnych importów pliku na 400 linii nadal kosztuje 400 linii w każdej sesji. - Pamięć automatyczna to akrecja bez twojego udziału. Jest domyślnie włączona i zapisuje notatki w
~/.claude/projects/<project>/memory/. Jej indeks ładuje się w każdej sesji, więc należy do powierzchni, którą przycinasz. CLAUDE.local.mdwyłączaAGENTS.md. Dodanie go na prywatne notatki w repozytorium opartym tylko naAGENTS.mdsprawia, że przy domyślnym ustawieniu Claude przestaje czytaćAGENTS.md.- Komentarze HTML są darmowe. Blokowe komentarze
<!-- ... -->są usuwane przed wstrzyknięciem, więc uzasadnienie dla ludzi nie kosztuje tokenów. - Claude Code sam sygnalizuje przerośnięty plik. Ostrzega na starcie i w
/status, gdy plik instrukcji przekracza zalecaną długość, a sprawdzenie/doctor(v2.1.206+) proponuje wycięcie z zatwierdzonego w repozytoriumCLAUDE.mdtreści, które da się odczytać z kodu, np. układu katalogów i listy zależności.
Co się załadowało, sprawdzisz przez /context (lista Memory files) i /memory.
Na starcie sesji: globalny ~/.codex/AGENTS.md, potem po jednym pliku na katalog, od korzenia projektu (domyślnie najbliższy .git) aż do katalogu, w którym startujesz. W każdym katalogu Codex bierze AGENTS.override.md, jeśli istnieje, a w przeciwnym razie AGENTS.md. Pliki są sklejane od korzenia, więc te najbliżej katalogu roboczego trafiają na koniec.
Na żądanie: nic. Głębszy AGENTS.md dotyczy tylko sesji uruchomionych w tym katalogu lub niżej.
Projekty niezaufane: od 0.150.0 projekt, któremu nie zaufałeś, nie dostarcza żadnego projektowego AGENTS.md.
Pułapka, która kosztuje godziny debugowania, to budżet bajtów:
project_doc_max_bytesma domyślnie 32 KiB i obejmuje tylko pliki projektu. Globalny~/.codex/AGENTS.mdsię do niego nie wlicza.- Plik, który przekracza limit, zostaje ucięty na pozostałej liczbie bajtów, a każdy kolejny plik jest pomijany.
- Codex zapisuje ostrzeżenie w logu („project doc exceeds remaining budget; truncating”) i mimo to uruchamia sesję, więc cięcie łatwo przeoczyć.
- Ponieważ pliki ładują się od korzenia, strata trafia w najbardziej szczegółowe instrukcje, te najbliżej katalogu roboczego.
Limit podniesiesz w ~/.codex/config.toml (project_doc_max_bytes = 65536), ale lepszym rozwiązaniem jest podział plików i przeniesienie procedur do skilli. Funkcja memories w Codeksie jest w 0.157.1 domyślnie wyłączona; jeśli ją włączysz, przycinaj ją także.
Reguły Cursora „provide system-level instructions to Agent”. Reguła działa zawsze albo ma zakres, a to reguły stosowane zawsze kosztują kontekst przy każdym zapytaniu. Reguły mogą też pochodzić spoza repozytorium (z twoich ustawień albo zarządzane przez organizację), więc wypisz każdą regułę widoczną na stronie ustawień Rules, a nie tylko pliki z repozytorium.
Cursor obsługuje też skille, hooki i pluginy. Reguły projektu to pliki .mdc w .cursor/rules z frontmatterem description, globs i alwaysApply, Cursor czyta AGENTS.md w katalogu głównym projektu i w podkatalogach, a CLAUDE.md czyta tak samo, stosując go zawsze w każdej rozmowie (dokumentacja Cursora, sprawdzone 2026-10-12). Protokół poniżej działa niezależnie od tego: wypisz każdą regułę ze sposobem stosowania i zacznij cięcie od reguł stosowanych zawsze.
Gdzie powinna trafić każda linia pliku kontekstu
Dział zatytułowany „Gdzie powinna trafić każda linia pliku kontekstu”Gdy wiesz, co ładuje się dopiero na żądanie, pytanie „czy ta linia zostaje?” zamienia się w „gdzie ta linia ma trafić?”. Główny plik to tylko jedno z kilku miejsc.
| Co masz | Claude Code | Codex | Cursor |
|---|---|---|---|
| Reguła potrzebna w każdej sesji | CLAUDE.md (lub AGENTS.md), poniżej 200 linii | główny AGENTS.md | reguła stosowana zawsze |
| Reguła dla jednego typu plików | .claude/rules/<temat>.md z paths | AGENTS.md najbliżej tych plików (brak zakresu po globie) | reguła z zakresem glob |
| Reguła dla jednego pakietu lub katalogu | CLAUDE.md w podkatalogu | AGENTS.md w podkatalogu (AGENTS.override.md, by go przesłonić) | reguła z zakresem |
| Procedura wieloetapowa | skill w .claude/skills/<nazwa>/SKILL.md | skill w .agents/skills/<nazwa>/SKILL.md | skill |
| „Nigdy nie rób X”, co musi się utrzymać | hook PreToolUse lub Stop | hook albo sprawdzenie w CI | hook |
| Dodatkowe wskazówki dla tańszego modelu | definicja subagenta z własnym model | definicja subagenta | definicja subagenta (sprawdź, czy da się w niej przypiąć model) |
| Subagent, który wszystko dostaje w prompcie delegacji | omitClaudeMd: true w jego definicji (v2.1.271+), żeby przestał płacić za CLAUDE.md | — | — |
| Osobiste preferencje | CLAUDE.local.md lub ~/.claude/CLAUDE.md | ~/.codex/AGENTS.md | reguła użytkownika |
| Notatka dla ludzi utrzymujących repo | komentarz HTML (zero tokenów) | README | README |
Z tabeli wynikają dwie praktyczne zasady:
- Jeśli reguła zaczyna się od „gdy”, nie należy do głównego pliku. „Gdy pracujesz nad handlerami API, waliduj wspólnym helperem schematów” to przebrana reguła z zakresem ścieżki.
- Jeśli zirytuje cię, że agent ją zignorował, proza to złe narzędzie. „Nigdy nie uruchamiaj builda przy działającym serwerze deweloperskim” to hook, nie zdanie. Zobacz hooki jako deterministyczne zabezpieczenia.
Przeprowadź protokół ablacji
Dział zatytułowany „Przeprowadź protokół ablacji”Sześć kroków poniżej wykonujesz po kolei: archiwizacja, audyt, przeniesienie, utwardzenie, konsolidacja, dowód. Każdy ma prompt działający w każdym z trzech narzędzi; zakładki zawierają tylko różnice między narzędziami.
-
Zarchiwizuj plik i załóż dziennik ablacji. Nie zaczynaj od edycji. Najpierw ustal, co plik ci daje. Przez tydzień pracuj normalnie z minimalnym plikiem i zapisuj każde potknięcie. Linia wraca dopiero wtedy, gdy agent dwa razy pomyli się w ten sam sposób; jedna pomyłka to szum.
Zarchiwizuj
CLAUDE.md,CLAUDE.local.mdi.claude/rules/. Na ten tydzień wstrzymaj pamięć automatyczną, bo inaczej odtworzy to, co usunąłeś: ustaw"autoMemoryEnabled": falsew.claude/settings.local.jsonalbo wyeksportujCLAUDE_CODE_DISABLE_AUTO_MEMORY=1. Przez/contextpotwierdź, że Memory files zawiera tylko to, czego się spodziewasz.Zarchiwizuj każdy
AGENTS.mdiAGENTS.override.mdw drzewie. Zmieniaj nazwy plików zamiast je opróżniać; pusty plik to nie to samo co brak pliku, gdy później porównujesz przebiegi.Zarchiwizuj katalog reguł projektu, a potem wypisz każdą regułę widoczną na stronie ustawień Rules, także te z twoich ustawień i od organizacji. One działają dalej, choć myślisz, że wszystko wyciąłeś.
-
Przeprowadź audyt archiwum linia po linii. Agent musi podać werdykt i uzasadnienie dla każdej linii. Dwadzieścia słabych uzasadnień z rzędu sprawia, że kasowanie przychodzi łatwo.
Linie KEEP to kandydaci, a nie przywrócenia: linia KEEP wraca dopiero wtedy, gdy dziennik dwa razy pokaże pomyłkę, której zapobiega; do tego czasu trzymaj listę KEEP w dzienniku.
W Claude Code najpierw uruchom
/doctor prompt-audit(od v2.1.283, oba kanały wydań w dniu 2026-10-12; wymaga włączonych wbudowanych skilli; żeby sprawdzić jeden plik lub katalog, podaj ścieżkę, np..claude/rules). Raportuje przestarzałe i sprzeczne instrukcje z propozycjami zmian i niczego nie zmienia, dopóki o to nie poprosisz. W Codeksie przed promptem uruchom skrypt budżetu bajtów, żeby wiedzieć, które instrukcje już przepadały. -
Wyprowadź reguły warunkowe z głównego pliku. Każdy werdykt MOVE-PATH staje się regułą z zakresem albo plikiem w podkatalogu. W monorepo główny plik zachowuje tylko to, co prawdziwe dla każdego pakietu; „prawie wszędzie” to nie „wszędzie”.
Reguła bez
pathsładuje się na starcie jak główny plik, więc to frontmatter czyni ją warunkową:---paths:- "services/api/**/*.ts"---# API handlers- Validate every request body with the shared schema helper in `services/api/lib/validate.ts`.- Error responses use the `{ error, code }` shape, never a bare string.pathsto jedyne pole frontmattera, które Claude Code czyta z reguły. Jeśli YAML się nie parsuje, reguła ładuje się bezwarunkowo; błąd parsowania pokażeclaude --debug.Codex nie ma reguł z zakresem po globie: jedyną osią warunkową jest głębokość katalogu. Umieść każdą regułę w
AGENTS.mdnajbliżej plików, których dotyczy, aAGENTS.override.mdstosuj tylko tam, gdzie pakiet naprawdę przeczy rodzicowi (usługa na innym środowisku uruchomieniowym). Podział to także sposób na zmieszczenie się w 32 KiB.Zamień każdy klaster w regułę z zakresem glob zamiast reguły stosowanej zawsze, a potem potwierdź na liście reguł, że widnieje jako reguła z zakresem.
-
Zamień procedury w skille, a twarde reguły w hooki. Procedura w głównym pliku jest czytana w każdej turze. Skill jest czytany, gdy jego opis pasuje do zadania, więc szczegóły stają się tam tanie. „Nigdy” w prozie to mocna sugestia; hook to egzekwowanie.
Hook dla reguły o
pnpm buildz początku strony, w pliku.claude/settings.jsonClaude Code:{"hooks": {"PreToolUse": [{"matcher": "Bash","hooks": [{ "type": "command", "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/no-build-with-dev-server.sh" }]}]}}#!/bin/bash# .claude/hooks/no-build-with-dev-server.sh (chmod +x; needs jq and lsof)COMMAND=$(jq -r '.tool_input.command')if echo "$COMMAND" | grep -Eq 'pnpm( -[^ ]+)*( run)? build' && lsof -iTCP:3000 -sTCP:LISTEN >/dev/null 2>&1; thenjq -n '{hookSpecificOutput: {hookEventName: "PreToolUse", permissionDecision: "deny",permissionDecisionReason: "Dev server is listening on :3000. Stop it before pnpm build."}}'fiexit 0Wzorzec dopasowania jest poglądowy: rozszerz go o każdy zapis, którego używa zespół. Hooki w Codeksie są w 0.157.1 stabilne i włączone, ale zanim się uruchomią, wymagają utrwalonego zaufania: zarejestruj podobny hook polecenia w
.codex/hooks.json(albo w tabeli[hooks]wconfig.toml). Hooki jako deterministyczne zabezpieczenia pokazują rejestrację w Codeksie i obejście dla Cursora. Dla reguł formatowania i lintowania lepszym murem bywa sprawdzenie w CI, bo łapie też commity ludzi. -
Skonsoliduj wszystko do jednego źródła prawdy. Dwa pliki mówiące prawie to samo rozjeżdżają się w tempie, w jakim je edytujesz.
AGENTS.mdto otwarty format dla wielu narzędzi: wrzuć tam wszystko, co niezależne od narzędzia, a pliki specyficzne dla narzędzi utrzymuj prawie puste.Jeśli w repozytorium nie ma
CLAUDE.md, Claude Code v2.1.277+ czytaAGENTS.mdbezpośrednio. Jeśli potrzebujesz linii tylko dla Claude’a albo część sesji działa na starszej wersji, wstaw@AGENTS.mdjako pierwszą linięCLAUDE.mdi dopisz pod nią instrukcje dla Claude’a. Gdy ktokolwiek klonuje repo na Windowsie, wybierz import zamiast symlinku: symlink wymaga tam uprawnień administratora albo trybu Developer Mode.AGENTS.mdjest tu formatem natywnym. Usuń duplikaty między globalnym~/.codex/AGENTS.mda plikami projektu: globalny plik leży poza budżetem bajtów, ale wszystko powiedziane dwa razy i tak płacisz dwa razy w oknie kontekstu.Sprawdź, czy reguły stosowane zawsze nie pokrywają się ze wspólnym plikiem instrukcji. Gdzie ta sama wskazówka występuje w obu miejscach, zostaw jedną kopię.
-
Udowodnij każdą zachowaną regułę i zaplanuj kolejną rundę na zmianę modelu. Jeśli nie potrafisz wskazać zachowania, które reguła zmienia, jest szumem, a szum nie jest darmowy.
Jak udowodnić, że przycięty plik nadal działa
Dział zatytułowany „Jak udowodnić, że przycięty plik nadal działa”Przycinanie jest bezpieczne tylko wtedy, gdy potrafisz pokazać brak regresji bez ponownego czytania każdej linii i każdego diffu. Dowód opiera się na pięciu sprawdzeniach:
- Istniejące bramki pozostają zielone. Testy, sprawdzanie typów i lint w CI to sprawdzenie zachowania. Przycięty plik, który produkuje wadliwe PR-y, wyjdzie najpierw tam, a nie w przeglądzie samego pliku.
- Dziennik ablacji jest dowodem. Każda przywrócona linia powołuje się na co najmniej dwie datowane pomyłki. PR z opisem „usunięto 140 linii; trzy pomyłki w dwa tygodnie, przywrócono dwie linie, dziennik w załączniku” da się przejrzeć. Samego usunięcia 140 linii — nie.
- Ładowanie jest potwierdzone, nie zakładane. W Claude Code
/contextpokazuje załadowane pliki pamięci, a hook na zdarzeniuInstructionsLoadedmoże logować, które plikiCLAUDE.mdi reguł się załadowały, kiedy i dlaczego.AGENTS.mdczytany przez Claude Code bezpośrednio (bezCLAUDE.md) nie wywołujeInstructionsLoaded; potwierdź jego załadowanie przez/memory, które pokazuje go od v2.1.280. W Codeksie uruchom poniższy skrypt budżetu bajtów. - Rozmiar jest pilnowany w CI. Bramka liczby linii poniżej odrzuca PR, który wydłuża dowolny plik instrukcji ponad 200 linii, więc akrecja wymaga świadomego wyjątku.
- Plik ma właściciela. Obejmij pliki instrukcji plikiem
CODEOWNERS, żeby tech lead zatwierdzał każdy dopisek, i wymagaj wpisu w dzienniku przy każdym z nich.
Sprawdź budżet bajtów Codeksa
Dział zatytułowany „Sprawdź budżet bajtów Codeksa”Zapisz to jako codex-agents-budget.sh i uruchom bash codex-agents-budget.sh w katalogu, w którym startujesz Codeksa (uruchom go przez bash, a nie source — wtedy exit nie zamknie ci terminala). Skrypt odtwarza kolejność Codeksa (najpierw korzeń projektu, jeden plik na katalog, AGENTS.override.md przed AGENTS.md) i wypisuje sumę narastającą:
#!/usr/bin/env bashroot=$(git rev-parse --show-toplevel) || { echo 'not a git repo'; exit 1; }d=$PWD; dirs=()while :; do dirs=("$d" "${dirs[@]}"); [ "$d" = "$root" ] && break [ "$d" = / ] && break; d=$(dirname "$d")donetotal=0for d in "${dirs[@]}"; do for f in AGENTS.override.md AGENTS.md; do if [ -f "$d/$f" ]; then size=$(wc -c < "$d/$f"); total=$((total + size)) printf '%7d bytes running %7d %s\n' "$size" "$total" "$d/$f"; break fi donedoneif [ "$total" -gt 32768 ]; then echo "Over 32 KiB: Codex truncates the file that crosses the line and skips the rest."fiSkrypt pomija project_doc_fallback_filenames i podniesiony project_doc_max_bytes; jeśli ustawiasz którekolwiek, popraw nazwy plików i limit.
Pilnuj długości plików instrukcji w CI
Dział zatytułowany „Pilnuj długości plików instrukcji w CI”# CI step: fail when any agent instruction file exceeds 200 linesover=$(git ls-files '*CLAUDE.md' '*AGENTS.md' '*AGENTS.override.md' '.claude/rules/*.md' \ | while read -r f; do n=$(wc -l < "$f") if [ "$n" -gt 200 ]; then echo "$f: $n lines"; fi done)if [ -n "$over" ]; then echo "$over"; echo "Prune or split before merging."; exit 1fiLiczba 200 to rekomendacja Anthropic dla pojedynczego CLAUDE.md; dla repozytoriów tylko z Codeksem wybierz własną wartość, ale jakąś wybierz.
Kiedy przycinanie plików kontekstu idzie źle
Dział zatytułowany „Kiedy przycinanie plików kontekstu idzie źle”Reguła jest ignorowana mimo skróconego pliku. Sprawdź trzy rzeczy po kolei. Po pierwsze: czy plik się załadował? W Claude Code plik nieobecny w /context wygląda dokładnie jak ignorowana reguła; w Codeksie sprawdź budżet bajtów i to, czy projekt jest zaufany. Po drugie: czy inna reguła jej nie przeczy? Agent może wybrać dowolną z nich i żadne wersaliki tego nie naprawią. Po trzecie: czy regułę da się sfalsyfikować? „Pisz utrzymywalny kod” nie da się ani przestrzegać, ani złamać, więc ją usuń.
Usunąłeś coś nośnego i wyłapało to CI. To protokół w działaniu i powód, dla którego krok 1 archiwizuje zamiast kasować. Przywróć jedną linię, opisz pomyłkę w dzienniku i nie przywracaj całej sekcji, z której pochodziła.
Codex słucha ogólnych reguł globalnych, a ignoruje precyzyjne lokalne. To cięcie na 32 KiB, a nie regres modelu. Ponieważ pliki projektu ładują się od korzenia, ucięty albo pominięty zostaje najbliższy, najbardziej szczegółowy plik. Uruchom skrypt budżetu bajtów, a potem przenieś procedury do skilli i podziel główny plik.
Pamięć automatyczna odbudowuje to, co usunąłeś. Pamięć automatyczna zapisuje twoje poprawki, więc kilka tygodni po ablacji może zawierać te same reguły, które usunąłeś, w pliku, którego nikt nie przegląda. Otwieraj /memory przy każdym przeglądzie głównego pliku albo wyłącz pamięć automatyczną dla projektu i prowadź notatki ręcznie.
AGENTS.md przestał się ładować w Claude Code. Ktoś dodał na ścieżce CLAUDE.md albo CLAUDE.local.md, które przy domyślnym ustawieniu mają pierwszeństwo. Ustaw Project instructions w /config na claude-md-and-agents-md albo wstaw @AGENTS.md na początek CLAUDE.md; import działa też w buildach starszych niż v2.1.277.
Zespół nie zgadza się co do tego, co wycięto. Przeglądaj dziennik, nie diff. Każda przywrócona linia potrzebuje dwóch datowanych pomyłek, a każde sporne cięcie rozstrzygnie prompt A/B z kroku 6.