Przejdź do głównej zawartości

Jedna mapa: drabina autonomii, cykl życia i stacje fabryki

Jedna mapa łączy trzy osie w jednej siatce. Dojrzałość to drabina autonomii, od poziomu 0 do poziomu 5, mierzona dla każdej pętli osobno. Proces to sześć etapów cyklu życia, od planu (plan) do utrzymania (maintain). Możliwości to sześć stacji fabryki, od intencji do wydania. Każda komórka wskazuje dowody, które pętla musi wytworzyć, zanim wolno jej działać na danym poziomie.

Twoja mapa wdrożenia mówi „fala 3”, scorecard CTO mówi „poziom 2”, prezentacja dostawcy mówi „w okolicach L3”, a przewodnik compound engineering mówi „etap 2”. A potem zarząd pyta: na jakim poziomie jesteśmy? Cztery liczby, cztery definicje i żadna nie mówi, która praca może się zmergować bez czytania jej przez człowieka. Ta strona je uzgadnia: jeden słownik dla dojrzałości, procesu i możliwości oraz mapa z każdego starszego schematu w tym serwisie z powrotem do niego.

  • Programista: jakie dowody twoja pętla musi wytworzyć na każdym etapie, zanim przestaniesz czytać jej diffy.
  • Tech lead: rejestr pętli do skopiowania i reguła awansowania albo degradowania pętli na podstawie dowodów, a nie pewności siebie.
  • CTO: definicja metryki poziomu zespołu i organizacji, której nie da się uśrednić do liczby na pokaz, oraz klasy ryzyka, które stoją obok poziomów, a nie w ich środku.
  • Zarząd: jedno zdanie do raportowania wyżej („udział zmergowanych zmian wytworzonych na poziomie 4 lub wyższym, razem z ich wskaźnikiem awarii”) i lista zewnętrznych modeli, które nie są tym samym.

Każda oś odpowiada na inne pytanie inną jednostką, a pomylenie jednostek zaczyna większość sporów o dojrzałość.

OśNa jakie pytanie odpowiadaWartościCzego dotyczyStrona kanoniczna
DojrzałośćKto czyta co, zanim zmiana się zmerguje?L0 Ręcznie · L1 Z pomocą · L2 W parze · L3 Menedżer review · L4 Menedżer specyfikacji · L5 Ciemna fabrykaJednej pętliDrabina autonomii
ProcesNa jakim etapie życia zmiany jesteśmy?Plan · design · build · test · deploy · maintainJednego etapu cyklu życiaAI-native cykl życia
MożliwościJaka maszyneria pozwala przejść ten etap bez człowieka?Intencja · harness · pętla · graf · weryfikacja · wydanieJednej stacji fabrykiPoziom 5: sześć stacji

Pętla to powtarzalna klasa zmian z własnym wyzwalaczem, wyrocznią i warunkiem stopu: podbicia zależności, naprawa niestabilnych testów, praca nad funkcjami w serwisie checkout, migracje schematu. Poziom należy do pętli, nie do firmy: pętla podbijania zależności z deterministycznym sprawdzeniem może działać na poziomie 4, podczas gdy praca nad funkcjami obok niej jest na poziomie 2, i obie odpowiedzi są jednocześnie prawdziwe.

Sześć poziomów drabiny pochodzi od Dana Shapiro, „The Five Levels: from Spicy Autocomplete to the Dark Factory” (styczeń 2026); krótkie nazwy pochodzą od tego serwisu. Shapiro umieszcza większość programistów AI-native na poziomie 2 i pisze, że prawie wszyscy zatrzymują się na poziomie 3. Dlatego w większości zespołów większość komórek poniższej siatki leży w tych dwóch kolumnach.

Drzewa narzędzi (Claude Code, Codex, Cursor) są zorganizowane według dziewięciu węzłów zadań. To nawigacja, a nie czwarta oś, i każdy węzeł da się przypisać do osi procesu i możliwości:

Węzeł zadań w drzewach narzędziEtap cyklu życiaStacje, które głównie opisuje
Quick startKonfiguracja, przed cyklem życiaIntencja, harness
PlanPlan, designIntencja
BuildBuildHarness, pętla, graf
TestTestWeryfikacja
ShipDeployWeryfikacja, wydanie
OperateMaintainPętla, wydanie
AutomateOd build do maintainPętla, graf, wydanie
TeamPrzekrojowo (wspólne reguły i ludzie)Intencja
ReferenceBrakBrak

Siatka: jakich dowodów wymaga każdy poziom na każdym etapie?

Dział zatytułowany „Siatka: jakich dowodów wymaga każdy poziom na każdym etapie?”

