Przejdź do głównej zawartości

Compound Engineering: pętla, wtyczka i dowody

Compound Engineering to metoda firmy Every, a zarazem wtyczka na licencji MIT, dzięki której każda zmiana zostawia agenta lepiej przygotowanego na następną: brainstorm, plan, praca, uproszczenie, review i na końcu compound, czyli zapis wniosku w docs/solutions/, skąd kolejne plany go pobierają. Wersja 3.29.0 to 36 skilli dla Claude Code, Codex, Cursora i innych hostów agentów.

Ten sam błąd wraca trzeci raz w tym kwartale. Ktoś naprawił go w marcu, naprawa była poprawna, a rozumowanie za nią leży w wątku na Slacku, którego nikt nie znajdzie, i w transkrypcie agenta, którego już nie ma. Problemem nie jest sama naprawa, tylko to, że ani twój zespół, ani twój agent jej nie pamięta.

Ta strona jest dla programistów i tech leadów, którzy chcą tej pamięci bez płacenia za nią kontekstem przy każdym zadaniu. Opisuje wtyczkę w obecnym kształcie, jedną funkcję przeprowadzoną przez całą pętlę, sposób sprawdzenia wyniku bez czytania każdej linii i miejsce metody na drabinie autonomii. Jak w ogóle instaluje się i aktualizuje wtyczki, opisuje strona o wtyczkach i marketplace’ach; porównanie z sąsiednimi frameworkami znajdziesz w zestawieniu frameworków pracy z agentami.

  • Sprawdzone polecenia instalacji i aktualizacji dla Claude Code, Codex i Cursora oraz jedną pułapkę kolejności, przez którą aktualizacja zostawia starą wersję
  • Jedną funkcję przeprowadzoną przez sześciokrokową pętlę: co każdy skill zapisuje na dysku i gdzie decyduje człowiek
  • Sposób akceptowania wyniku pętli na podstawie planu, raportu z review i CI zamiast diffa
  • Mapowanie etapów Every na drabinę L0–L5 i miejsce, w którym naprawdę stoi /lfg
  • Cechę konstrukcyjną, od której zależy, czy gromadzone wnioski pomagają agentowi, czy mu szkodzą
  • Pięć promptów do skopiowania, które wykonują kluczowe kontrole metody z wtyczką lub bez niej

README opisuje sześć kroków. Pięć z nich daje zrecenzowaną zmianę; szósty daje system, dzięki któremu następna zmiana jest tańsza.

KrokSkillCo zapisujeEtap cyklu życia
Brainstormce-brainstormPlan z samymi wymaganiami, powstały w interaktywnym Q&APlan
Plance-planTen sam plik planu, rozbudowany do planu gotowego do implementacji, w docs/plans/Projekt
Pracace-workKod i commity; po drodze uruchamia testy i kontrole hostaBudowa
Uproszczeniece-simplify-codePorządki w świeżym diffie pod kątem czytelności i ponownego użyciaTesty
Reviewce-code-reviewReview wielu person względem planu, tylko raport; poprawki nanosi się jawnieTesty
Compoundce-compoundJeden wniosek w docs/solutions/, do tego słownictwo w CONCEPTS.md; wskazanie w pliku instrukcji tylko za twoją zgodąUtrzymanie

Metodą jest strzałka powrotna: ce-brainstorm i ce-plan czytają docs/solutions/ jako podstawę, więc ograniczenie poznane w marcu pojawia się we wrześniowym planie. Every podaje podział czasu: 80% planowanie i review, 20% wykonanie.

Krok compound ma też próg. ce-compound zapisuje wniosek tylko wtedy, gdy zawiera rozumowanie, którego nie niosą już finalny kod, testy, typy, komentarze ani istniejąca dokumentacja, i gdy jego utrata realnie groziłaby powtórką. Jego własny test jest kontrfaktyczny: gdyby dokument zniknął, czy następny inżynier i tak powtórzyłby błąd? Jeśli nie, przebieg niczego nie zapisuje i podaje powód. Rutynowa poprawka nie daje wniosku — i to znaczy, że skill działa.

Zainstaluj Compound Engineering w Claude Code, Codex lub Cursorze

Dział zatytułowany „Zainstaluj Compound Engineering w Claude Code, Codex lub Cursorze”

Wszystkie trzy hosty czytają to samo repozytorium. Marketplace nazywa się compound-engineering-plugin, a wtyczka compound-engineering.

W sesji:

/plugin marketplace add EveryInc/compound-engineering-plugin
/plugin install compound-engineering

Z powłoki lub skryptu:

Okno terminala
claude plugin marketplace add EveryInc/compound-engineering-plugin
claude plugin install compound-engineering@compound-engineering-plugin

Przy aktualizacji najpierw odśwież marketplace. Samo /plugin update czyta zbuforowany snapshot i zostawia starą wersję:

