Przejdź do głównej zawartości

gstack: stos skilli opartych na rolach dla Claude Code

gstack to zestaw skilli Claude Code autorstwa Garry’ego Tana na licencji MIT, który dzieli pracę nad funkcją na role wywoływane jako komendy: /office-hours i /plan-ceo-review dla produktu, /plan-eng-review dla engineering managera, /review dla staff engineera, /qa dla QA i /ship dla release’u. Te same skille instalują się też w Codeksie i Cursorze. Dokumenty planistyczne gstack domyślnie trzyma poza repozytorium.

Otwierasz Claude Code z jednozdaniowym ticketem „Dodaj eksport faktur do CSV” i po 10 minutach masz działający przycisk. Potem zaczynają się pytania. Jakiego zakresu dat używa eksport? Co się stanie przy 80 000 wierszy? Czy ktoś sprawdził strefę czasową issued_at? Nikt nie zapytał, bo pusty prompt nie odgrywa żadnych ról: nie ma w nim product ownera, tech leada ani QA.

Ta strona jest dla programisty, który chce, żeby te role były odgrywane za każdym razem, bez zatrudniania ludzi i bez czytania każdej wygenerowanej linii. Przeprowadza jedną funkcję przez gstack od pomysłu do pull requesta, pokazuje plik, który zostawia po sobie każda rola, i zaznacza, gdzie nadal musisz wkroczyć sam.

  • Działającą instalację dla Claude Code, Codeksa lub Cursora i jedną flagę setupu, która usuwa kolizję nazw komend.
  • Jedną funkcję — eksport CSV w aplikacji do fakturowania — doprowadzoną od pomysłu do otwartego pull requesta w siedmiu komendach.
  • Tabelę, która przypisuje każdą rolę gstack do ogniwa łańcucha artefaktów, łącznie z dwoma ogniwami, których gstack w ogóle nie wytwarza.
  • Cztery prompty do skopiowania: zawężone otwarcie /office-hours, przegląd inżynierski z twardymi ograniczeniami, przeniesienie prywatnych notatek gstack do plików zatwierdzonych w repozytorium i sprawdzenie dowodów przed wysyłką.
  • Bramki, które dowodzą jakości wyniku bez czytania diffa, oraz pułapki, których nie znają starsze tutoriale.

gstack przedstawia swoje skille jako specjalistów, którzy działają w kolejności sprintu: Think, Plan, Build, Review, Test, Ship, Reflect. Każdy skill czyta to, co zapisał poprzedni. README wymienia ponad 30 komend; typową funkcję niesie tych dziewięć:

RolaKomendaCo robiCo zostawia
Partner produktowy/office-hoursZadaje dociekliwe, niewygodne pytania o problem, podważa twoje założenia i proponuje dwa lub trzy podejścia z szacunkiem pracyDesign doc w ~/.gstack/projects/<repo>/
Founder lub CEO/plan-ceo-reviewPrzegląda zakres w jednym z czterech trybów: rozszerzenie, rozszerzenie selektywne, utrzymanie zakresu lub redukcjaDecyzje o zakresie w ~/.gstack/projects/
Engineering manager/plan-eng-reviewUstala architekturę, przepływ danych, tryby awarii i macierz testów, z diagramamiPrzejrzany plan i plan testów w ~/.gstack/projects/
Potok przeglądów/autoplanUruchamia po kolei przeglądy CEO, designu, developer experience i inżynierski, a pyta cię tylko o kwestie gustuTe same pliki, przy mniejszej liczbie pytań
Staff engineer/reviewSzuka błędów, które przechodzą CI: zapytań N+1, wyścigów, granic zaufania, brakujących gałęzi enumów. Oczywiste naprawia, o resztę pytaPoprawki na miejscu (oznaczone w raporcie jako [AUTO-FIXED]) i zapis przeglądu
Lider QA/qaCzyta diff, otwiera dotknięte strony w prawdziwej przeglądarce, naprawia to, co się psuje, i pisze test regresyjny do każdej poprawkiRaport w .gstack/qa-reports/ i nowe testy
Release engineer/shipSynchronizuje gałąź główną, uruchamia testy, audytuje pokrycie, aktualizuje dokumentację, pushuje i otwiera PRPull request z podsumowaniem pokrycia
Debugger/investigateDebugowanie od przyczyny źródłowej, które zatrzymuje się po trzech nieudanych poprawkachUstalenia w sesji
Engineering manager/retroCotygodniowa retrospektywa z historii commitów, z trendem udziału testówSnapshot JSON w .context/retros/

