Przejdź do treści

Szablon dla zespołu

Zasady dla agentów AI w zespole: szablon CLAUDE.md i AGENTS.md

Zasady dla agentów AI, które piszą kod (Claude Code, Codex, Cursor, Copilot), działają tylko wtedy, gdy egzekwuje je ustawienie, hook, CI albo test, a nie zdanie w CLAUDE.md. Szablon poniżej ma osiem zakazów z tym, co zatrzymuje każdy z nich, wzorce ustawień do skopiowania i arkusz, który Państwa zespół wypełni w 45 minut.

Pobierzpdf

To, co Państwo wypełnią i zaznaczą, zostaje tylko w tym oknie przeglądarki. Niczego nie zapisujemy ani nie wysyłamy. Po zamknięciu strony zniknie, dlatego proszę wydrukować wynik.

Dla CTO, tech leadów i programistów, których zespół już korzysta z Claude Code, Codex, Cursora lub Copilota. Każdy po swojemu. Ten szablon zamienia to we wspólną warstwę.

Dziś AI pisze cały nasz kod, a za wynik odpowiada senior. Od 2023 roku dostarczyliśmy ponad 15 projektów produkcyjnych. To jest ramka, której w nich używamy.

1. Dlaczego spisane zasady nie wystarczą

Zabraniają Państwo agentowi otwierać plik. Nie otwiera go. Pisze skrypt, który go wypisuje.

To nie złośliwość. Agent dostał zadanie i szuka drogi. Zdanie w prompcie jest dla niego przeszkodą, nie murem. Dlatego każda zasada poniżej ma kolumnę, której brakuje w większości „polityk AI”: co ją naprawdę zatrzymuje.

PoziomCo oznaczaSiła
Tylko zdanieZasada w CLAUDE.md lub AGENTS.md. Agent przestrzega jej przez większość czasu.najsłabsza
Ustawienie lub hookPolecenie zatrzymuje się, zanim się wykona.średnia
CIZmiana nie trafi do głównej gałęzi, dopóki kontrola nie będzie zielona.silna
Lint lub testBuild się wywala, a komunikat mówi dlaczego. Agent go czyta i sam poprawia.najsilniejsza

Zasada złamana dwa razy przestaje być tylko zdaniem. Proszę podnieść ją o poziom.

2. Osiem rzeczy, których agent nie może robić

#Agent nie możeDlaczegoCo go zatrzymuje
1Łączyć się z produkcyjną bazą danychBłędnego zapytania na produkcji nie da się cofnąć. Do diagnostyki wystarczy replika tylko do odczytu lub eksport logów.ustawienie (deny) + osobne dane dostępowe
2Czytać sekretów (.env, klucze, tokeny)To, co agent przeczyta, trafia do kontekstu, do logów, a czasem do commita.ustawienie + sekrety poza repozytorium
3Używać produkcyjnych danych dostępowych do chmuryTen sam powód co przy bazie danych, z większym zasięgiem.ustawienie (deny)
4Uruchamiać deploy lub migracjęTo, czego nie da się cofnąć, przechodzi przez człowieka.ustawienie (ask) + zatwierdzenie środowiska w CI
5Przepisywać historii lub pushować do mainForce-push albo reset --hard po cichu niszczą pracę innych.ustawienie + hook + ochrona gałęzi na serwerze
6Pisać testu, którym jest ocenianyAgent, który pisze własny test, sam sobie wystawia ocenę.kontrola w CI + zasada dla recenzenta
7Recenzować własnej zmianyTen sam model, który pisze i recenzuje, ma te same martwe punkty dwa razy.obowiązkowe zatwierdzenie PR przez człowieka
8Wkładać danych klientów do promptuDane osobowe nie trafiają do narzędzia, którego Państwo do tego nie zatwierdzili.tylko zdanie + umowa w zespole

Przy punkcie ósmym uczciwie piszemy „tylko zdanie”. Dziś nic nie wymusza go mechanicznie. Zasada, która przyznaje się do słabości, jest lepsza niż zasada, która udaje silną.