/plugin marketplace update compound-engineering-plugin
/plugin update compound-engineering

Claude Code wyświetla skille wtyczek z prefiksem wtyczki, więc /ce-plan z README widzisz jako /compound-engineering:ce-plan.

Następnie uruchom ce-setup raz w każdym repozytorium (/compound-engineering:ce-setup w Claude Code, $ce-setup w Codex). Skill raportuje, które opcjonalne narzędzia są dostępne, proponuje utworzenie .compound-engineering/config.yaml, sprawdza, czy lokalny plik nadpisań jest w .gitignore, i proponuje dopisanie do pliku instrukcji agenta wskazania na magazyn wiedzy. Jeśli twój katalog docs/ to już śledzona treść, ustaw w tej konfiguracji docs_root, żeby przenieść wszystkie foldery artefaktów pod jeden katalog względny wobec repozytorium.

Ile to kosztuje w kontekście. claude plugin details compound-engineering pokazało dla 3.29.0 w Claude Code 2.1.283 około 2989 tokenów stale obecnych: to lista 36 skilli, którą niesie każda sesja. Główne skille ce-* kosztują około 2,5 tys. tokenów przy każdym wywołaniu, a ce-debug około 5,6 tys. Uruchom claude plugin details przed i po instalacji każdej kolejnej wtyczki dyscyplinującej; dwie nakładające się pętle kosztują podwójnie i walczą o to, która się odpali.

Skalowanie poza jedno repozytorium. Tech leadzi, którzy chcą tych samych reguł w każdym repozytorium, mogą zadeklarować Compound Packs (eksperymentalne): foldery reguł nakazowych, lokalne albo przypięte do refa w gicie, które planowanie wciąga, a review egzekwuje z odwołaniem do pliku reguły. Traktuj pack jak współdzielony kod: właściciel, review, przypięta wersja.

Pętla jest identyczna we wszystkich trzech hostach; różni się tylko prefiks (/compound-engineering: w Claude Code, $ w Codex, w Cursorze forma z menu poleceń). Przykład używa żądania startowego z samego README.

  1. Przeprowadź brainstorm wymagań. Uruchom ce-brainstorm make background job retries safer. Odpowiedz na pytania. Powinien powstać plik planu z samymi wymaganiami w docs/plans/.

  2. Zaplanuj, a potem sam przejrzyj plan. Uruchom ce-plan. Rozbuduje ten sam plik do planu implementacji, opartego na pasujących wnioskach z docs/solutions/. To najważniejsza bramka człowieka: czytasz plan, a nie kod, którego jeszcze nie ma. Użyj promptu do review planu poniżej.

  3. Pracuj. Uruchom ce-work. Implementuje plan, uruchamia testy i sprawdzanie typów projektu i commituje. Uruchamiaj go na gałęzi albo w git worktree, nigdy na main.

  4. Uprość i zrecenzuj. Uruchom ce-simplify-code, a potem ce-code-review. Review to sam raport: uwagi są uszeregowane według poziomu pewności i nic nie zostanie naniesione, dopóki o to nie poprosisz.

  5. Zapisz wniosek (compound). Gdy zmiana jest zweryfikowana, uruchom ce-compound. Albo zapisze jeden wniosek w docs/solutions/, albo zgłosi, że nic nie przekroczyło progu.

  6. Utrzymuj magazyn. Raz na kwartał, albo gdy plany zaczynają cytować nieaktualne rady, uruchom ce-compound-refresh. Każdy wniosek dostaje jeden werdykt: Keep, Update, Consolidate, Replace albo Delete. Zwykły przebieg ocenia tylko poprawność i nigdy nie usuwa poprawnego dokumentu; przebieg usuwający dokumenty, które kod już wyjaśnia, działa tylko na twoją prośbę i po potwierdzeniu.

Jak zweryfikować wynik pętli bez czytania każdej linii?

Dział zatytułowany „Jak zweryfikować wynik pętli bez czytania każdej linii?”

Pętla daje cztery dowody i razem zastępują one czytanie diffa w większości zmian.

  • Plan jako specyfikacja. Kryteria akceptacji zatwierdzone w kroku 2 są miarą dla reszty przebiegu. ce-code-review recenzuje względem tego planu, a nie względem gustu.
  • Raport z review. Uwagi mają dyskretny poziom pewności, a nie wynik liczbowy. Zgodność kilku person podnosi pewność tylko wtedy, gdy działały w osobnych kontekstach (zob. zasady niżej).
  • Testy i CI. ce-work uruchamia kontrole hosta po drodze, ce-test-browser sprawdza interfejs, a /lfg obserwuje CI aż do rozstrzygnięcia, z ograniczoną pętlą napraw.
  • Pozostałości na piśmie. W /lfg każda uwaga, której przebieg nie naprawił, trafia do opisu pull requesta albo raportu końcowego, więc to, czego nie zrobiono, jest jawne.