Domyślnie tylko jedna z tych ról jest twardą bramką: przegląd inżynierski. Review Readiness Dashboard w gstack oznacza go jako Required; przeglądy CEO i designu mają charakter informacyjny.

Zainstaluj gstack dla Claude Code, Codeksa lub Cursora

Dział zatytułowany „Zainstaluj gstack dla Claude Code, Codeksa lub Cursora”

gstack wymaga Gita i Buna w wersji 1.0 lub nowszej, a na Windowsie także Node.js. To repozytorium Git ze skryptem setup, a nie marketplace wtyczek, więc /plugin marketplace add garrytan/gstack niczego nie instaluje.

  1. Sklonuj repozytorium i uruchom setup dla swojego agenta (terminal):

    Okno terminala
    git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack
    cd ~/.claude/skills/gstack && ./setup --prefix

    --prefix instaluje każdy skill jako /gstack-<nazwa> (/gstack-review, /gstack-qa). Domyślnie nazwy są krótkie (/review, /qa), a w Claude Code 2.1.283 /review jest już aliasem wbudowanej komendy /code-review. Z prefiksem zawsze wiesz, którego recenzenta wywołałeś. Wrócisz do krótkich nazw przez ./setup --no-prefix. Dla czytelności dalsza część strony używa krótkich nazw; jeśli instalowałeś z prefiksem, dopisz gstack-.

    Zrestartuj Claude Code. Skille są na poziomie użytkownika, więc pojawią się w każdym projekcie.

  2. Zdecyduj o hookach przed pierwszą sesją. Setup zapisuje hooki w ~/.claude/settings.json: domyślnie włączony hook Stop, który zamyka wpisy osi czasu sesji, hooki AskUserQuestion tylko wtedy, gdy się na nie zgodzisz, i sprawdzanie aktualizacji w SessionStart w trybie zespołowym. Hooki działają poza promptem uprawnień. Żeby pominąć hook osi czasu, uruchom ponownie ./setup --no-timeline-stop-hook; listę zarejestrowanych hooków pokaże ~/.claude/skills/gstack/bin/gstack-settings-hook list-sources. Przy pierwszym użyciu gstack pyta też o telemetrię, która pozostaje wyłączona, dopóki się nie zgodzisz.

  3. Zmierz, co gstack dokłada do każdej sesji. Opisy skilli ładują się przy starcie, a treść skilla dopiero przy wywołaniu. gstack ma estymator działający offline (terminal):

    Okno terminala
    ~/.claude/skills/gstack/bin/gstack-context-bill ~/.claude/skills

    Wypisuje koszt stale obecny i koszt pojedynczego wywołania każdego skilla. Porównaj /context w świeżej sesji przed instalacją i po niej. W wersji 1.91.2.0 pliki skilli office-hours, review i ship mają po 70–85 KB, więc jedno wywołanie to duży prompt. Dla skali: uruchomiony 2026-09-26 na drzewie źródeł wersji 1.91.2.0 estymator pokazał 63 skille z około 25,7 KB frontmattera, czyli mniej więcej 6,6 tys. tokenów stale obecnych w kontekście (szacunek offline; --exact wymaga klucza API Anthropic). Wynik twojej instalacji zależy od tego, które hosty i skille podpiął setup. claude plugin details tu nie zadziała, bo gstack instaluje się jako skille, a nie jako plugin.

Ogólne zasady działania katalogów i zakresów skilli opisuje strona o instalowaniu i zarządzaniu skillami.

Przeprowadź jedną funkcję przez gstack, rola po roli