Ile Państwa zasad to tylko zdanie? To są Państwa dziury.

3. Gdzie trafia która zasada

Agent wczytuje plik z zasadami przy każdym uruchomieniu. Im więcej tekstu, tym gorzej trzyma się tego, co ważne. Dlatego trzy poziomy:

  1. Katalog główny repozytorium: krótki CLAUDE.md lub AGENTS.md. Czym jest to repozytorium, jak uruchomić testy, czego agent nie może robić, jak wygląda skończona praca.
  2. Folder: zasady jednego modułu, w pliku w jego folderze. Wczytują się tylko wtedy, gdy agent tam pracuje.
  3. Lint lub test: najważniejsze zasady. Nikt nie musi ich czytać, same zatrzymują złą zmianę.

Używają Państwo kilku narzędzi? Proszę trzymać zasady w AGENTS.md i odwołać się do nich z CLAUDE.md linią @AGENTS.md. Dwie kopie rozjadą się, zanim ktokolwiek to zauważy.

Struktura plików

CLAUDE.md  lub  AGENTS.md     krótko: repo, polecenia, linki
.claude/
  settings.json               zakazy w formacie maszynowym
  hooks/push-gate.sh          to, czego ustawienia nie potrafią wyrazić
  rules/
    00-nigdy.md               8 zakazów + kolumna "co to wymusza"
    10-zadanie.md             czego zadanie potrzebuje, zanim agent zacznie
    20-kontrole.md            lint, typecheck, testy: blokuje tak/nie
    30-review.md              kto recenzuje i co dostaje
    90-wlasciciel.md          kto odpowiada za zasady i jak dodać nową

4. Wzorce do Państwa repozytorium

Przykłady są dla Claude Code. Zasada (deny, hook, CI, lint) działa także w innych narzędziach, zmienia się tylko składnia.

Zakazy w ustawieniach (punkty 1 do 5)

{
  "permissions": {
    "deny": [
      "Bash(psql:*)",
      "Bash(git push --force:*)",
      "Bash(git reset --hard:*)",
      "Read(.env.prod*)",
      "Read(**/*.pem)"
    ],
    "ask": [
      "Read(**/.env*)",
      "Bash(npx prisma migrate deploy:*)"
    ]
  }
}

Uwaga: reguła porównuje tekst polecenia, nie intencję. Jeśli agent może uruchomić cat, cat .env obchodzi zakaz odczytu. Dlatego sekrety mieszkają poza repozytorium. Skrypty je wczytują i nigdy ich nie wypisują.

Hook przeciw pushowi do main (punkt 5)

#!/bin/bash
# .claude/hooks/push-gate.sh  (PreToolUse, Bash)
# exit 0 = przepuść, exit 2 = zatrzymaj
CMD=$(jq -r '.tool_input.command // empty')
[[ "$CMD" != *"git push"* ]] && exit 0
case "$CMD" in
  *" main"*|*" master"*)
    echo "Push do main jest zabroniony. Proszę otworzyć PR." >&2
    exit 2 ;;
esac
exit 0

Dwa błędy po cichu wyłączają hook. || true po hooku zamienia exit 2 na 0. A 2>/dev/null wyrzuca komunikat, więc agent nie wie, dlaczego się nie udało. Proszę raz przetestować hook naprawdę. Proszę też włączyć ochronę gałęzi na serwerze, bo hook działa tylko tam, gdzie jest zainstalowany.

Testy i review (punkty 6 i 7)

  • Test musi najpierw nie przejść. Na oryginalnym kodzie. Inaczej dowodzi tylko, że agent zgadza się sam ze sobą.
  • Testy do zadania zatwierdza człowiek. CI ostrzega, gdy PR zmienia jednocześnie testy i kod. Decyduje recenzent.
  • Kto napisał, ten nie recenzuje. Proszę uruchomić review w nowym kontekście, najlepiej innym modelem. Dostaje diff i Państwa zasady, nie rozmowę z autorem.
  • CI musi blokować. Pipeline, który tylko informuje, jest dekoracją.