Merge nadal zatwierdza człowiek i nadal czyta kod w klasach zmian, w których błędna linia dużo kosztuje: uwierzytelnianie, pieniądze, schemat i migracje danych. Tę listę definiuje strona dowody zamiast diffów, a kolejność triażu podaje code review PR-a agenta.

Przewodnik Every opisuje drabinę etapów od 0 do 5, pokazującą, jak zmienia się sposób pracy jednego programisty. Ten serwis używa jednej drabiny dojrzałości, L0–L5 dla każdej pętli, więc poniżej mapowanie. To pomoc w czytaniu materiałów Every, nie równoważność; jedna mapa traktuje etapy Every jako osobny model. Etapy Every służą do czytania materiałów Every; drabina służy do określania, gdzie jest pętla.

Etap Every (przewodnik, lektura 2026-08-24)Co robi programistaPoziom drabinyCo rozstrzyga
0Pisze każdą linięL0, ręcznieKod agenta nie trafia na dysk
1Pyta model czatowy i wkleja to, co przydatneL1, wspomaganieCzłowiek prowadzi i czyta linia po linii
2Używa agenta z dostępem do plików i zatwierdza każdą akcjęL2, paraCzłowiek steruje na żywo
3Uzgadnia szczegółowy plan, odchodzi, dostaje pull requestL3, menedżer reviewAgent działa bez nadzoru; człowiek czyta każdy diff
4Opisuje rezultat; agent bada, planuje, buduje, sam się recenzuje i otwiera pull requestL3 lub L4L4 tylko wtedy, gdy merge opiera się na zatwierdzonym planie, testach i dowodach z review, a nie na czytaniu diffa
5Kieruje kilkoma agentami równolegle, skądkolwiekBrak własnego poziomuRównoległość zwiększa przepustowość; każda pętla nadal jest na L3 lub L4. L5 wymaga merge’y, których nikt nie czytał, a tego nie opisuje żaden etap

Gdzie jest /lfg. /lfg automatyzuje etap 4 Every: po ce-brainstorm planuje, pracuje, upraszcza, recenzuje i nanosi kwalifikujące się poprawki, zapisuje trwały wniosek, jeśli taki powstał, uruchamia testy w przeglądarce, commituje, pushuje, otwiera pull request i obserwuje CI. Nie robi merge’a, chyba że pozwolisz na to w danym przebiegu, a bez zdalnego repozytorium git kończy na lokalnych commitach. Na drabinie to maszyneria pętli L4, a nie dowód, że nią jest. Jeśli potem czytasz cały diff na 40 plików przed merge’em, pętla jest na L3 z dodatkową automatyzacją. Domyślnie nigdy nie osiąga L5, bo merge zostaje przy człowieku.

Może. Najbardziej bezpośrednie badanie repozytoryjnych plików kontekstu, Gloaguen i in. z ETH Zurich (Evaluating AGENTS.md, arXiv, 2026), wskazuje, że takie pliki na ogół nie poprawiają skuteczności zadań, a podnoszą koszt inferencji. Strona o przycinaniu CLAUDE.md i AGENTS.md podaje liczby z badania i opisuje zwrot dostawców w połowie 2026 roku w stronę usuwania kontekstu zamiast dopisywania. Metoda, która mówi „zapisuj każdą lekcję”, musi na to odpowiedzieć.

Odpowiedź wtyczki to jedna cecha: pobierane, a nie ładowane zawsze.

  • docs/solutions/ to magazyn pobierany. Wnioski leżą na dysku, a ce-plan sięga tylko po te pasujące do pracy. Czterysta wniosków nie dokłada nic do kontekstu ładowanego zawsze; zadanie płaci tylko za tych kilka, które pobierze.
  • CLAUDE.md i AGENTS.md są ładowane zawsze. Za każdą linię płacisz w każdym zadaniu. ce-compound edytuje plik instrukcji tylko po to, by dodać wskazanie na magazyn, tylko w trybie interaktywnym i tylko za twoją zgodą. Nigdy go nie tworzy.

Dwa mechanizmy nie pozwalają, by magazyn stał się tym samym problemem w innym folderze: próg przy zapisie i ce-compound-refresh później.

CONCEPTS.md w repozytorium to słownik, który opiekunowie prowadzą dla własnych agentów. Cztery z jego zasad dobrze się uogólniają poza tę wtyczkę.

Dwóch recenzentów w jednym kontekście to nie dwóch świadków. Niezależność to cecha kontekstu wykonania, w którym działał recenzent, a nie perspektywy, którą przyjął. Jeśli każesz jednemu agentowi zrecenzować kod „jako ekspert od bezpieczeństwa, potem od wydajności, potem jako architekt”, trzy zestawy uwag dzielą jedno odczytanie diffa i jeden zestaw pomyłek. Tylko osobno uruchomione konteksty uprawniają do podniesienia pewności, a gdy uruchomienie się nie uda, przebieg raportuje, jakie pokrycie stracił.