Dział zatytułowany „Przeprowadź jedną funkcję przez gstack, rola po roli”

Projekt to aplikacja do fakturowania na Next.js App Router z Postgresem przez Prismę, testami jednostkowymi w Vitest i testami przeglądarkowymi w Playwright. Ticket: dział finansów chce eksportu faktur z wybranego zakresu dat do CSV. Pracuj na gałęzi funkcji; /qa i /review porównują zmiany z gałęzią główną.

  1. Think: /office-hours. Zacznij od problemu, nie od przycisku. /office-hours ma dwa tryby. Tryb startupowy, przeznaczony dla założycieli i intraprenerów (osób budujących produkt wewnątrz firmy), zadaje sześć dociekliwych pytań o popyt, status quo i najwęższy klin wejścia. Tryb buildera, przeznaczony dla projektów pobocznych i hackathonów, generuje pomysły zamiast przesłuchiwać. Przy funkcji, o którą poprosili płacący klienci, poproś o tryb startupowy: to jego pytania sprawdzają, czy „eksport CSV” jest prawdziwą potrzebą. Skill podważa twoje ujęcie problemu, wypisuje założenia do przyjęcia lub odrzucenia i kończy się dokumentem projektowym (design doc), który czytają kolejne skille.

    Zaakceptuj design doc dopiero wtedy, gdy wskazuje użytkowników, rezultat i to, co jest poza zakresem. Tu jesteś product ownerem: to jedyny krok, którego gstack nie może zatwierdzić za ciebie.

  2. Plan: /plan-eng-review. Przełącz Claude Code w tryb planowania (Shift+Tab albo /plan), pozwól mu naszkicować plan, a potem uruchom przegląd inżynierski. W trybie planowania skill sam bierze na warsztat aktywny plan i informuje o tym jednym zdaniem. Wymusza decyzje, które pusty prompt pomija: strumieniowanie czy buforowanie, granica stref czasowych, co robi częściowa awaria. Zapisuje plan testów, który później podejmie /qa. Użyj zamiast tego /autoplan, gdy chcesz mieć przeglądy CEO, designu i inżynierski w jednym przebiegu, a na wierzch tylko decyzje, które są kwestią gustu.

  3. Build: wyjdź z trybu planowania i zatwierdź plan. Claude Code go implementuje. gstack nie dodaje tu własnej roli; kontraktem jest plan.

  4. Review: /review (albo /gstack-review). Mechaniczne poprawki nakłada od razu i każdą wypisuje w raporcie jako linię [AUTO-FIXED], a o wszystko niejednoznaczne, jak wyścig czy granica zaufania, pyta. Przy eksporcie CSV warte zgłoszenia są formula injection w komórkach zaczynających się od =, +, - lub @ oraz brakujący indeks na (account_id, issued_at). Jeśli przegląd nie wspomni o żadnym z nich, zapytaj o oba z nazwy. Po drugą opinię innego modelu sięgnij przez /codex, który wysyła ten sam diff do Codex CLI, jeśli masz go zainstalowanego i zalogowanego.

  5. Test: /qa http://localhost:3000/invoices. Na gałęzi funkcji /qa działa w oparciu o diff: czyta zmiany, otwiera dotknięte strony w przeglądarce (w przeglądarce Aside, jeśli jest zainstalowana i otwarta na macOS 15+, w innym wypadku w Chromium zbudowanym przez setup), sprawdza je w działaniu, naprawia to, co się psuje, i do każdej poprawki pisze test regresyjny. /qa-only daje sam raport, bez zmian w kodzie.

  6. Ship: /ship. Synchronizuje gałąź główną, uruchamia testy, buduje mapę pokrycia diffa, dopisuje testy tam, gdzie są luki, aktualizuje dokumentację przez /document-release, pushuje i otwiera PR z linią w rodzaju Tests: 42 → 47 (+5 new). Przed otwarciem PR sprawdza Review Readiness Dashboard. Jeśli brakuje przeglądu inżynierskiego, pyta, ale cię nie blokuje.

  7. Reflect: /retro na koniec tygodnia. Czyta historię commitów i sygnalizuje udział testów poniżej 20%. Traktuj te liczby jako punkt wyjścia do rozmowy, a nie jako miarę wydajności.