Wiersze to etapy cyklu życia; każdy wiersz wskazuje stacje, które wytwarzają jego dowody. Kolumny to poziomy drabiny. Komórka to dowód, który musi istnieć, a od poziomu L4 wzwyż musi go wytworzyć maszyna, zanim pętla może twierdzić, że działa na tym poziomie na tym etapie. L0 i L1 pominięto: tam dowodem jest człowiek, który napisał lub zaakceptował każdą linię.

Etap (stacje)L2 W parzeL3 Menedżer reviewL4 Menedżer specyfikacjiL5 Ciemna fabryka
Plan (intencja)Intencja żyje w prompcie i w głowie programistySpisane zadanie z kryteriami akceptacji w zgłoszeniuZacommitowany intent.md albo specyfikacja z kryteriami akceptacji sprawdzalnymi maszynowo, zaakceptowana przez wskazanego właściciela przed uruchomieniemIntencje przychodzą z kolejki (tracker, alert, incydent) i każda niesie własną wyrocznię; właściciel podpisuje intencję, nie kod
Design (intencja, graf)Ustalany na żywo w sesjiPlan przejrzany w trybie planowania przed startem implementacjiZacommitowane spec.md i plan.md; ograniczenia architektury zapisane jako reguły albo fitness functions, których agent nie może edytowaćDekompozycja działa jako wersjonowany workflow; zmiana designu poza uzgodnionymi ramami eskaluje do człowieka
Build (harness, pętla, graf)Człowiek śledzi każdą edycję i odpowiada na prośby o uprawnieniaAgent pracuje bez nadzoru w worktree albo sandboksie; dowodem jest diff plus lokalny przebieg testówJawny tryb uprawnień i sandbox dla danego typu przebiegu, warunek stopu oceniany przez maszynę i limit ponowieńPrzebiegi wyzwalane zdarzeniami, bez próśb o zatwierdzenie; konfiguracja harnessu jest wersjonowana i przeglądana jak kod
Test (weryfikacja)Testy, które człowiek pisze albo czytaCI jest zielone, a człowiek czyta diff razem z testamiWyrocznia poza zasięgiem agenta (chronione testy, testy akceptacyjne ze specyfikacji) i pakiet dowodów dołączony do pull requestaSiła wyroczni jest mierzona, a nie zakładana; liczba rund CI jest ograniczona; sama fabryka ma evale
Deploy (weryfikacja, wydanie)Człowiek merguje to, co napisał razem z agentemCzłowiek zatwierdza merge po przeczytaniu każdego diffaDecyzja o merge opiera się na pakiecie dowodów i klasie ryzyka; kod czyta się tylko w klasach, które tego wymagająKlasy niskiego ryzyka mergują się automatycznie według reguły; progressive delivery z automatycznym rollbackiem po przekroczeniu progu SLO
Maintain (pętla, wydanie)Ludzie obserwują produkcjęAgent robi triage na żądanie; poprawkę prowadzi człowiekPrzebiegi planowe albo wyzwalane zdarzeniami otwierają pull requesty z alertów, z sygnałami z produkcji w dowodachNaruszenie pasma kontrolnego zapisuje następną intencję, a każdy incydent dodaje przypadek do wyroczni

Czytaj siatkę wierszami, nie kolumnami. Pętla jest na najniższym poziomie, który obsługuje którykolwiek z jej etapów. Pętla z wierszem testu na L4 i wierszem deployu na L3 jest pętlą L3, bo człowiek nadal czyta każdy diff przed merge.

Strony kanoniczne dla komórek to dowody zamiast kodu (co czyta człowiek na L4), pakiet dowodów (co musi nieść pull request), siła wyroczni (jak mocny jest wiersz testu) i progressive delivery (wiersz deployu na L5).

Zespół nie ma poziomu. Ma rozkład: udział zmergowanych zmian wytworzonych przez pętle na każdym poziomie. Przyjmij tę definicję w takiej postaci.

PoleDefinicja
JednostkaJeden zmergowany pull request (albo zestaw zmian), oznaczony pętlą, która go wytworzyła
Poziom zmianyPoziom, na którym była pętla w dniu merge, ustalony testem dowodów z następnej sekcji, a nie deklaracją
OknoKroczące 30 dni dla zespołów; kwartał dla organizacji
Poziom zespołuUdział zmergowanych zmian na L0–L2, L3, L4 i L5 w oknie
Poziom organizacjiTen sam rozkład dla wszystkich zespołów plus liczba pętli na L4 lub wyżej
Sparowana miara stabilnościChange failure rate (albo odsetek revertów) dla każdego poziomu, w tym samym oknie
ZakazaneUśrednianie poziomów do jednej liczby („poziom 3,4”) albo raportowanie najlepszej pętli jako poziomu zespołu

