
Pomiar pokazuje, gdzie jest ryzyko. Agent interpretuje. Człowiek broni decyzji architektonicznej.
MODUŁ 4 // LEGACY
Legacy w 10x Workflow otwiera blok 10xArchitect: pięć lekcji buduje 5-elementowy raport architektoniczny - od architektury kontekstu po okazje DDD. Raport ma być Twój - obronialny, nie przyjęty na wiarę.
SKAN NIEZNANEGO TERENU // KLIKNIJ OBSZAR, BY DOLECIEĆ DO SEKCJI
Skrót modułu · pięć lekcji w 30 sekund
Ile kontekstu naraz uniesie agent? Kontekst racjonowany, nie wylewany.
LEKCJA 02Jak wygląda teren, zanim wejdziesz? Mapa z dowodów, nie z folderów.
LEKCJA 03Gdzie kod pęka najczęściej? Ryzyko wskazane z dowodów, nie na wyczucie.
LEKCJA 04Jak przebudować bez zatrzymywania maszyny? Każdy krok odwracalny i osobno zielony.
LEKCJA 05Czy model mówi językiem domeny? Granice i język, których zespół potrafi bronić.
W cudzym kodzie decyzje architektoniczne opieraj na dowodach z repozytorium, nie na intuicji.
„Filtrfrak nie oddaje pustyni ani kropli. Woda krąży w zamkniętym obiegu i wraca dokładnie tam, gdzie jest potrzebna - kto wylewa zapas na piach, nie zobaczy siczy."
- mistrz destylarni, nauka przy pierwszym filtrfrakuFremen nie pyta, ile wody ma pustynia - pyta, ile wody potrzebuje najbliższy marsz. Filtrfrak działa, bo racjonuje: zamknięty obieg oddaje ciału dokładnie tyle, ile trzeba teraz. Kontekst agenta to ta sama ekonomia. Pytanie w legacy nie brzmi „co agent ma wiedzieć?", tylko „co agent ma wiedzieć TERAZ?" - okno kontekstu jest zasobem jak woda na pustyni, a wylany zapas nie wraca.
Okno kontekstu agenta to zasób ograniczony - przeładowany prompt obniża jakość pracy. Pytanie w legacy nie brzmi „co agent ma wiedzieć?", tylko „co agent ma wiedzieć TERAZ?": dawka kontekstu dobrana pod zadanie zamiast wylania wszystkiego naraz.
Wejście: repozytorium z kontekstem rozlanym po README, wiki i głowach ludzi. Wyjście: lean root AGENTS.md plus context/ jako system-of-record - fakty o architekturze mieszkają w plikach, które agent dociąga na żądanie, nie w jednym przeładowanym prompcie. Mechanizm: drabina dojrzałości - od zera do systemu, w którym każda dawka kontekstu ma swoje miejsce i swój moment podania.
GRUNT: PARNAS 1972 // MODUŁ UJAWNIA MINIMUM - Z KONTEKSTEM TAK SAMO
zanim agent dotknie legacy - okno kontekstu to zasób racjonowany: dawka pod zadanie zamiast wylania wszystkiego naraz.
AGENTS.md jako onboarding agenta: krótki, specyficzny dla repo, z najważniejszymi regułami na górze - przyszły agent czyta go raz i nie blokuje się. Każde zdanie musi wynikać z pliku, komendy albo commita, który skill faktycznie obejrzał.
Wejście: repozytorium - manifest, README, konfiguracja lint/test, układ katalogów, 30 ostatnich commitów. Wyjście: jeden plik AGENTS.md („Repository Guidelines") o budżecie 200-400 słów; wariant katalogowy jeszcze mniejszy (120-250 słów), bo opisuje reguły jednego katalogu, nie całego repo.
Discovery w ustalonej kolejności, potem ekstrakcja: 1-3 komendy, które agent uruchamia najczęściej, konwencje, które recenzent wytknąłby w PR, twarde zakazy „nigdy nie rób X". Gdy plik już istnieje - edycja chirurgiczna, nie przepisanie: każda linia klasyfikowana jako KEEP / UPDATE / REMOVE / MISSING na podstawie diffu od ostatniego dotknięcia pliku.
Sekcje uporządkowane według dźwigni, nie tradycji:
Zamiast wklejania konfiguracji - referencje @package.json, @docs/...: dawka kontekstu dociągana na żądanie.
Pięć twardych bramek przed zapisem: budżet słów, zero wieloliniowych snippetów, każda reguła sprawdzalna na diffie („clean code" i „best practices" wylatują), zero wiedzy, którą agent i tak ma z treningu, reguły krytyczne w pierwszej jednej trzeciej pliku.
„Oceanu nie rozumie nikt i nikt na stacji tego nie udaje. Wysyłamy próbniki, nanosimy zjawiska na mapy - i to mapa mówi, gdzie wolno zejść niżej."
- notatka solarysty, archiwum stacji badawczejOcean Solaris badają od stu lat i nikt go nie rozumie - więc solaryści nie udają: wysyłają próbniki, każdy mierzy swój wycinek, a z pomiarów rośnie mapa zjawisk, nie teoria całości. Mapa projektu to ta sama pokora: szeroki skan, zanim postawisz stopę w kodzie. Struktura folderów kłamie - mapa ma powstać z dowodów: historii gita, wyszukiwań strukturalnych, grafów zależności.
Mapa projektu to szeroki skan, zanim postawisz stopę w kodzie. Struktura folderów kłamie - mapa ma powstać z dowodów: historii gita, wyszukiwań strukturalnych, grafów zależności.
Wejście: nieznane repozytorium. Wyjście: mapa projektu (pozycja ① raportu) - które moduły są deep, a które shallow, co jest core, co peripheral, co jest load-bearing. Mechanizm: równoległe próbniki - /10x-research wysyła subagentów, git log i churn pokazują, gdzie projekt naprawdę żyje, a graf zależności - co się zawali, gdy pociągniesz nitkę.
GRUNT: OUSTERHOUT // DEEP VS SHALLOW - GŁĘBOKOŚĆ MODUŁU, NIE JEGO ROZMIAR
przy wejściu w cudzy albo stary kod - najpierw mapa z dowodów, dopiero potem pierwszy krok w teren.
Odpowiedzieć dowodami na pytanie o kod projektu: równoległe subagenty przeczesują osobne wymiary, główny agent tylko syntetyzuje. Mapa powstaje z odczytów plik:linia, nie z przeczuć.
Wejście: pytanie badawcze plus pliki wskazane przez użytkownika - czytane w całości, zanim ruszy delegacja. Wyjście: research.md w folderze zmiany - samowystarczalny raport z odnośnikami do kodu, wnioskami architektonicznymi i otwartymi pytaniami.
Dekompozycja pytania na obszary → doprecyzowanie zakresu i głębokości → 2-4 subagenty równolegle w jednej wiadomości: Explore do szukania plików i wzorców, general-purpose do analizy złożonych systemów. Synteza zaczyna się dopiero, gdy wrócą wszyscy.
context/changes/ i context/archive/,Research jest read-only - subagenty dostają zakaz edycji i obowiązek zwracania referencji plik:linia. Świeży odczyt kodu ma pierwszeństwo; historia zmian to kontekst uzupełniający, nie źródło prawdy.
„Na Ceres nie patroluję ciemnych korytarzy. Chodzę tam, gdzie zbrodnia była już trzy razy - ona wraca w te same miejsca."
- detektyw stacji Ceres, notatki ze śledztwaDetektyw na Ceres nie patroluje całej stacji - wraca tam, gdzie zbrodnia była już trzy razy. Kod pęka według tego samego wzorca: awarie nie rozkładają się równo po repozytorium, wracają w te same miejsca. Hot spot to skrzyżowanie dwóch dowodów: złożoności kodu i częstości zmian - tam, gdzie skomplikowane spotyka często dotykane, ryzyko rośnie najszybciej.
Awarie nie rozkładają się równo po repozytorium - wracają w te same miejsca. Hot spot to skrzyżowanie dwóch dowodów: złożoności kodu i częstości zmian - tam, gdzie skomplikowane spotyka często dotykane, ryzyko rośnie najszybciej.
Wejście: mapa projektu i jeden feature. Wyjście: przegląd feature'a + hot spots (pozycje ② i ③ raportu) - przepływ danych end-to-end jednego modułu plus lista miejsc, które pękają najczęściej. Mechanizm: deterministyczne CLI domyka semantykę - ast-grep znajduje wzorce w składni, code-maat liczy change coupling, a observability dokłada dowody z produkcji; agent interpretuje, ale pomiar jest maszynowy.
GRUNT: TORNHILL // KOD JAK MIEJSCE ZBRODNI - ZŁOŻONOŚĆ × CZĘSTOŚĆ ZMIAN
przed każdą decyzją o refaktorze - ryzyko wskazują dowody: złożoność × częstość zmian, nie przeczucie.
Rozdzielić obserwację od deklarowanej przyczyny, zanim powstanie plan. Perfekcyjny plan na źle postawiony problem to stracony dzień: rozwiązanie trafia w hipotezę, a prawdziwy problem zostaje.
Wejście: zgłoszenie w kształcie „bug + proponowany fix", pytanie o zakres albo założenie do sprawdzenia. Wyjście: frame.md - potwierdzone lub przeramowane sformułowanie problemu z poziomem pewności (HIGH / MEDIUM / LOW) i wnioskiem dla /10x-plan.
Obserwacja zostaje zamrożona jako jedyny pewny grunt - wszystko inne to hipotezy. Powstaje mapa wymiarów, z których obserwacja mogła wyniknąć, a równoległe subagenty testują każdy z nich pytaniem: jakich dowodów byśmy się spodziewali, gdyby pękło właśnie tutaj - i czy one istnieją? Na końcu wiodąca hipoteza przechodzi próbę ciśnieniową - ocenia ją także świeży agent, któremu nie zdradza się faworyta.
Serce briefu to tabela hipoteza / dowód / werdykt (STRONG / WEAK / NONE). Obok: obserwacja, pierwotne założenie zachowane dosłownie, mapa wymiarów, sygnały zawężające i sekcja „co zmienia się dla planu".
Dozwolony wniosek brzmi także „założenie było trafne" - wymuszone przeramowanie jest gorsze niż brak frame'u. Pewnie brzmiąca hipoteza bez dowodu plik:linia to dokładnie ten błąd, przed którym skill chroni. Pytania zawężające opisują obserwacje, nigdy rozwiązania.
„Ducha maszyny nie gasimy nigdy. Wyjmij jeden moduł, wstaw nowy, odpraw rytuał powrotu. Jeśli maszyna zamilknie - cofnij krok, nie plan."
- magos odbudowy, litania wymiany podzespołuŚwiątyni-maszyny nie gasi się nigdy - odbudowa idzie modułem po module: wyjmij jeden podzespół, wstaw nowy, odpraw rytuał powrotu i dopiero wtedy sięgnij po następny. Refaktor legacy to ta sama liturgia: odwracalna ścieżka zamiast big-bangu. Wielki przepisujący skok kończy się katastrofą, bo nie ma z niego drogi powrotu - sekwencja małych, osobno zielonych kroków ma ją zawsze.
Refaktor legacy to odwracalna ścieżka zamiast big-bangu. Wielki przepisujący skok kończy się katastrofą, bo nie ma z niego drogi powrotu - sekwencja małych, osobno zielonych kroków ma ją zawsze.
Wejście: hot spot z dowodami i test chroniący zachowanie - napisany, zanim ruszy refaktor. Wyjście: okazje refaktorowe (pozycja ④ raportu) plus ADR-y dokumentujące decyzje. Mechanizm: wzorce odwracalności - Strangler Fig (nowe oplata stare, zanim je zastąpi), Branch by Abstraction, metoda Mikado - a /10x-plan tnie ścieżkę na etapy, z których każdy kończy się zielenią albo cofnięciem kroku, nie planu.
GRUNT: FOWLER + FEATHERS // TEST CHRONIĄCY ZACHOWANIE POWSTAJE PRZED REFAKTOREM
gdy system musi działać w trakcie przebudowy - każdy krok odwracalny i osobno zielony, big-bang zostaje w koszu.
Zamienić zadanie w plan pocięty na etapy z jawnymi kryteriami sukcesu - automatycznymi i manualnymi - zanim powstanie pierwsza linijka kodu. Plan jest kontraktem: implementacja ma się do czego cofnąć.
Wejście: opis zadania, opcjonalnie frame.md i research.md - każdy artefakt z wcześniejszych kroków to decyzje już podjęte, więc mniej pytań. Wyjście: plan.md plus plan-brief.md - dwustronicowy skrót z tabelą kluczowych decyzji.
Research repozytorium subagentami → ocena złożoności (LOW / MEDIUM / HIGH) potwierdzona z użytkownikiem → skalowane dopytywanie: 4-15 pytań, każda opcja z rekomendacją oraz jawną siłą i kosztem → akceptacja szkieletu etapów → dopiero wtedy pełny plan.
Stan obecny, stan docelowy, „czego NIE robimy", etapy z parą Intent / Contract dla każdej zmiany, kryteria Automated / Manual, na dole sekcja Progress - jedyne miejsce, gdzie żyją checkboxy.
Plan opisuje intencję, nie implementację - snippet kodu tylko przy zmianie nieoczywistej. Zero otwartych pytań w finalnym planie. Po każdym etapie pauza na ludzkie potwierdzenie weryfikacji manualnej, zanim ruszy następny.
„Model przewiduje zachowanie całej domeny - pod jednym warunkiem: pojęcia muszą być ostre. Jedno rozmyte słowo w równaniu i plan rozjeżdża się o stulecia."
- wykład wstępny, katedra psychohistoriiPsychohistoria przewiduje zachowanie całej domeny jednym modelem - ale tylko dlatego, że jej pojęcia są ostre. Jedno rozmyte słowo w równaniu i predykcja rozjeżdża się o stulecia. Model domeny w kodzie podlega temu samemu prawu: bounded contexts działają, gdy granice są ostre, a język jednoznaczny - „zamówienie" w magazynie i „zamówienie" w płatnościach to dwa różne pojęcia i mają prawo mieć dwa różne modele.
Model domeny działa, gdy granice są ostre, a język jednoznaczny: bounded contexts istnieją po to, żeby to rozdzielenie było jawne - „zamówienie" w magazynie i „zamówienie" w płatnościach to dwa różne pojęcia i mają prawo mieć dwa różne modele.
Wejście: chaos pojęć zastanej domeny. Wyjście: okazje DDD (pozycja ⑤ raportu) - kandydaci na bounded contexts, glosariusz ubiquitous language, inwarianty, podział na entities i value objects. Mechanizm: AI jako coach DDD - agent prowadzi Event Storming, proponuje granice i nazwy, ale to człowiek broni każdej decyzji; model, którego zespół nie potrafi obronić, to tylko notatka.
GRUNT: EVANS // UBIQUITOUS LANGUAGE - JEDEN JĘZYK OD ROZMOWY PO KOD
gdy model ma przeżyć dłużej niż sprint - granice i język, których zespół potrafi bronić, przetrwają rotację ludzi i agentów.
Sformalizować terminologię domeny w jeden spójny glosariusz: jedno pojęcie - jedna nazwa. Synonimy i wieloznaczności wyłapane, zanim rozmyją model i oderwą kod od rozmowy.
Wejście: rozmowa o domenie - sesja modelowania, dyskusja o wymaganiach. Wyjście: UBIQUITOUS_LANGUAGE.md - tabele terminów z definicjami i aliasami do unikania, relacje, przykładowy dialog i sekcja zgłoszonych wieloznaczności.
Skan rozmowy pod kątem pojęć → wykrycie dwóch klas problemów: to samo słowo dla różnych pojęć i różne słowa dla tego samego pojęcia → stanowczy wybór terminu kanonicznego → jawne flagowanie konfliktów z rekomendacją.
Termin, definicja w jednym zdaniu (czym pojęcie JEST, nie co robi), aliasy do unikania. Relacje z kardynalnością: „Invoice należy do dokładnie jednego Customer". Do tego krótki dialog dev / ekspert domeny, który pokazuje granice pojęć w naturalnym użyciu.
Tylko terminy istotne dla eksperta domeny: nazwy modułów, klas i generyczne pojęcia programistyczne (array, endpoint) nie wchodzą, chyba że niosą znaczenie domenowe. Definicje ciasne - maksymalnie jedno zdanie.
Legacy otwiera blok 10xArchitect, ale stoi na wszystkim, co zbudował 10xBuilder: rampa, łańcuch, rygor i tarcza. Cztery strony bloku niżej.
10xArchitect zaczyna się tam, gdzie kończy się Twój własny kod: dowody zamiast intuicji, raport architektoniczny jako artefakt, którego bronisz. Następny moduł podnosi stawkę z kodu na ludzi.
W legacy pracujesz na dowodach: mapa projektu, hot spoty i raport, którego potrafisz bronić. Moduł 5 podnosi stawkę z kodu na ludzi - ten sam workflow, tylko w zespole.
BRAK WYNIKÓW // ZMIEŃ FRAZĘ