Wdrożenie zostaje w twoim potoku. gstack ma też /land-and-deploy (merge, czekanie na CI i deploy, sprawdzenie zdrowia produkcji) i /canary (monitoring po wdrożeniu). Jeśli twój zespół wdraża wyłącznie przez CI, pomiń je i pozwól, żeby merge PR uruchomił potok.

Gdzie każda rola gstack trafia w łańcuchu artefaktów?

Dział zatytułowany „Gdzie każda rola gstack trafia w łańcuchu artefaktów?”

Łańcuch artefaktów wymaga na każdym etapie pliku zatwierdzonego w repozytorium (w commicie) zaakceptowanego przez konkretną osobę. gstack wytwarza większość treści, ale planistyczną połowę trzyma w ~/.gstack/projects/ na twoim komputerze, a nie w repozytorium. Członkowie zespołu, recenzenci i CI nigdy jej nie zobaczą, jeśli jej nie przeniesiesz.

Etap łańcuchaArtefaktRola gstack, która go wytwarzaGdzie gstack go zapisujeCo dokładasz ty
Planintent.md/office-hours, /plan-ceo-reviewDesign doc w ~/.gstack/projects/Commitujesz go; product owner go akceptuje
Designspec.md/plan-eng-review (kryteria akceptacji, macierz testów)Plan testów w ~/.gstack/projects/Commitujesz go; każde kryterium zamieniasz w nazwany test
Buildplan.md i diffPlan Claude Code przejrzany przez /plan-eng-reviewPlik planu, potem commityCommitujesz zatwierdzony plan obok zmiany
TestDowody z testów/qa oraz audyt pokrycia w /ship.gstack/qa-reports/, nowe pliki testówCI musi uruchamiać nowe testy; raport dołączasz do PR
ReviewUstalenia z przeglądu/review, /codexPoprawki na miejscu (oznaczone w raporcie jako [AUTO-FIXED]) i zapis przegląduCode owner czyta ustalenia, a nie cały diff
MaintainZapis incydentu, kolejna intencja/investigate, /retro, /canaryWynik sesji, .context/retros/Zapis incydentu piszesz sam

Dwa ogniwa, których gstack w ogóle nie wytwarza, to intencja i specyfikacja zapisane w repozytorium oraz zapis incydentu; całą resztę wystarczy przenieść do repozytorium.

Jak udowodnić wynik gstack bez czytania każdej linii?

Dział zatytułowany „Jak udowodnić wynik gstack bez czytania każdej linii?”

