Lekcja 21 · Faza 2 · Pełna mapa użycia — bez quizu
Lekcje 13–20 nauczyły Cię sześciu kroków głównego cyklu jeden po drugim. Ta lekcja jest inna: to jeden gęsty przewodnik użytkowy po wszystkich 17 skillach naraz — dokładna komenda, moment użycia i mechanika każdego, w tym tych, których jeszcze nie omawialiśmy osobno (triage, domain-modeling, handoff, to-prd, writing-great-skills, ask-matt). Bez pytań sprawdzających — to materiał referencyjny, do którego wracasz, gdy nie pamiętasz, po który skill sięgnąć.
.agents/skills/ask-matt/SKILL.md — sam ten skill jest "routerem" nad resztą pakietu i opisuje dokładnie te same zależności, które widzisz niżej. Szczegóły każdego skilla pochodzą z jego własnego SKILL.md w .agents/skills/<nazwa>/.
Zanim przejdziesz przez mapę, jedna rzecz techniczna, decydująca o tym, jak w ogóle wywołasz dany skill. Skill z frontmatterem disable-model-invocation: true odpala się wyłącznie, gdy sam wpiszesz jego nazwę (np. /triage) — Claude nigdy nie sięgnie po niego sam, nawet gdy pasuje do sytuacji. Skill bez tej flagi jest model-invoked: Claude może go uruchomić sam, rozpoznając kontekst z opisu w jego description.
tdd, gdy poprosisz "zbuduj to test-first". Przy skillach user-invoked (oznaczonych ręcznie) musisz wpisać komendę wprost, inaczej Claude o nich "nie wie" w danej chwili.
| Skill | Komenda | Wywołanie | Jednym zdaniem |
|---|---|---|---|
| setup-matt-pocock-skills | /setup-matt-pocock-skills | ręcznie | Jednorazowa konfiguracja: issue tracker, etykiety triage, układ dokumentów |
| grilling | /grilling | auto | Prymityw: wywiad pytanie-po-pytaniu o plan |
| grill-me | /grill-me | ręcznie | Uruchamia grilling, bez repozytorium, nic nie zapisuje |
| grill-with-docs | /grill-with-docs | ręcznie | Uruchamia grilling + domain-modeling, aktualizuje CONTEXT.md/ADR na żywo |
| domain-modeling | /domain-modeling | auto | Aktywne ostrzenie słownika domenowego, zapisuje do CONTEXT.md |
| prototype | /prototype | auto | Jednorazowy, wyrzucalny kod odpowiadający na jedno pytanie projektowe |
| to-prd | /to-prd | ręcznie | Synteza rozmowy w PRD, publikacja na issue tracker |
| to-issues | /to-issues | ręcznie | Cięcie planu/PRD na niezależne issues (tracer bullets) |
| tdd | /tdd | auto | Pętla red→green na uzgodnionym seamie |
| code-review | /code-review | auto | Przegląd Standards + Spec, dwa równoległe subagenty |
| triage | /triage | ręcznie | Przepuszcza surowe zgłoszenia/PR-y przez maszynę stanów triage |
| diagnosing-bugs | /diagnosing-bugs | auto | Sześciofazowa dyscyplina diagnozy trudnych błędów |
| improve-codebase-architecture | /improve-codebase-architecture | ręcznie | Skan pod kątem płytkich modułów, raport HTML poza repo |
| codebase-design | /codebase-design | auto | Słownik głębokich modułów: module/interface/seam/depth |
| handoff | /handoff | ręcznie | Kompresuje rozmowę do pliku dla nowej sesji |
| writing-great-skills | /writing-great-skills | ręcznie | Referencja: jak pisać i edytować skille dobrze |
| ask-matt | /ask-matt | ręcznie | Router — pyta, który skill/przepływ pasuje do sytuacji |
| teach (meta) | /teach | ręcznie | Ten skill, który właśnie prowadzi tę lekcję |
/setup-matt-pocock-skills — omówiony w Lekcji 13. Skrót: odkrywa lub ustala issue tracker, etykiety triage i układ dokumentów domenowych, zanim jakikolwiek inny skill z tego pakietu założy, że to już istnieje. Uruchamiasz raz na repozytorium.
ask-matt nazywa to "main flow" — trasą, którą podróżuje większość pracy. Poniżej dokładny opis każdego kroku, z rozgałęzieniami.
Pod spodem wszystkich trzech leży ten sam /grilling — wywiad pytanie-po-pytaniu, jedno pytanie naraz, z rekomendowaną odpowiedzią przy każdym, eksplorującym kod zamiast pytać, gdy da się coś sprawdzić w repo. Różnica jest tylko w tym, co ten wywiad robi z ustaleniami:
| Wariant | Kiedy | Co dodatkowo robi |
|---|---|---|
/grill-me | Brak repozytorium — ostrzysz pomysł/design, który jeszcze nigdzie nie mieszka | Nic — bezstanowy, niczego lokalnie nie zapisuje |
/grill-with-docs | Masz repozytorium — to jest domyślny wybór do pracy nad prawdziwym projektem | Prowadzi /domain-modeling równolegle: aktualizuje CONTEXT.md i ADR-y na żywo, w miarę jak ustalenia się krystalizują |
Więcej o samym mechanizmie grillowania i trzech warunkach ADR: Lekcja 14.
Jeśli podczas grillowania trafisz na pytanie, którego nie da się rozstrzygnąć samą rozmową — model stanu, logika biznesowa, wygląd UI, który trzeba zobaczyć — ask-matt każe zboczyć z głównego wątku, zamiast zgadywać:
/handoff → zapisuje kontekst do pliku w katalogu tymczasowym
(otwórz NOWĄ sesję, wskaż jej ten plik)
/prototype → odpowiada na JEDNO pytanie wyrzucalnym kodem
(wróć do oryginalnej sesji)
/handoff → z tej sesji, znów zapisuje wniosek
(zreferuj wniosek z powrotem w oryginalnym wątku grillowania)
/handoff jest tu użyty w obie strony — to most między dwoma oknami kontekstu, nie kontynuacja w miejscu. Szczegóły /prototype (dwie gałęzie LOGIC.md/UI.md, sześć zasad, zasada "wyrzucasz kod, zostawiasz odpowiedź"): Lekcja 16.
/handoff — most między sesjami, dokładniejTo jedyny skill, który nie kontynuuje rozmowy — kompresuje ją do pliku Markdown w katalogu tymczasowym systemu (nigdy w repo) i zakłada, że otworzysz zupełnie nową sesję, wskazując jej ten plik. Trzy szczegóły, które łatwo przeoczyć:
Przyjmuje argument opisujący, do czego posłuży następna sesja (argument-hint we frontmatterze) — im dokładniejszy opis, tym trafniej dobrana zawartość dokumentu.
/handoff kontra wbudowany /compact: /compact zostaje w tej samej rozmowie, po prostu streszczając wcześniejsze tury — używasz go na zamierzonych przerwach między fazami, gdy nie szkodzi Ci utrata dosłownej historii (por. Lekcja 9). /handoff rozwidla — zakłada nową sesję i osobny plik. Reguła z ask-matt: nie kompaktuj w środku fazy, bo agent może zgubić wątek; rozwidlaj przez /handoff, gdy faktycznie zmieniasz kontekst pracy (np. wchodzisz w prototyp).
| Odpowiedź | Ścieżka |
|---|---|
| Tak | /to-prd → /to-issues → dla każdego issue z osobna: nowa, czysta sesja + /implement |
| Nie | /implement od razu, w tym samym oknie kontekstu |
/to-prd — synteza, nie wywiadW przeciwieństwie do /grill-with-docs, ten skill nie zadaje pytań — bierze to, co już ustaliliście w rozmowie, i syntetyzuje w PRD wg stałego szablonu (Problem Statement, Solution, długa lista User Stories, Implementation Decisions, Testing Decisions, Out of Scope, Further Notes), po czym publikuje go na issue tracker z etykietą ready-for-agent. Zanim to zrobi, proponuje seamy testowe — najwyżej możliwe w kodzie, w idealnym przypadku jeden — i każe Ci je potwierdzić. Zasada z to-issues dotycząca braku ścieżek plików/snippetów w treści obowiązuje też tutaj, z tym samym wyjątkiem: snippet z prototypu, jeśli koduje decyzję precyzyjniej niż proza (maszyna stanów, reducer, kształt schematu).
/to-issues i /tdd — już poznaneCięcie na tracer bullets: Lekcja 15. Pętla red-green z uzgadnianiem seamów: Lekcja 17.
/implement — silnik napędzający pojedynczy issueTo skill, który faktycznie wykonuje pracę opisaną w PRD albo w konkretnym issue. Jego cała treść mieści się w czterech krokach: użyj /tdd tam, gdzie to możliwe, na wcześniej uzgodnionych seamach; uruchamiaj typechecking i pojedyncze pliki testowe regularnie w trakcie pracy, a pełny zestaw testów raz na koniec; po skończonej pracy uruchom /code-review; na końcu commituj na bieżącym branchu. To właśnie ten skill wypełnia sobą pętlę "dla każdego issue z osobna" z głównego przepływu — /tdd i /code-review, których już się nauczyłeś, są jego składowymi, nie odrębnymi krokami do ręcznego sklejania.
/implement był wymieniany przez ask-matt, ale brakowało go w zainstalowanym pakiecie — od tamtej pory dodano go lokalnie. Zasada, którą warto z tego wynieść: opis w ask-matt jest mapą, a nie gwarancją instalacji — zawsze warto sprawdzić .agents/skills/ wprost, zanim założysz, że wspomniany skill faktycznie działa u Ciebie.
ask-matt stawia twardą zasadę higieny kontekstu: kroki 1–3 (grillowanie → PRD → issues) mają zostać w jednym, nieprzerwanym oknie kontekstu — bez /compact ani /clear — żeby grillowanie, PRD i issues budowały się na tym samym rozumowaniu. Dopiero każdy /implement zaczyna od zera, pracując tylko z treścią jednego issue. Granicą jest tzw. smart zone — okno (~120k tokenów na najlepszych modelach), w którym model wciąż rozumuje ostro. Jeśli sesja zbliża się do tej granicy przed /to-issues, zasada mówi: nie pchaj dalej na zdegradowanej uwadze — użyj /handoff i kontynuuj w nowym wątku, zamiast kompaktować w środku fazy.
/triage — kolejka spraw, których nie stworzyłeś samZasada odróżniająca go od to-issues: triage jest tylko dla zgłoszeń, których nie stworzyłeś Ty — bug reporty, prośby o funkcje, cokolwiek, co przychodzi "na surowo" z zewnątrz. Issues wyprodukowane przez /to-issues są już agent-ready, więc się ich nie triażuje. Jeśli repo traktuje zewnętrzne pull requesty jako powierzchnię zgłoszeń, triage obejmuje też je — PR to po prostu "issue z podpiętym kodem", ta sama maszyna stanów.
Dwie kategorie ról (bug/enhancement) i pięć ról stanu (needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix). Proces na konkretnym zgłoszeniu:
.out-of-scope/*.md)./grilling + /domain-modeling razem, jedno pytanie naraz.ready-for-agent), notatki i pytania do zgłaszającego (needs-info), albo zamknięcie z odpowiednim uzasadnieniem (wontfix: już zaimplementowane / odrzucone jako bug / odrzucone jako enhancement, z wpisem do .out-of-scope/).Każdy komentarz czy issue wystawiony podczas triage musi zaczynać się od jawnego zastrzeżenia: > *This was generated by AI during triage.* — to nie jest opcjonalne.
/diagnosing-bugs — już poznane w praktycePełne sześć faz (feedback loop → reprodukcja → hipotezy → instrumentacja → fix + test regresyjny → cleanup) rozpisane jako diagram w Przepływie C: Referencja: podsumowanie i diagramy. ask-matt dodaje jedno doprecyzowanie: to skill na trudne błędy — te odporne na pierwszy rzut oka, przelotowe flaki, regresje wkradające się między dwoma znanymi-dobrymi stanami. Jego post-mortem przekazuje dalej do /improve-codebase-architecture, gdy prawdziwym wnioskiem jest brak dobrego seamu do przypięcia buga.
/improve-codebase-architecture — trzy fazy (Explore → raport HTML poza repo → grillowanie wybranego kandydata), szczegółowo w Lekcji 19. ask-matt nazywa go dokładnie: "the survey that finds the candidates" — surveyem, który znajduje kandydatów; wybranie jednego generuje pomysł, który wraca na główny przepływ w punkcie /grill-with-docs. To zamyka pętlę: utrzymanie architektury nie jest ślepą uliczką, tylko wejściem z powrotem do kroku 1.
/domain-modeling — aktywna dyscyplina, nie tylko czytanieRóżnica, którą łatwo przegapić: samo czytanie CONTEXT.md po słownictwo nie jest tym skillem — to nawyk, który może zrobić dowolny inny skill jednym zdaniem. /domain-modeling to sytuacja, w której zmieniasz model domeny, nie tylko z niego korzystasz. Cztery konkretne ruchy, wszystkie na żywo, w trakcie rozmowy:
CONTEXT.md, zapytaj wprost, które znaczenie obowiązuje.Rozstrzygnięcia trafiają do CONTEXT.md od razu, nie zbiorczo na koniec. CONTEXT.md ma być czystym glosariuszem — zero szczegółów implementacyjnych, zero traktowania go jak spec czy notatnik. ADR-y (ten sam plik docs/adr/, który znasz z Lekcji 14) są oferowane tylko, gdy spełnione są jednocześnie trzy warunki: trudno odwracalne, zaskakujące bez kontekstu, i wynik prawdziwego kompromisu. Repo z wieloma kontekstami domenowymi ma plik CONTEXT-MAP.md w korzeniu, wskazujący, gdzie leży CONTEXT.md każdego z nich.
/codebase-design — już poznanePełny słownik (module, interface, depth, seam, adapter, leverage, locality) i test usunięcia: Lekcja 18, pełny glosariusz w osobnej referencji. Zapamiętaj z ask-matt jedną rzecz: to "bench", na którym projektujesz kształt kandydata już wybranego przez /improve-codebase-architecture — ten drugi tylko znajduje kandydatów, ten pierwszy je projektuje.
/code-review — już poznaneDwie osie, dwa równoległe subagenty general-purpose, stały baseline 12 zapachów Fowlera z zasadą "repo wygrywa": Lekcja 20. ask-matt potwierdza, że można go uruchomić samodzielnie, poza pełnym cyklem — "whenever you want to review a branch or PR against a fixed point".
/grill-me — już opisane wyżejPatrz tabela w sekcji "Krok 1". Jedyna różnica względem statusu standalone: reaguje na dowolny plan spoza repozytorium, nie tylko na wątek, który akurat zboczył z głównego przepływu.
/prototype — już poznanePełny opis dwóch gałęzi (LOGIC.md/UI.md) i sześciu wspólnych zasad: Lekcja 16.
/teach — meta: skill, który prowadzi tę właśnie lekcjęWarto go tu wymienić, bo też pochodzi z pakietu Matta Pococka, mimo że nie jest częścią cyklu inżynierskiego — służy do nauki koncepcji na przestrzeni wielu sesji, traktując bieżący katalog jako stanowy workspace. Właśnie dlatego ten cały workspace /teach zachowuje historię (numerowane lekcje, `learning-records/`) zamiast zaczynać za każdym razem od zera.
/writing-great-skills — referencja do pisania własnych skilliNie jest krokiem procesu — to zbiór zasad, po które sięgasz, gdy piszesz lub edytujesz skill (własny, albo jeden z tych 17, jeśli kiedyś będziesz go dostrajać). Kluczowe pojęcia:
SKILL.md (natychmiast potrzebny) → referencja w SKILL.md (na żądanie) → referencja zewnętrzna w osobnym pliku (ładowana tylko, gdy odsyłacz "strzeli"). Przykład, który już widziałeś: codebase-design chowa pełne definicje w osobnym GLOSSARY.md./ask-matt — router, sam ze sobą jako punkt wyjściaTo skill, na którym oparta jest cała ta lekcja. Gdy nie pamiętasz, po który z 17 skilli sięgnąć, wpisujesz /ask-matt i opisujesz sytuację — on wskazuje właściwe miejsce na mapie wyżej. Warto go traktować jako żywy indeks: gdy pakiet się rozrośnie o kolejne skille, to właśnie ten plik będzie źródłem prawdy o tym, gdzie każdy nowy się wpina.
W swoim prawdziwym projekcie firmowym, na dowolnej bieżącej sprawie (nowy pomysł, sterta zgłoszeń, podejrzenie architektoniczne — cokolwiek realnego), wpisz /ask-matt i opisz sytuację własnymi słowami:
/implement, sprawdź, czy ten skill faktycznie jest zainstalowany w Twoim projekcie (nie zakładaj, że jest — w tym repo referencyjnym go zabrakło)./triage czy /to-prd mogłeś dotąd nie używać świadomie.to-prd a to-issues, albo handoff a /compact).