Przejdź do głównej zawartości

Współpraca zespołowa: wspólny kontekst i zasady

Dwóch inżynierów w twoim zespole prosi swojego asystenta AI o dodanie nowego endpointu API. Jeden dostaje kontroler z try/catch i własną klasą błędu; drugi — goły asynchroniczny handler, który rzuca surowymi błędami. Układ folderów się różni. Nazewnictwo się różni. Przegląd pull requestu zamienia się w 40-komentarzową debatę o stylu, która nie ma nic wspólnego z tym, czy funkcja działa — bo wasze konwencje żyją w głowach ludzi, a nie w repozytorium.

Rozwiązaniem nie są kolejne komentarze w review. Jest nim przeniesienie standardów do wersjonowanych plików zasad, które AI każdego członka zespołu ładuje automatycznie. Gdy konwencje żyją obok kodu, agent każdego inżyniera generuje kod, który od razu wygląda jak twoja baza kodu.

  • Wersjonowanego pliku zasad dla każdego narzędzia (.cursor/rules/, CLAUDE.md, AGENTS.md), który egzekwuje wasze konwencje dla całego zespołu
  • Gotowego promptu, który tworzy szkic tego pliku zasad na podstawie istniejącego kodu, więc nie piszesz go od zera
  • Procesu zamiany decyzji z code review w trwałe, egzekwowane maszynowo zasady
  • Promptu wdrożeniowego, który nowa osoba wkleja pierwszego dnia, by samodzielnie zmapować bazę kodu
  • Trybów awarii (rozjazd zasad, sprzeczne pliki, rozdęty kontekst) i jak ich unikać

Najważniejszą praktyką dla wyrównania zespołu jest zdefiniowanie standardów projektu we wspólnych, kontrolowanych wersją plikach zasad, które są dostarczane razem z repozytorium. Wszystkie trzy narzędzia czytają pliki instrukcji na poziomie projektu; różni je tylko nazwa pliku i kilka szczegółów działania.