Tożsamość modelu to paragon, nie zamówienie. Gdy review trafia do innego dostawcy modeli po drugą opinię, wtyczka zapisuje raport serwującego backendu o tym, który model faktycznie działał, obok modelu, o który prosiła. Wyniki bez takiego paragonu są oznaczane jako zamówione, ale niezweryfikowane. Potok wielomodelowy, który ufa parametrowi żądania, nie wykryje cichego przełączenia na inny model.

Hosty obcinają treść skilli od końca, po cichu. Każdy znany limit hosta zachowuje początek treści skilla i odrzuca resztę, a żaden nie zgłasza błędu. Kolejność jest więc nośna: wtyczka umieszcza na górze cel, warunek ukończenia i reguły zatrzymania, a mechanikę każdej fazy ładuje z pliku referencyjnego w chwili działania. Rób tak samo we własnych skillach i długich plikach instrukcji.

Instrukcje w chwili działania wygrywają z wnioskiem. Agent ładuje instrukcje skilla albo główny plik instrukcji wtedy, gdy działa, więc wniosek, który im przeczy, nie jest tylko nieaktualny — w praktyce zostaje zignorowany. Rozwiązuj sprzeczność tam, gdzie agent czyta, i traktuj konflikt w tym miejscu jako pilniejszy niż nieaktualna ścieżka.

Co się psuje w Compound Engineering i jak z tego wyjść?

Dział zatytułowany „Co się psuje w Compound Engineering i jak z tego wyjść?”

Aktualizacja nic nie zmieniła. Uruchomiłeś /plugin update bez odświeżenia marketplace. Wyjście: uruchom polecenie odświeżenia dla swojego hosta z zakładek instalacji, zaktualizuj ponownie i sprawdź wynik przez claude plugin details compound-engineering w Claude Code albo codex plugin list -m compound-engineering-plugin w Codex.

Wnioski powstają, ale nikt ich nie czyta. Magazyn istnieje, ale plik instrukcji nigdy na niego nie wskazuje, więc plany się na nim nie opierają. Wyjście: uruchom powyższy prompt o osiągalności, a potem przyjmij propozycję ce-setup, by dopisać wskazanie na magazyn wiedzy.

Magazyn sam sobie przeczy. Dwa dokumenty o tym samym podsystemie mówią co innego, a agent pierwszy znajduje ten nieaktualny. Wyjście: uruchom ce-compound-refresh dla tego obszaru i zaplanuj go cyklicznie, zamiast czekać na następną sprzeczność.

Wniosek przeczy plikowi instrukcji. W chwili działania wygrywa plik instrukcji, niezależnie od tego, kto ma rację. Wyjście: ustal, której wersji trzyma się obecny kod, i popraw przegrany plik. Skill odświeżania zgłasza błędny plik instrukcji, ale go za ciebie nie edytuje.

Review planu znika pod presją terminu. Podział 80/20 po cichu się odwraca i wracasz do recenzowania dużych diffów z planów, których nikt nie czytał — to ta sama kolejka review, którą opisują fabryki oprogramowania. Wyjście: uczyń prompt do review planu obowiązkowym krokiem przed ce-work, a plany z werdyktem SPLIT dziel.

/lfg działa z szerokimi uprawnieniami na twoim laptopie. /lfg jest zbudowany tak, by nie czekać, i zatrzymuje się tylko przed nieodwracalnymi akcjami, na które nie pozwoliłeś. Wyjście: uruchamiaj go w worktree albo w jednorazowym sandboksie z ograniczoną siecią i tokenem git ograniczonym do jednego repozytorium. Nigdy nie łącz go z --dangerously-skip-permissions poza takim sandboksem; zobacz sandboksy dla agentów.

Efekt procentu składanego jest deklarowany, nie mierzony. Żaden opublikowany pomiar nie pokazuje zwrotu z tej pętli. Wyjście: zmierz go we własnym repozytorium. Policz, ile razy na kwartał ktoś ponownie tłumaczy tę samą konwencję albo od nowa diagnozuje tę samą awarię, i sprawdź, czy liczba spada, odkąd magazyn istnieje. Jeśli nie spada, pętla działa, ale nic się nie kumuluje.

To złe narzędzie. Przy prototypach do wyrzucenia, repozytoriach bez runnera testów albo zespołach, w których nikt nie przejrzy tego, co pisze ce-compound, ceremonia nie daje żadnego sygnału. Użyj lżejszego pakietu dyscypliny albo żadnego; alternatywy są w zestawieniu frameworków.