gstack obiecuje, że role wyłapią to, co inaczej wyłapałbyś czytając kod. Zrób z każdej takiej obietnicy coś sprawdzalnego:

  • Kryteria akceptacji jako testy. Po przeniesieniu planu testów każde kryterium wskazuje test. /ship dopisuje testy tam, gdzie brakuje pokrycia, a /qa dodaje test regresyjny do każdego naprawionego błędu. Uruchamia je CI, nie agent. Zobacz kryteria akceptacji, które da się sprawdzić testem.

  • Bramka, która zatrzymuje turę. Opcjonalny gstack-verify-gate to hook Stop, który nie pozwala Claude Code zakończyć tury, dopóki twoja komenda weryfikacyjna nie przejdzie. Zadeklaruj komendę w CLAUDE.md, zaufaj jej raz na repozytorium, a potem zarejestruj hook (terminal, w katalogu głównym repozytorium):

    Okno terminala
    echo '<!-- gstack:verify: npm test -->' >> CLAUDE.md
    ~/.claude/skills/gstack/bin/gstack-verify-gate --trust
    ~/.claude/skills/gstack/bin/gstack-settings-hook add-event --event Stop \
    --command ~/.claude/skills/gstack/bin/gstack-verify-gate --source verify-gate

    Zmiana zadeklarowanej komendy unieważnia zaufanie, dopóki ponownie nie uruchomisz --trust. Po trzech zablokowanych próbach hook pozwala zakończyć turę z ostrzeżeniem, więc nie zapętla się w nieskończoność.

  • Liczą się tylko świeże przeglądy. gstack ocenia każdy przegląd diffa jako CURRENT, STALE lub UNVERIFIED względem odcisku drzewa roboczego. Przegląd kodu, który potem się zmienił, się nie liczy, a /ship czyta tę samą ocenę.

  • Dowody z testów związane z kodem, na którym powstały. gstack-evidence run --label unit -- npx vitest run opakowuje komendę testową, przepuszcza jej kod wyjścia i zapisuje, na jakim odcisku drzewa roboczego się wykonała. Podkomenda check ocenia każdą etykietę jako FRESH, STALE lub MISSING, a /ship powołuje się na świeże dowody zamiast ponownie uruchamiać testy. Zielony przebieg na wczorajszym kodzie się nie liczy.

  • Dwa modele, jeden diff. /review działa na Claudzie, a /codex na Codeksie, więc mogą przeoczyć różne rzeczy. Najpierw czytaj ustalenia zgłoszone przez oba.

  • Nazwany podpis. Ty akceptujesz design doc i przejrzany plan. Code owner merguje przy zielonym CI i rozwiązanych ustaleniach z przeglądu. Strona o pakiecie dowodów opisuje, co taki PR powinien zawierać.

ObjawPrzyczynaWyjście z sytuacji
Skille nie pojawiają się w Claude CodeSetup się nie zakończył albo sesja powstała przed nimcd ~/.claude/skills/gstack && ./setup, potem restart. Jeśli nadal ich nie ma, sprawdź, czy istnieją linki ~/.claude/skills/gstack-* lub ~/.claude/skills/<nazwa> (ls ~/.claude/skills), i uruchom ./setup ponownie. Jeśli linki są, a Claude nadal twierdzi, że nie widzi skilli, dodaj do CLAUDE.md projektu sekcję ## gstack z README: wymienia ona skille, żeby Claude do nich kierował, ale ich nie rejestruje
Setup kończy się komunikatem „Not registered (a skill you own already uses the name)”Masz własny skill qa/ albo ship/Zmień nazwę swojego albo przejdź na ./setup --prefix, żeby nazwy przestały kolidować
/qa lub /browse nie działa na Linuksie albo WindowsieDołączony Chromium się nie zainstalował albo nie może wystartowaćcd ~/.claude/skills/gstack && bun install && bun run build. Na Ubuntu 24.04+ z zablokowanymi przestrzeniami nazw użytkownika ustaw GSTACK_CHROMIUM_NO_SANDBOX=1
Sesja kolegi po obiedzie zachowuje się inaczejTryb zespołowy aktualizuje gstack przy starcie sesji, najwyżej raz na godzinęPrzy wspólnym repozytorium ustalcie, kto i kiedy robi aktualizację, najpierw czytajcie CHANGELOG i uruchamiajcie /gstack-upgrade świadomie
/office-hours zamienia małą funkcję w pitch produktuZbyt ogólne otwarcie zostawia mu swobodę szukania większego produktu, a tryb buildera wręcz szuka wersji „wow”Wskaż użytkowników, ograniczenia i to, co jest poza zakresem, jak w prompcie powyżej; potem uruchom /plan-ceo-review w trybie utrzymania zakresu lub redukcji

Wybierz gstack, gdy chcesz wyrazistych ról z rozbudowanym QA w przeglądarce i automatyzacją release’u, a pracujesz głównie w Claude Code. Superpowers lepiej pasuje, gdy chcesz mniejszej, opartej na testach dyscypliny, która uruchamia się sama, a GSD — gdy twoim problemem jest utrata kontekstu w długim, wielofazowym projekcie. Dwa pakiety ról naraz dają dwie komendy /review i dwie opinie o procesie, więc wybierz jeden. Porównanie frameworków zestawia je obok siebie.