Sparowana miara stabilności nie jest opcjonalna. Raport DORA 2025 (Nathen Harvey i Derek DeBellis, Google Cloud, 23 września 2025) stwierdził „a positive relationship between AI adoption on both software delivery throughput and product performance” i jednym tchem dodał: „However, AI adoption does continue to have a negative relationship with software delivery stability.” Rozkład, który przesuwa się w prawo, podczas gdy awarii przybywa, nie jest postępem.

Przykładowy zespół, ilustracyjny, nie zmierzony:

PętlaPoziomZmergowane PR, 30 dniUdział
Podbicia zależnościL46030%
Naprawa niestabilnych testówL42010%
Funkcje w checkoutL38442%
Migracje schematu (klasa krytyczna, zawsze czytane)L3126%
Integracja z dostawcą płatnościL22412%

Zdanie do raportu brzmi: „Checkout: 40% zmergowanych zmian na L4, 48% na L3, 12% na L2, obok change failure rate dla każdego poziomu”. Zespół nie jest „na poziomie 3”. Prowadzi dwie pętle L4, a następna decyzja o awansie dotyczy jednej nazwanej pętli, nie zespołu.

Wyeksportuj zmergowane pull requesty z ostatnich 30 dni za pomocą GitHub CLI, w terminalu, z katalogu głównego repozytorium:

Okno terminala
# GNU date (Linux); na macOS użyj: date -v-30d +%F
SINCE=$(date -d '30 days ago' +%F)
gh pr list --state merged --search "merged:>=$SINCE" --limit 1000 \
--json number,title,labels,author,headRefName,files,commits,reviews,mergedBy,mergedAt,body > merged-prs.json
# Odchudź eksport: surowy plik to jedna linia JSON, często kilka MB, której
# narzędzie do czytania plików nie przewinie fragmentami.
jq '[.[] | {number,title,labels:[.labels[].name],author:.author.login,branch:.headRefName,
files:[.files[].path],commits:[.commits[]|{headline:.messageHeadline,body:.messageBody,
authors:[.authors[]|{login,name}]}],reviews:[.reviews[]|{author:.author.login,state}],
mergedBy:.mergedBy.login,body}]' merged-prs.json > prs-slim.json

Zapisz poniższy prompt jako prompts/level-distribution.txt i uruchom go w trybie tylko do odczytu w swoim narzędziu. --tools "Read" usuwa wszystkie pozostałe narzędzia Claude Code; w Codeksie profil uprawnień :read-only (beta) zastępuje starszą flagę --sandbox i nie wolno łączyć obu mechanizmów:

Okno terminala
claude -p "$(cat prompts/level-distribution.txt)" --tools "Read" > level-distribution.md

Dlaczego klasa ryzyka nie jest poziomem dojrzałości?

Dział zatytułowany „Dlaczego klasa ryzyka nie jest poziomem dojrzałości?”

Poziom opisuje pętlę. Klasa ryzyka opisuje pojedynczą zmianę. Odpowiadają na różne pytania, a ich pomieszanie daje najgorszą awarię opisaną na tej stronie: „jesteśmy na poziomie 4, więc agent może zmergować zmianę w uwierzytelnianiu”.

Klasa ryzykaTypowe zmianyCzy może się zmergować na samych dowodach?Kto podpisuje
NiskaDokumentacja, teksty, narzędzia wewnętrzne, podbicia zależności w wersji patch z zielonymi testami kontraktowymiTak, w pętlach L4; według reguły w pętlach L5Właściciel pętli, przez regułę
ŚredniaLogika funkcji za flagą, zmiany wewnętrznego APITak, gdy człowiek przeczyta pakiet dowodówRecenzent dowodów
WysokaKontrakty publicznego API, zmiany modelu danych, ścieżki krytyczne dla wydajności, każda zmiana testów albo konfiguracji CINie: dowody plus człowiek czytający wrażliwe ścieżkiWłaściciel kodu
KrytycznaUwierzytelnianie, przepływ pieniędzy, migracje schematu na danych produkcyjnych, sekrety i uprawnienia, harness samego agentaNie: człowiek czyta kod, a wdrożenie wymaga osobnego zatwierdzeniaWskazany właściciel i drugi zatwierdzający

