To, co Państwo wypełnią i zaznaczą, zostaje tylko w tym oknie przeglądarki. Niczego nie wysyłamy, dopóki sami Państwo nie poproszą o ocenę e-mailem. Po zamknięciu strony zniknie, dlatego proszę wydrukować wynik.
Dla CTO i tech leadów, których zespół już pisze kod z Claude Code, Codex lub Cursorem. Zasadę w AGENTS.md agent może obejść. Bramki w CI nie. Przykłady są dla GitHub Actions i pnpm. W GitLab CI każda bramka to to samo polecenie w script:.
AI pisze dziś cały nasz kod, a za wynik odpowiada senior. Większość przykładów pochodzi z naszego publicznego repozytorium claude-code-production-starter, gdzie znajdą je Państwo w całości.
1. Które bramki już Państwo mają?
Proszę zaznaczyć tylko to, co naprawdę blokuje scalenie. Bramka, która tylko zgłasza, się nie liczy.
2. Dziesięć bramek z przykładami
Lint blokuje scalenie
Lint, który tylko ostrzega, agent ignoruje. Proszę uruchamiać go w CI i pozwolić mu paść. Wprowadzając nową ostrą regułę do starego kodu, proszę zapisać dzisiejsze naruszenia, a CI niech pada, gdy ich przybędzie.
- run: pnpm lint --max-warnings 0Sprawdzanie typów w trybie strict
Agent chętnie zmienia typ na any, żeby kod przeszedł. Tryb strict i osobny krok w CI to zatrzymają.
# tsconfig.json: "strict": true
- run: pnpm exec tsc --noEmitTesty są obowiązkowe i coś udowadniają
Test, który przechodzi także na gałęzi głównej, niczego nie udowadnia. Zmieniony kod źródłowy potrzebuje zmienionego testu, a ten musi paść na gałęzi głównej i przejść na Państwa. Wyjątek (czysty refaktoring) zatwierdza człowiek etykietą, nie agent.
- name: Zmienione testy padają na base i przechodzą tutaj
if: "!contains(github.event.pull_request.labels.*.name, 'skip-red-proof')"
run: bash scripts/gate.sh red-proof "origin/${{ github.base_ref }}"Zakazane wzorce
Niektóre skróty agentów znajdzie zwykłe wyszukiwanie: .only w teście, wyłączone sprawdzanie typów, wyłączony lint. Proszę sprawić, żeby padały w CI.
- name: Zakazane wzorce
run: "! git grep -nE '(it|test|describe)\\.only\\(|@ts-ignore|eslint-disable' -- src tests"Skan sekretów
Klucz w commicie jest problemem także po usunięciu, bo zostaje w historii. Proszę skanować przed commitem (hook) i w CI.
- uses: actions/checkout@v5
with:
fetch-depth: 0
- run: docker run --rm -v "$PWD:/repo" ghcr.io/gitleaks/gitleaks:latest git /repo --redactStrażnik migracji
Migracji bazy danych nie da się cofnąć tak łatwo jak kodu. PR zmieniający migracje przechodzi tylko z etykietą od człowieka. Uruchomienie migracji produkcyjnej wymaga potwierdzenia w ustawieniach agenta.
- name: Migracje tylko z etykietą
if: "!contains(github.event.pull_request.labels.*.name, 'migration-ok')"
run: "! git diff --name-only origin/${{ github.base_ref }}... | grep -E '(^|/)migrations/'"Kontrola zależności
Agent dodaje pakiet, gdy zadanie go potrzebuje. Proszę sprawdzić, czy nie ma znanej poważnej podatności, i regularnie aktualizować zależności.
- run: pnpm audit --audit-level high
# .github/dependabot.yml: package-ecosystem npm, schedule weeklySzablon PR z sekcją o AI
PR musi mówić, jak zmiana została sprawdzona i czego autor nie zrobił. Reviewer wie wtedy, gdzie patrzeć.
## Jak to zostało sprawdzone
- [ ] gate jest zielony, łącznie z red-proof
- [ ] żaden test nie został osłabiony, pominięty ani usunięty
## Co napisał agent, a co sprawdził autor
<!-- Które części wygenerował agent, co sprawdzili Państwo linijka po linijce. -->
## Czego nie zrobionoZasada review
Zmianę zatwierdza osoba, która jej nie pisała. Zasady dla agentów i CI zmieniają tylko ich właściciele, inaczej agent z czasem poluzuje własne bramki.
# .github/CODEOWNERS
* @twoja-firma/zespol
/.claude/ @twoja-firma/wlasciciel-zasad
/.github/ @twoja-firma/wlasciciel-zasad
/AGENTS.md @twoja-firma/wlasciciel-zasadChroniona gałąź
Wszystko powyżej działa tylko wtedy, gdy gałęzi głównej nie da się obejść. Jedna zbiorcza kontrola ci, obowiązkowy PR, zatwierdzenie przez właściciela kodu i zasady także dla administratorów.
gh api -X PUT repos/TWOJA-FIRMA/REPO/branches/main/protection \
-F 'required_status_checks[strict]=true' -f 'required_status_checks[contexts][]=ci' \
-F 'required_pull_request_reviews[required_approving_review_count]=1' \
-F 'required_pull_request_reviews[require_code_owner_reviews]=true' \
-F enforce_admins=true -F restrictions=nullWięcej narzędzi dla Państwa
12 pytań o zasady dla agentów AI, kontrole w CI i odpowiedzialność. Zobaczą Państwo, gdzie dziś jest zespół.
Zasady w AGENTS.md, bramki CI i hooki, review i pomiar. Cztery tygodnie z przykładami z naszego publicznego repozytorium.