Cursor czyta zasady z katalogu .cursor/rules/ (jeden lub więcej plików .mdc). Zatwierdź ten katalog w repozytorium, aby Cursor każdego członka zespołu pobierał te same zasady. Każdy plik zasad można zawęzić za pomocą frontmatter: alwaysApply: true ładuje go do każdego żądania, a wzorzec globs (np. src/api/**) ładuje go tylko wtedy, gdy w kontekście znajdują się pasujące pliki.

---
description: API conventions
globs: src/api/**
alwaysApply: false
---
- All route handlers live in src/api/<resource>/route.ts
- Wrap handlers in our asyncHandler() from src/lib/http.ts
- Throw AppError (src/lib/errors.ts), never raw Error
- Validate input with the matching Zod schema before any DB call

Gdy te pliki są już zatwierdzone, developer, który sklonuje repozytorium, dostaje konwencje za darmo — jego AI ładuje zasady i od pierwszego promptu generuje kod spójny z istniejącymi wzorcami. O to właśnie chodzi: przeglądy przestają dotyczyć stylu, bo styl jest egzekwowany jeszcze zanim kod powstanie.

Pliku zasad nie piszesz od zera. Pozwalasz AI stworzyć jego szkic na podstawie kodu, który już masz, a potem go edytujesz i zatwierdzasz.

  1. Wygeneruj pierwszy szkic na podstawie bazy kodu. Skieruj agenta na reprezentatywne katalogi i niech wywnioskuje wasze rzeczywiste konwencje — te z kodu, a nie te z wiki, którego nikt nie czyta.

  2. Przejrzyj i wybierz kanoniczny wzorzec. Szkic ujawni niespójności (“dwa style obsługi błędów w src/api”). To jest najcenniejsza część — zdecyduj, który wygrywa, i spraw, by plik zasad nie pozostawiał wątpliwości.

  3. Zatwierdź go pod właściwą nazwą pliku. Zapisz jako .cursor/rules/conventions.mdc, CLAUDE.md lub AGENTS.md zgodnie z zakładkami powyżej (albo wszystkie trzy, opakowując wspólny dokument). Zatwierdź i wypchnij, aby cały zespół dostał to przy następnym pullu.

  4. Kodyfikuj decyzje z review na bieżąco. Plik zasad to żywy dokument. Gdy code review ustanawia nowy standard, nie zostawiaj go w komentarzu do PR-a, gdzie obumrze — dodaj go do pliku zasad w tym samym PR-ze.

Najszybsze wdrożenie to nie starszy developer odpowiadający co kwartał na te same pytania. To nowa osoba, która wkleja prompt i dostaje na żądanie dokładne, świadome zasad oprowadzanie po kodzie. Ponieważ agent czyta zatwierdzone zasady, odpowiedzi odzwierciedlają wasze konwencje, a nie ogólne porady.

Wspólne zasady wyrównują kod; integracje wyrównują ludzi. Najlepiej pasuje tu wielopowierzchniowa konstrukcja Codeksa: łączy się z GitHubem, Slackiem i Linearem, więc agent może działać tam, gdzie twój zespół już rozmawia.

  • Odpowiadaj na pytania o produkt otwarcie. PM pyta na kanale Slacka, jak zachowuje się dana funkcja. Zamiast przełączać kontekst, żeby czytać kod, Codex (połączony z repozytorium i Slackiem) może odpowiedzieć w wątku wyjaśnieniem opartym na kodzie, które widzą wszyscy — zamieniając prywatną wiadomość we wspólną wiedzę zespołu.
  • Wiąż pracę z zadaniami. Dzięki integracjom z GitHubem i Linearem Codex może otworzyć PR z zadania albo podsumować zmianę z powrotem na zgłoszeniu, więc uzasadnienie żyje tam, gdzie śledzona jest praca, a nie w czyimś logu z terminala.

Agent w tle w Cursorze i tryb headless w Claude Code (claude -p "..." w CI) pokrywają stronę automatyzacji: uruchom tego samego, świadomego zasad agenta w pipelinie, aby wychwytywał naruszenia konwencji w każdym PR-ze. Zasada jest identyczna we wszystkich trzech narzędziach — agent jest tylko tak wyrównany, jak zatwierdzone zasady, które czyta, więc plik zasad pozostaje źródłem prawdy.

Plik zasad rozjeżdża się z rzeczywistością. Zespoły piszą plik zasad raz, baza kodu ewoluuje, a pół roku później zasady opisują wzorzec, który porzuciłeś. Uruchamiaj prompt “stwórz szkic pliku zasad z istniejącego kodu” co kwartał i porównuj wynik z zatwierdzonym plikiem — pokaże dokładnie, gdzie rzeczywistość poszła naprzód.

Sprzeczne pliki instrukcji. Główny CLAUDE.md mówi jedno, a zagnieżdżony co innego; AGENTS.override.md po cichu wygrywa z głównym AGENTS.md. Gdy AI ignoruje zasadę, sprawdź, czy nie nadpisuje jej plik o węższym zakresie. Codex łączy pliki w kolejności od katalogu głównego (najbliższy wygrywa); trzymaj nadpisania świadome i udokumentowane.

Plik zasad jest za długi, więc jest ignorowany albo zżera kontekst. 600-linijkowy plik zasad zarówno spala kontekst, jak i grzebie zasady, które się liczą. Codex domyślnie twardo ogranicza się do 32 KiB. Trzymaj plik najwyższego poziomu szczupły i przerzucaj szczegóły do dokumentów, do których się odwołujesz, albo plików o zawężonym zakresie (globs w Cursorze, zagnieżdżone pliki w Codeksie, importy @imports w Claude Code).

Zasady opisują styl, ale nie “dlaczego”. “Użyj AppError” bez uzasadnienia jest przestrzegane niespójnie. Jednolinijkowe uzasadnienia sprawiają, że zasady się przyjmują, i pomagają AI uogólniać je na przypadki, których nie wymieniłeś.

Traktowanie wspólnej pamięci lub wspólnego indeksu jako zamiennika zasad. Cursor utrzymuje semantyczny indeks per projekt (a plany zespołowe pozwalają go współdzielić), ale Claude Code i Codex nawigują w czasie rzeczywistym, bez gotowego wspólnego indeksu — więc nie polegaj na tym, że “AI już zna nasze wzorce”. Zatwierdzone pliki zasad są przenośnym, niezależnym od narzędzia źródłem prawdy. Zobacz poniższe przewodniki o indeksowaniu i pamięci, by dowiedzieć się, co faktycznie utrwala każde narzędzie.