Klasa ogranicza to, co poziom może zrobić z daną zmianą. Pętla L5, która otwiera pull request klasy krytycznej, eskaluje go dokładnie tak, jak zrobiłby to zespół na L2. Zmiany testów i CI są celowo w klasie wysokiej: to one są wyrocznią, a agent, który edytuje własną wyrocznię, zamienił sprawdzenie w sugestię. Polityka przypisywania klas jest opisana w governance i autonomii; lista zmian, przy których ktoś nadal czyta kod, jest w dowodach zamiast kodu.

Jak udowodnić, że pętla jest na deklarowanym poziomie?

Dział zatytułowany „Jak udowodnić, że pętla jest na deklarowanym poziomie?”

Poziom to twierdzenie o dowodach, więc da się je sprawdzić bez czytania kodu. Przeprowadź ten audyt przed awansem pętli i potem raz na kwartał.

  1. Wylosuj próbkę. Wybierz losowo 10 zmergowanych pull requestów z pętli z ostatniego okna.
  2. Sprawdź dowody dla deklarowanego poziomu. Dla L3 każdy ma zatwierdzenie człowieka po przeglądzie diffa. Dla L4 każdy niesie pakiet dowodów, jego testy i pliki CI są nietknięte (albo zatwierdzone przez właściciela kodu), a przebieg zapisał warunek stopu. Dla L5 każdy zmergował się według reguły bez zatwierdzenia człowieka, a ścieżka rollbacku zadziałała co najmniej raz w ćwiczeniu.
  3. Odpowiedz na cztery pytania rejestru autonomii z fabryk oprogramowania: jaka wyrocznia decyduje, że gotowe, czy agent może ją oszukać, po jakim czasie wychodzi zła odpowiedź i jaki jest zasięg szkód.
  4. Porównaj stabilność. Change failure rate albo odsetek revertów pętli w oknie nie może być gorszy niż na poprzednim poziomie.
  5. Zapisz werdykt w rejestrze pętli z datą i próbką, a awans niech podpisze tech lead.

Nieudane sprawdzenie degraduje pętlę; nie otwiera dyskusji. Awanse podpisuje tech lead, a CTO odpowiada za politykę klas ryzyka.

Artefakt, który czyni to powtarzalnym, to rejestr pętli, jeden plik na repozytorium:

# loops.yaml: one entry per repeatable class of change
- loop: dependency-bumps
owner: platform-team
trigger: Renovate pull request opened
stages: [build, test, deploy]
level: L4
oracle: required CI jobs defined outside the paths the agent may write
agent_can_edit_oracle: false
time_to_surface_wrong_answer: minutes in CI, hours in canary
blast_radius: one service, reversible by revert
merge_on_evidence: [low]
escalate_to_code_reading: [high, critical]
last_audit: 2026-09-26, 10 of 10 PRs carried an evidence bundle
next_transition:
to: L5
exit_criterion: auto-merge for the low class with canary rollback, 60 days without a loop-caused revert
- loop: checkout-feature-work
owner: checkout-team
trigger: ticket moved to Ready with acceptance criteria
stages: [plan, design, build, test, deploy]
level: L3
oracle: unit and integration tests in the same repository (agent-editable)
agent_can_edit_oracle: true
merge_on_evidence: []
next_transition:
to: L4
exit_criterion: acceptance tests generated from the spec and protected by CODEOWNERS; evidence bundle required by CI

Ten serwis prowadził kiedyś kilka systemów numeracji obok siebie. Zostały wycofane i każdy wraca do jednej osi mapy. Jeśli trafisz na któryś w starej zakładce albo w wewnętrznej prezentacji, przetłumacz go tą tabelą.

Wycofany schematCo opisywałCo go zastępujeGdzie o tym czytać
Fale 0–5Wdrożenie w repozytorium w stałych falachPrzejścia po drabinie, jedna pętla narazMapa wdrożenia
Tygodnie 1–8, „Miesiąc 2+”Kalendarz nauki programistyKroki ścieżki z kryteriami wyjściaŚcieżka dewelopera
Tygodnie 1–12, „Miesiąc 4+”, „Phased Enterprise Rollout”Kalendarz wdrożenia w organizacjiBramki stop/go zapisane jako przejścia po drabinie dla każdej pętliMapa drogi dla organizacji
Adoption Curve, Phase 0, modele według wielkości organizacjiKto wdraża pierwszy i w jakiej kolejnościPrzejścia po drabinie plus zaprojektowany pilotażProjekt pilotażu
Fazy 1–4Lista kontrolna migracji narzędziaNienumerowane kroki migracjiPrzewodnik migracji
„Tier 2 / Tier 3”Agenci równolegli, potem przebiegi nocneL3 (agenci równolegli, człowiek czyta każdy diff) oraz L4–L5 (przebiegi bez nadzoru)Równoległość w zespole
„Reactive → Strategic Leader”Etykiety dojrzałości przywództwaPrzedziały poziomów 1–4, które faktycznie liczy scorecard CTO: Z pomocą, W parze, Menedżer review, Menedżer specyfikacjiPrzewodnik po scorecardzie CTO
Drabina etapów Every (etapy 0–5) jako druga drabinaŚcieżka wdrożenia jednej osobyDrabina, dla każdej pętli; etapy Every pozostają własnym modelem Every (patrz niżej)Compound engineering
„Risk tiers 0–3”Jak niebezpieczna jest zmianaKlasy ryzyka: niska, średnia, wysoka, krytycznaGovernance i autonomia