5. Skąd biorą się nowe zasady

Z review. Komentarz, który pojawia się po raz drugi, to nie błąd programisty. To dziura w zasadach.

Ile razyCo zrobić
Pierwszy razPoprawić i iść dalej
Drugi razNapisać zasadę dla agenta
Trzeci razNapisać lint lub test, który sam to wykryje

Jeden warunek: review pisze się w pull requeście, nie tylko ustnie na rozmowie. Review powiedziane na głos nie zostawia niczego, z czego dałoby się wyciągnąć zasadę.

6. Właściciel i pomiar

Zasady bez właściciela w kilka miesięcy się dezaktualizują. Agent nadal ich słucha, nawet gdy już nie obowiązują. Proszę skopiować to do 90-wlasciciel.md:

Właściciel: [imię]
Nowa zasada: PR do .claude/rules/, zatwierdza właściciel.
Porządki: pierwszy poniedziałek miesiąca, 30 minut.
Drabina: złamana dwa razy -> poziom wyżej
  zdanie -> ustawienie lub hook -> CI -> lint
Co miesiąc zapisujemy: ile zasad to wciąż tylko zdanie.

Trzy liczby, które warto śledzić co miesiąc:

  • Komentarze z review na jeden PR. Jeśli zasady działają, spadają.
  • Ile razy kontrola zatrzymała zmianę. I ile razy agent potem sam to poprawił.
  • Ile zasad to wciąż tylko zdanie. To lista zadań na kolejny miesiąc.

Proszę nie mierzyć commitów ani linii kodu. AI napompuje je w sekundę.

7. Arkusz dla zespołu (45 minut)

Proszę go wydrukować, położyć na stole i wypełnić razem.

#Agent nigdyCo to wymusza? (zdanie / ustawienie / CI / lint)Właściciel
1Produkcyjna baza danych, tylko replika lub eksport
2Sekrety poza kontekstem agenta
3Produkcyjne dane dostępowe do chmury
4Deploye i migracje tylko przez człowieka
5Force-push i push do main
6Test, którym jest oceniany
7Recenzja własnej zmiany
8Dane klientów w prompcie
9
10

Jest gotowy, gdy przy każdym wierszu potrafią Państwo powiedzieć, co go wymusza i kto jest właścicielem.

Najczęstsze pytania

Co powinno być w CLAUDE.md albo AGENTS.md?
Krótko: czym jest to repozytorium, jak uruchomić testy, czego agent nie może robić i jak wygląda skończona praca. Zasady jednego modułu trafiają do pliku w jego folderze, a najważniejsze do reguły lint albo testu.
Dlaczego agent nie przestrzega zasady z promptu?
Agent ma zadanie i szuka drogi. Zdanie w prompcie jest dla niego przeszkodą, a nie murem: jeśli zabronią mu Państwo otwierać plik, napisze skrypt, który go wypisze. Dlatego każda zasada w szablonie ma kolumnę z tym, co naprawdę ją zatrzymuje.
CLAUDE.md czy AGENTS.md?
Jeśli zespół używa kilku narzędzi, proszę trzymać zasady w AGENTS.md i odwołać się do nich z CLAUDE.md linią @AGENTS.md. Dwie kopie rozjadą się, zanim ktokolwiek to zauważy.
Skąd biorą się nowe zasady?
Z code review. Komentarz, który pojawia się drugi raz, staje się zasadą dla agenta. Za trzecim razem proszę napisać regułę lint albo test, który wychwyci to sam.

Chcą Państwo ustalić zasady z kimś, kto pracuje z nimi codziennie?

Proszę napisać, jakich narzędzi używa Państwa zespół i co agenci robią źle. Odezwiemy się w ciągu dwóch dni roboczych z kilkoma pytaniami o Państwa pracę. Potem ustalimy, co zrobimy najpierw.