Dokumentacja konfiguracji
ENCursor, Claude Code i Codex czytają instrukcje z różnych plików: Cursor z .cursor/rules/*.mdc, AGENTS.md i CLAUDE.md, Claude Code z CLAUDE.md (lub AGENTS.md, gdy brak CLAUDE.md, od v2.1.277 w obu kanałach), Codex z łańcucha AGENTS.md i config.toml. Różnią się kolejnością, zakresami i limitami rozmiaru; żadne nie ostrzega o niezaładowanej regule (sprawdzone w Claude Code 2.1.283, Codex CLI 0.157.1 i @cursor/sdk 1.0.32).
Ta strona jest dla programisty albo tech leada, który odpowiada za konfigurację agentów w repozytorium. Typowa awaria jest cicha: reguła ograniczona do tras API działa na każdym pliku, prywatny CLAUDE.local.md sprawia, że Claude Code przestaje czytać zespołowy AGENTS.md, a Codex pomija instrukcje pakietu napisane w zeszłym tygodniu, bo łańcuch przekroczył limit bajtów. Nic nie zgłasza błędu. Agent po prostu przestaje stosować regułę.
Wpisy poniżej, które podają Claude Code 2.1.296, Codex 0.162.1 lub stronę Cursora, sprawdzono 2026-10-12.
Co daje ci ta dokumentacja konfiguracji
Dział zatytułowany „Co daje ci ta dokumentacja konfiguracji”- Jedną tabelę: który plik ładuje każde narzędzie, skąd i kiedy.
- Minimalne, poprawne szablony
.cursor/rules/*.mdc,CLAUDE.md,.claude/settings.json,AGENTS.mdiconfig.toml. - Układ z jednym źródłem prawdy dla zespołów, które używają więcej niż jednego narzędzia.
- Polecenia, które dowodzą, jakie instrukcje naprawdę się załadowały, oraz test limitu do wklejenia w CI.
- Ciche awarie, każdą z krokiem naprawczym.
O tym, co wpisać do tych plików i co z nich wyciąć, piszemy w artykule Przycinanie CLAUDE.md i AGENTS.md. Ta strona opisuje, gdzie pliki leżą i jak każde narzędzie je ładuje.
Który plik czyta każde narzędzie AI do kodowania?
Dział zatytułowany „Który plik czyta każde narzędzie AI do kodowania?”| Cursor† | Claude Code | Codex | |
|---|---|---|---|
| Plik instrukcji | .cursor/rules/**/*.mdc; także AGENTS.md w katalogu głównym projektu i w podkatalogach oraz CLAUDE.md (dokumentacja Cursora, 2026-10-12) | CLAUDE.md lub .claude/CLAUDE.md; AGENTS.md, gdy nie ma CLAUDE.md | AGENTS.md w każdym katalogu od korzenia projektu do katalogu roboczego |
| Reguły z zakresem | globs we frontmatterze .mdc | .claude/rules/*.md z frontmatterem paths | Tylko przez katalog: zagnieżdżony AGENTS.md |
| Prywatne, niecommitowane | Nie jest plikiem repozytorium | CLAUDE.local.md (dodaj do .gitignore) | AGENTS.override.md (dodaj do .gitignore) |
| Poziom użytkownika | Ustawienia Cursora | ~/.claude/CLAUDE.md, ~/.claude/rules/ | ~/.codex/AGENTS.md |
| Ustawienia i uprawnienia | Ustawienia Cursora; permissions.json w ~/.cursor/ i w .cursor/ projektu (scalane), sandbox.json dla sandboksa, a od Cursora 3.24 polityka zarządzana AgentRemoteWorkspaceAuthorities, dzięki której administratorzy ograniczają Agenta do zatwierdzonych zdalnych przestrzeni roboczych (dokumentacja i notatki o wydaniach Cursora, 2026-10-12) | .claude/settings.json, .claude/settings.local.json | ~/.codex/config.toml, .codex/config.toml w zaufanym projekcie |
| Serwery MCP | .cursor/mcp.json, ~/.cursor/mcp.json | .mcp.json (zakres projektu) | [mcp_servers.<name>] w config.toml |
| Starsze formaty, nadal czytane | .cursorrules: format przestarzały, a pomoc Cursora pisze, że „will be deprecated”; mechanizm ładowania z @cursor/sdk 1.0.32 stosuje go jako regułę zawsze aktywną | .claude/commands/*.md (nadal działa; dziś część skilli) | tabele [profiles.<name>] (nadal parsowane) |
| Jak sprawdzić, co się załadowało | Zapytaj agenta (prompt niżej) | /context, /doctor prompt-audit | codex debug prompt-input |
† Kolumna Cursora opisuje mechanizm ładowania reguł w agentowym SDK Cursora, @cursor/sdk 1.0.32, oraz dokumentację Cursora (sprawdzoną 2026-10-12); zobacz uwagę niżej.
Cursor: reguły w .cursor/rules/
Dział zatytułowany „Cursor: reguły w .cursor/rules/”Każda reguła to jeden plik .mdc: frontmatter YAML, a pod nim Markdown. Trzy pola frontmattera decydują, kiedy reguła trafia do kontekstu.
---description: "API route conventions for the Next.js App Router"globs: src/app/api/**/*.tsalwaysApply: false---
- Validate every request body with the zod schema in `src/lib/schemas/`.- Call the service layer; never query the database from a route.- Return `{ ok: true, data }` or `{ ok: false, error }` with a matching status code.- Run `npm run test -- src/app/api` before reporting the task complete.Pola są sprawdzane w stałej kolejności; decyduje pierwszy pasujący wiersz:
| Frontmatter | Typ reguły | Kiedy się ładuje |
|---|---|---|
alwaysApply: true | Zawsze | Przy każdym zapytaniu, niezależnie od globs |
Ustawione globs | Zakres plików | Gdy agent pracuje z pasującym plikiem |
Tylko description | Wybierana przez agenta | Gdy agent uzna opis za istotny |
| Żadne z trzech | Ręczna | Tylko gdy sam ją dołączysz |
globs przyjmuje ciąg rozdzielony przecinkami (src/**/*.ts, src/**/*.tsx); działa też lista YAML. Trzymaj jeden temat na plik i nazywaj pliki od tematu (api-routes.mdc, testing.mdc), żeby recenzent z samej listy plików widział, co jest zawsze aktywne. Konfigurację w edytorze opisuje artykuł Reguły projektu w Cursorze.
Claude Code: CLAUDE.md, reguły i ustawienia
Dział zatytułowany „Claude Code: CLAUDE.md, reguły i ustawienia”Gdzie Claude Code szuka CLAUDE.md
Dział zatytułowany „Gdzie Claude Code szuka CLAUDE.md”| Lokalizacja | Zakres | Kiedy się ładuje |
|---|---|---|
Plik polityki zarządzanej (/etc/claude-code/CLAUDE.md na Linuksie, /Library/Application Support/ClaudeCode/CLAUDE.md na macOS) | Każdy użytkownik maszyny; nie da się go wykluczyć | Przy starcie |
~/.claude/CLAUDE.md, ~/.claude/rules/ | Ty, w każdym projekcie | Przy starcie |
./CLAUDE.md lub ./.claude/CLAUDE.md oraz każdy taki plik w katalogu nadrzędnym | Zespół, przez kontrolę wersji | Przy starcie, od korzenia |
./CLAUDE.local.md | Ty, w tym projekcie | Przy starcie |
src/billing/CLAUDE.md (poniżej katalogu roboczego) | Ta część drzewa | Gdy Claude czyta tam plik |
.claude/rules/*.md bez paths | Projekt | Przy starcie |
.claude/rules/*.md z paths | Pasujące pliki | Gdy Claude czyta pasujący plik |
Pliki są sklejane, a nie nadpisywane, więc sprzeczność między dwoma z nich rozstrzyga się przypadkowo. Dokumentacja pamięci Claude Code zaleca, żeby każdy CLAUDE.md miał mniej niż 200 linii. Reguła z zakresem ścieżek wygląda tak:
---paths: - "src/api/**/*.ts"---
- Validate input with the zod schemas in `src/api/schemas/`.- Errors use the `ApiError` class; never return a raw stack trace.Oszczędny projektowy CLAUDE.md zawiera to, czego agent nie wyczyta z kodu: polecenia, granice i pułapki.
@AGENTS.md
## Claude Code only- Use plan mode for any change under `src/billing/`.- Before reporting done: `npm run typecheck && npm run lint && npm test`.Importy @path porządkują długi plik, ale nie oszczędzają kontekstu: zaimportowane pliki ładują się przy starcie razem z plikiem, który je importuje. Blokowe komentarze HTML (<!-- note -->) są usuwane przed wstrzyknięciem, więc notatki dla opiekunów nie kosztują tokenów.
Jak CLAUDE.md współpracuje z AGENTS.md
Dział zatytułowany „Jak CLAUDE.md współpracuje z AGENTS.md”Od v2.1.277 Claude Code czyta AGENTS.md, gdy w katalogu roboczym ani wyżej nie ma CLAUDE.md, .claude/CLAUDE.md ani CLAUDE.local.md. Wersja v2.1.281 rozszerzyła to na Amazon Bedrock, Google Cloud, Foundry, bramy LLM (LLM gateways) i sesje z wyłączoną telemetrią. Wersje starsze niż v2.1.277 czytają wyłącznie CLAUDE.md; oba kanały wydań są już dalej, odkąd stable doszedł do 2.1.287 (sprawdzone 2026-10-12). Claude Code nie czyta AGENTS.local.md, AGENTS.override.md ani niczego w katalogu .agents/ (dokumentacja pamięci Claude Code 2.1.296, 2026-10-12), więc osobisty AGENTS.override.md Codeksa nigdy do niego nie dociera. Ustawienie Project instructions w /config zmienia domyślne zachowanie:
| Wartość | Co czyta Claude |
|---|---|
claude-md-or-agents-md (domyślna) | Pliki CLAUDE.md albo AGENTS.md, gdy CLAUDE.md nie ma |
claude-md-and-agents-md | Oba, w każdym katalogu najpierw CLAUDE.md; plik już zaimportowany nie jest czytany drugi raz |
claude-md | Tylko pliki CLAUDE.md |
managed-only | Przy starcie tylko zarządzany CLAUDE.md i pamięć automatyczna |
Import @AGENTS.md z szablonu powyżej działa w każdym kanale i nigdy nie ładuje pliku dwa razy, dlatego jest bezpiecznym wyborem dla zespołu z różnymi wersjami.
.claude/settings.json: uprawnienia, nie kontekst
Dział zatytułowany „.claude/settings.json: uprawnienia, nie kontekst”Ustawienia określają, co Claude może robić; nie dodają instrukcji. Pierwszeństwo, od najwyższego: ustawienia zarządzane, argumenty wiersza poleceń, .claude/settings.local.json, .claude/settings.json, ~/.claude/settings.json. Klucze listowe, takie jak permissions.allow, łączą się między plikami zamiast się zastępować.
{ "$schema": "https://json.schemastore.org/claude-code-settings.json", "permissions": { "allow": ["Bash(npm run lint)", "Bash(npm run test *)", "Bash(npx tsc --noEmit)"], "deny": ["Bash(git push *)", "Read(./.env)", "Read(./.env.*)"] }}Dwie zasady zaskakują zespoły. Reguły allow z commitowanego pliku działają dopiero wtedy, gdy każda osoba w zespole zaufa folderowi. A auto lub bypassPermissions jako permissions.defaultMode są ignorowane w ustawieniach projektu i lokalnych; działają tylko z ustawień użytkownika, pliku --settings lub ustawień zarządzanych. Skille trafiają do .claude/skills/<name>/SKILL.md; istniejące pliki .claude/commands/*.md dalej działają. Pełny przewodnik znajdziesz w artykułach Konfiguracja Claude Code i System pamięci Claude Code.
Te ustawienia, pola hooków i zmienne środowiskowe pojawiły się lub zmieniły zachowanie w Claude Code od 2.1.284 do 2.1.296. Każdy wiersz podaje wersję, a wszystko od v2.1.293 jest tylko w kanale latest (stable to 2.1.292 na 2026-10-17; sprawdzone z dokumentacją ustawień, hooków i zmiennych środowiskowych Claude Code oraz z jego changelogiem).
| Nazwa | Gdzie ją ustawić | Co robi | Wersja |
|---|---|---|---|
allowedProviders | Ustawienia zarządzane | Ogranicza dostawców API, z których może korzystać maszyna: "anthropic", "bedrock", "vertex", "foundry", "anthropicAws", "mantle", "customEndpoint" lub "gateway". Sesja u dostawcy spoza listy jest odrzucana przy starcie, logowaniu i następnym połączeniu z API. "customEndpoint" jest dopuszczany tylko dla dokładnie tej wartości, którą przypina zarządzany blok env. Brak wartości oznacza dowolnego dostawcę | v2.1.285 |
onFailure | Handler hooka typu command lub http | "continue" (domyślnie) albo "block". Z "block" hook, który nie może wystartować, przekracza limit czasu albo kończy się nieoczekiwanym kodem, blokuje akcję zamiast ją przepuścić | v2.1.295 (latest) |
CLAUDE_CODE_DISABLE_WEB_FETCH | Zmienna środowiskowa | 1 wyłącza narzędzie WebFetch; WebSearch pozostaje dostępne | v2.1.285 |
CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR | Zmienna środowiskowa | Tempo, w jakim odnawia się limit WebSearch w sesji, w wywołaniach na godzinę: domyślnie 100 w sesji interaktywnej, 0 (bez odnawiania) w nieinteraktywnej | v2.1.290 |
CLAUDE_CODE_DISABLE_1M_CONTEXT | Zmienna środowiskowa | 1 wyłącza obsługę kontekstu 1M i utrzymuje modele, które domyślnie mają okno 1M, na 200K. Od v2.1.287 Opus 4.7+ i Fable mają domyślnie 1M na Bedrock, Google Cloud, Foundry i w bramie aplikacji Claude, bez sufiksu [1m] | zmienna jest starsza; jej działanie zmieniło się w v2.1.287 |
CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL | Zmienna środowiskowa | Uruchamia wszystkich agentów workflow na jednym modelu, podczas gdy pozostałe subagenty zachowują swoje | v2.1.296 (latest) |
MCP_PROTOCOL_NEGOTIATION | Zmienna środowiskowa | legacy wyłącza sprawdzanie serwerów pod kątem wersji protokołu MCP 2026-07-28; lokalne serwery (stdio) negocjują ją domyślnie w każdej instalacji od v2.1.292 | zmienna wymaga v2.1.221; domyślne zachowanie dla stdio zmieniło się w v2.1.292 |
CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES | Zmienna środowiskowa | Ogranicza, ile razy Claude Code ponawia żądanie bez strumieniowania, które przekroczyło limit czasu; 0 kończy błędem przy pierwszym przekroczeniu | v2.1.285 |
CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS | Zmienna środowiskowa | Początkowe opóźnienie wycofywania między ponowieniami żądania odrzuconego przez API jako przeciążone (529), zamiast domyślnych 500; pełne milisekundy od 500 do 32000 | v2.1.292 |
CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS | Zmienna środowiskowa | Przy ustawionym CLAUDE_CODE_RETRY_WATCHDOG najdłuższy czas, jaki każde żądanie API spędza na przeczekiwaniu błędów 429 i 529; brak wartości oznacza brak limitu | v2.1.295 (latest) |
Codex: AGENTS.md i config.toml
Dział zatytułowany „Codex: AGENTS.md i config.toml”Jak Codex buduje łańcuch AGENTS.md
Dział zatytułowany „Jak Codex buduje łańcuch AGENTS.md”Codex idzie w górę od katalogu roboczego do korzenia projektu (najbliższego katalogu z .git, chyba że project_root_markers mówi inaczej). Potem czyta po jednym pliku na katalog, od korzenia, i skleja je. W każdym katalogu bierze pierwszy istniejący plik z tej listy:
AGENTS.override.md: prywatny zamiennikAGENTS.mdw tym katalogu. Katalogi nadrzędne nadal się ładują.AGENTS.md.- Każda nazwa z
project_doc_fallback_filenames, po kolei.
Pliki poniżej katalogu roboczego nie są czytane, więc uruchamiaj Codeksa w pakiecie, który zmieniasz (codex --cd packages/api). Globalny ~/.codex/AGENTS.md trafia do modelu jako instrukcje użytkownika i nie wlicza się do limitu projektu. Projekt oznaczony jako niezaufany nie dostarcza żadnego AGENTS.md (od Codex CLI 0.150.0).
Co trafia do config.toml
Dział zatytułowany „Co trafia do config.toml”Codex łączy warstwy config.toml w tej kolejności, późniejsza wygrywa: /etc/codex/config.toml, ~/.codex/config.toml, profil wybrany przez --profile <name> (~/.codex/<name>.config.toml), pliki .codex/config.toml z drzewa projektu, a na końcu flagi -c key=value. Warstwy projektu działają tylko w zaufanym projekcie, więc commitowany .codex/config.toml staje się prawdziwym ustawieniem zespołu, gdy każdy programista zaufa repozytorium. Administratorzy wymuszają ograniczenia w requirements.toml, którego użytkownicy nie mogą nadpisać.
# .codex/config.toml (committed) or ~/.codex/config.toml (personal)
# Leave `model` unset to follow Codex's bundled default; pin a model only when your evals say so.
approval_policy = "on-request" # untrusted | on-request (default) | granular | never
# Permission profiles are beta (Codex CLI 0.138.0 and later).# Built-ins: ":read-only", ":workspace", ":danger-full-access". Do not combine with sandbox_mode.default_permissions = ":workspace"
project_doc_max_bytes = 32768 # default: 32 KiB across all project AGENTS.md filesproject_doc_fallback_filenames = ["CLAUDE.md"] # read CLAUDE.md where a directory has no AGENTS.md
[mcp_servers.playwright]command = "npx"args = ["@playwright/mcp@latest"]W wierszu poleceń Codex CLI od 0.157.1 do 0.162.1 (sprawdzone 2026-10-12) flaga -a przyjmuje tylko on-request i never; untrusted i granular to wartości dla config.toml. Flagę podawaj przed podpoleceniem: codex -a never exec "…". Aktualne nazwy modeli i ustawienia domyślne są w przeglądzie modeli. Pełny zestaw opcji opisują artykuły Konfiguracja Codeksa i AGENTS.md w Codeksie.
Codex od 0.158.0 do 0.162.1 dodał lub zmienił te klucze i funkcje (sprawdzone ze schematem konfiguracji 0.162.1, jego listą funkcji i notatkami do wydań, 2026-10-12):
| Klucz lub funkcja | Plik | Co robi | Wersja |
|---|---|---|---|
daybreak | config.toml | Domyślna preferencja Daybreak dla nowych wątków i tur nieinteraktywnych. Samo daybreak = true nie wystarcza: Daybreak włącza się opcjonalnie przez features.cli_daybreak = true lub --enable cli_daybreak, a /daybreak jest niedostępne, dopóki tego nie zrobisz | 0.161.0 |
features.cli_daybreak | config.toml | Bramka dla Daybreak: w rozwoju, domyślnie wyłączona | 0.161.0 |
audio.microphone_channel | config.toml | Numerowane od jedności kanały mikrofonu do zmiksowania dla wejścia głosowego; brak wartości miksuje wszystkie kanały wejściowe | między 0.157.1 a 0.162.1 |
auto_review.circuit_break_action | config.toml | Czy przerwania bezpiecznika zawierają ustrukturyzowany błąd; tryb strict zapisuje błędy, których starsze klienty mogą nie rozpoznać przy czytaniu wspólnej historii. Domyślnie default | między 0.157.1 a 0.162.1 |
auto_review.conversation_history_max_output_tokens | config.toml | Maksymalna szacowana liczba tokenów na odpowiedź narzędzia historii w automatycznym przeglądzie; domyślnie 4000 | między 0.157.1 a 0.162.1 |
auto_review.experimental_conversation_history_prompt | config.toml | Eksperymentalny zamiennik instrukcji pobierania historii, gdy włączone są narzędzia historii i Apps; pusta wartość używa wbudowanego promptu | między 0.157.1 a 0.162.1 |
tui.mouse_scroll_speed | config.toml | Mnożnik szybkości kółka myszy przy przewijaniu transkryptu; domyślnie 1.0 | 0.162.0 |
allow_mxc | requirements.toml | Wymaganie administratora dla sandboksa MXC w Windowsie | 0.161.0 |
features.write_stdin_approval | config.toml | Zatwierdzanie wejścia terminala dla poleceń działających z podwyższonymi uprawnieniami; stabilna i domyślnie włączona | 0.158.0 |
features.api_key_model_discovery | config.toml | Wykrywanie modeli przy logowaniu kluczem API; stabilna i domyślnie włączona | 0.161.0 |
features.ultrafast_mode | config.toml | Poziom szybkości Ultrafast dla GPT-6 Astra i GPT-6.1 Sol; stabilna i włączona, ale w Codeksie wymaga kwalifikującego się planu (zobacz analizę cen) | między 0.157.1 a 0.162.1 |
tui.prompt_suggestions | config.toml | Usunięty razem z automatycznymi podpowiedziami kolejnych promptów; skasuj go | usunięty w 0.159.0 |
Codex 0.162.0 zachowuje też zakończenia linii CRLF w apply_patch bez dodatkowej zgody, więc funkcji apply_patch_preserve_line_endings już nie ma.
Jak współdzielić jeden zestaw instrukcji między trzema narzędziami?
Dział zatytułowany „Jak współdzielić jeden zestaw instrukcji między trzema narzędziami?”Uczyń AGENTS.md źródłem prawdy: Codex czyta go natywnie, Claude Code go czyta lub importuje, a Cursor czyta go w katalogu głównym projektu i w podkatalogach (dokumentacja Cursora, sprawdzone 2026-10-12). Cursor nie potrzebuje jego kopii w .cursor/rules/; trzymaj ten katalog na reguły, których potrzebuje tylko Cursor. Potem dodaj tylko to, czego potrzebuje konkretne narzędzie.
AGENTS.md # shared: stack, commands, boundaries, done criteriapackages/api/AGENTS.md # package rules; Codex and Cursor read it directlyCLAUDE.md # "@AGENTS.md" plus Claude-only notes (Cursor reads it too).claude/rules/api.md # paths: packages/api/** (Claude's copy of scoped rules).cursor/rules/test-files.mdc # globs: **/*.test.ts (Cursor-only scoping a directory cannot express).codex/config.toml # project_doc_max_bytes, approval policy, MCP serversKopia warstwy wspólnej nie jest potrzebna: Cursor czyta AGENTS.md w katalogu głównym projektu i w podkatalogach, łączy zagnieżdżone pliki z nadrzędnymi (konkretniejsze instrukcje mają pierwszeństwo) i tak samo czyta CLAUDE.md, zawsze go stosując (dokumentacja reguł i pomoc Cursora, sprawdzone 2026-10-12). Regułę .mdc dodawaj tylko dla tego, co dotyczy samego Cursora, na przykład zakresu typów plików, którego nie wyrazi katalog, jak **/*.test.ts, przez globs. Ponieważ Cursor stosuje też CLAUDE.md, pisz notatki tylko dla Claude tak, żeby nie szkodziły w Cursorze.
Wstaw @AGENTS.md w pierwszej linii CLAUDE.md. Gdy w korzeniu jest CLAUDE.md, domyślne ustawienie pomija każdy niezaimportowany AGENTS.md, w tym packages/api/AGENTS.md. Ustaw więc Project instructions na claude-md-and-agents-md (od v2.1.277) albo powiel reguły pakietu w .claude/rules/ z paths.
Bez zmian: AGENTS.md to natywny plik Codeksa. Jeśli repozytorium ma już pliki CLAUDE.md, a nie ma AGENTS.md, ustaw project_doc_fallback_filenames = ["CLAUDE.md"] zamiast je powielać.
Gdy powielone reguły z zakresem zaczną się rozjeżdżać, narzędzie do synchronizacji może generować je z jednego źródła; zobacz narzędzia do synchronizacji reguł.
Jak udowodnić, które instrukcje się załadowały?
Dział zatytułowany „Jak udowodnić, które instrukcje się załadowały?”Czytanie wszystkich plików instrukcji po każdej zmianie się nie skaluje. Sprawdź, co agent faktycznie dostał, pilnuj rozmiaru w CI i daj plikom właściciela.
-
Dodaj linię kontrolną. W każdym pliku umieść krótkie, unikalne zdanie, na przykład
Instruction set: api-rules-2026-09.Kosztuje kilka tokenów, a ładowanie staje się widoczne. -
Sprawdź załadowany kontekst.
Otwórz plik, który reguła powinna objąć, i uruchom prompt z końca tej listy kroków. Każda oczekiwana reguła z zakresem plików musi pojawić się ze swoją linią kontrolną.
Uruchom
/contexti sprawdź, czy każdy oczekiwany plik jest w sekcji Memory files. Od v2.1.283 (oba kanały wydań, stan na 2026-10-12) uruchom/doctor prompt-audit, żeby znaleźć przestarzałe, sprzeczne lub zepsute instrukcje. Polecenie proponuje zmiany i niczego nie zmienia bez twojej zgody.Wygeneruj dokładnie to, co trafia do modelu, z katalogu, w którym pracujesz, i wyszukaj w nim linię kontrolną:
Okno terminala cd packages/apicodex debug prompt-input | grep -c "Instruction set: api-rules-2026-09"0oznacza, że plik został pominięty: projekt oznaczono jako niezaufany, plik leży poniżej katalogu roboczego albo limit wyczerpał się przed nim. -
Pilnuj limitu Codeksa w CI. Skrypt kończy się błędem, gdy dowolny łańcuch od korzenia do liścia przekracza 32 KiB. Uruchamiaj go z korzenia repozytorium. Liczy tylko
AGENTS.override.mdiAGENTS.md; jeśli ustawiaszproject_doc_fallback_filenames, dopisz te nazwy donames, bo inaczej repozytorium oparte naCLAUDE.mdprzejdzie test bez żadnego pomiaru.#!/usr/bin/env bash# Fails when any root-to-leaf instruction chain exceeds Codex's default 32 KiB budget.set -euo pipefaillimit=32768# Names Codex looks for in each directory, in order. If you set# project_doc_fallback_filenames, append those names too, e.g. CLAUDE.md.names=(AGENTS.override.md AGENTS.md)match=(-false)for name in "${names[@]}"; do match+=(-o -name "$name"); donestatus=0while IFS= read -r leaf; dodir=$leaftotal=0while :; dofor name in "${names[@]}"; doif [ -f "$dir/$name" ]; thentotal=$((total + $(wc -c < "$dir/$name")))breakfidone[ "$dir" = "." ] && breakdir=$(dirname "$dir")doneif [ "$total" -gt "$limit" ]; thenecho "over budget: $total bytes in the chain ending at $leaf/"status=1fidone < <(find . \( "${match[@]}" \) -not -path '*/node_modules/*' -exec dirname {} \; | sort -u)exit "$status" -
Wyznacz właściciela. Pliki instrukcji zmieniają zachowanie agenta przy każdym uruchomieniu, więc recenzuj je jak kod. Zmiany zatwierdza tech lead albo właściciel builda, przez
CODEOWNERS:AGENTS.md @your-org/eng-leads**/AGENTS.md @your-org/eng-leadsCLAUDE.md @your-org/eng-leads.claude/ @your-org/eng-leads.cursor/rules/ @your-org/eng-leads.codex/ @your-org/eng-leads
Zastąp @your-org/eng-leads identyfikatorem swojego zespołu. Politykę całej organizacji, której pojedyncze osoby nie mogą nadpisać, umieść w ustawieniach zarządzanych, a nie w repozytorium; zobacz zarządzaną politykę agentów.
Gdy pliki konfiguracji zawodzą po cichu
Dział zatytułowany „Gdy pliki konfiguracji zawodzą po cichu”| Objaw | Przyczyna | Naprawa |
|---|---|---|
| Reguła Cursora ograniczona do tras API działa na każdym pliku | alwaysApply: true ma pierwszeństwo przed globs | Ustaw alwaysApply: false; zostaw globs |
| Reguła Cursora nigdy się nie ładuje | Plik kończy się na .md zamiast .mdc albo leży poza .cursor/rules/ | Zmień nazwę na .mdc w .cursor/rules/ |
Claude Code przestał stosować zespołowy AGENTS.md | Ktoś dodał CLAUDE.local.md lub CLAUDE.md, co wyłącza tryb zapasowy | Dodaj @AGENTS.md na początku CLAUDE.md albo ustaw Project instructions na claude-md-and-agents-md |
Claude Code ignoruje AGENTS.md na jednym laptopie | Ta instalacja jest starsza niż v2.1.277 albo ma wyłączony wbudowany plugin agents-md | Użyj importu @AGENTS.md; działa w każdej wersji |
Claude Code zapomina instrukcję po /compact | Instrukcja padła tylko na czacie albo leży w zagnieżdżonym pliku lub regule z paths, która jeszcze się nie przeładowała | Przenieś ją do głównego CLAUDE.md; zagnieżdżone pliki ładują się ponownie, gdy Claude czyta tam plik |
| Codex ignoruje najnowsze reguły pakietu | Łańcuch przekroczył project_doc_max_bytes; plik na granicy został obcięty, kolejne pominięte | Uruchom skrypt limitu, skróć plik w korzeniu albo podnieś project_doc_max_bytes |
Codex ignoruje packages/api/AGENTS.md | Codex wystartował w korzeniu; pliki poniżej katalogu roboczego nie są czytane | Uruchom Codeksa z --cd packages/api |
Codex ignoruje commitowany .codex/config.toml albo wszystkie projektowe AGENTS.md | Projekt nie jest zaufany albo oznaczono go jako niezaufany | Zaufaj projektowi, gdy Codex zapyta, i ponownie uruchom codex debug prompt-input |
codex -a untrusted kończy się błędem „invalid value” | Od 0.157.1 do 0.162.1 -a przyjmuje tylko on-request i never | Ustaw approval_policy = "untrusted" w config.toml |
AGENTS.override.md Codeksa nie działa w Claude Code | Claude Code nie czyta AGENTS.local.md, AGENTS.override.md ani niczego w .agents/ | Przenieś treść do AGENTS.md albo zaimportuj plik z CLAUDE.md przez @path |
defaultMode: "auto" w .claude/settings.json nic nie zmienia | Ustawienia projektu i lokalne nie mogą ustawić auto ani bypassPermissions | Ustaw auto w ustawieniach użytkownika lub zarządzanych; nigdy nie ustawiaj bypassPermissions poza jednorazowym sandboksem z ograniczonym dostępem do sieci |
Co dalej z konfiguracją agentów
Dział zatytułowany „Co dalej z konfiguracją agentów”- Przycinanie CLAUDE.md i AGENTS.md: zdecyduj, która linia trafia do którego pliku, i zmierz, co zmienia jej usunięcie.
- Ściągawka poleceń: flagi CLI i polecenia slash użyte na tej stronie.
- Instalowanie i zarządzanie skillami: kiedy przepływ pracy należy do skilla, a nie do pliku instrukcji.
- Słownik: terminy wspólne dla trzech narzędzi.
Najczęstsze pytania
Który plik konfiguracyjny czyta każde narzędzie AI do kodowania?
Claude Code czyta CLAUDE.md, a AGENTS.md wtedy, gdy projekt nie ma CLAUDE.md (od v2.1.277, oba kanały wydań, stan na 2026-10-12). Cursor ładuje reguły projektu z .cursor/rules/*.mdc. Codex czyta pliki AGENTS.md od korzenia projektu do katalogu roboczego oraz config.toml z ustawieniami.
Czy Claude Code czyta AGENTS.md?
Tak, od v2.1.277 (oba kanały wydań, stan na 2026-10-12): w projekcie bez CLAUDE.md, .claude/CLAUDE.md i CLAUDE.local.md Claude Code czyta zamiast nich AGENTS.md. Gdy istnieją oba, czyta tylko CLAUDE.md, chyba że w /config ustawisz Project instructions na claude-md-and-agents-md albo dodasz @AGENTS.md na początku CLAUDE.md.
Czy importy w CLAUDE.md zmniejszają zużycie kontekstu?
Nie. Pliki dołączone importem @path ładują się przy starcie razem z CLAUDE.md, który je importuje. Ładowanie odraczają tylko reguły z paths w .claude/rules/, skille i pliki CLAUDE.md w podkatalogach.
Co się dzieje, gdy pliki instrukcji Codeksa przekroczą limit rozmiaru?
project_doc_max_bytes (domyślnie 32 KiB) ogranicza łączny rozmiar projektowych plików AGENTS.md. Z pliku, który przekracza limit, zostaje tylko początek, a każdy kolejny plik jest pomijany. Pliki ładują się od korzenia, więc obcięte zostają najbardziej szczegółowe instrukcje.
Dlaczego reguła Cursora z zakresem działa wszędzie?
W mechanizmie ładowania reguł z @cursor/sdk 1.0.32 alwaysApply: true ma pierwszeństwo przed globs, więc reguła z oboma polami jest zawsze aktywna. Ustaw alwaysApply: false i trzymaj regułę w pliku .mdc: ten mechanizm nie ładuje pliku .md z .cursor/rules/ jako reguły projektu.