Przedział ze scorecardu CTO to samoocena praktyk (narzędzia, review, governance), a nie rozkład poziomów zmergowanych zmian. Nigdy nie raportuj go jako „naszego poziomu”; podawaj go osobno od rozkładu.

Wzorzec za tą tabelą: data nie jest dowodem, a miara niebezpieczeństwa nie jest miarą dojrzałości.

Uśrednianie poziomów do jednej liczby. „Organizacja jest na poziomie 3,2” ukrywa dwie pętle, które mogłyby działać bez ludzi, i krytyczną pętlę, która nigdy nie powinna była opuścić L3. Naprawa: raportuj rozkład i liczbę pętli na L4 lub wyżej, nigdy średnią.

Ocenianie zespołu po pętli na pokaz. Jedna dopracowana pętla podbijania zależności na L4 zamienia się w „jesteśmy zespołem L4”. Naprawa: poziom zespołu to udział zmergowanych zmian, więc pętla, która daje 5% merge’ów, przesuwa rozkład o 5%.

Odczytywanie klasy ryzyka jako pozwolenia. Pętla awansowana na L4 zaczyna mergować migracje schematu na samych dowodach. Naprawa: klasy ograniczają poziomy; dopisz ścieżki krytyczne do CODEOWNERS i niech CI blokuje merge na samych dowodach, gdy dotyka tych ścieżek.

Deklarowanie poziomu, którego stacje nie udźwigną. Pętla nazywana jest L4, choć jej wyrocznia leży w tym samym diffie, który pisze agent. Naprawa: przeprowadź audyt opisany wyżej; pętla, której agent może edytować wyrocznię, jest na L3, dopóki wyrocznia nie trafi poza jego zasięg.

Przesuwanie się w prawo przy pogarszających się wynikach. Udział na L4 rośnie, a razem z nim odsetek revertów. Naprawa: zdegraduj pętlę, która spowodowała reverty, napraw jej wyrocznię i przeprowadź audyt ponownie, zanim znów ją awansujesz.

Najczęstsze pytania

Czym jest jedna mapa?

To jedna siatka z trzema osiami. Dojrzałość to drabina autonomii, od poziomu 0 do poziomu 5, mierzona dla każdej pętli osobno. Proces to sześć etapów cyklu życia: plan, design, build, test, deploy i maintain. Możliwości to sześć stacji fabryki: intencja, harness, pętla, graf, weryfikacja i wydanie. Każda komórka mówi, jakie dowody pętla musi wytworzyć, zanim zacznie działać na danym poziomie.

Na jakim poziomie jest mój zespół albo moja organizacja?

Nie na jednym. Poziom zespołu to rozkład zmergowanych zmian według poziomów pętli, które je wytworzyły, na przykład 40% na poziomie 4, 48% na poziomie 3 i 12% na poziomie 2 w ciągu 30 dni. Organizacja to ten sam rozkład dla wszystkich zespołów, raportowany razem z miarą stabilności dla każdego poziomu.

Czy klasa ryzyka to to samo co poziom dojrzałości?

Nie. Klasa ryzyka (niska, średnia, wysoka, krytyczna) jest cechą jednej zmiany, na przykład migracji schematu albo poprawki w tekście. Poziom jest cechą pętli. Pętla na poziomie 5 nadal eskaluje krytyczną zmianę do człowieka, który czyta kod, a zespół na poziomie 2 nadal ma zmiany o niskim ryzyku.

Czy JetBrains AIDEs, drabina etapów Every i DORA AI Capabilities Model to to samo co drabina?

Nie. To osobne modele z własnymi definicjami i serwis nie mapuje ich na drabinę. Etykiety L1–L5 w AIDEs kolidują z numerami poziomów drabiny (te same numery, inne znaczenie), a model DORA opisuje siedem możliwości organizacji, nie poziomy.