Przejdź do głównej zawartości

Pakiety dyscypliny: skille Pococka, gstack, agent-skills, Ponytail i ECC

Pakiety dyscypliny to zestawy skilli, które zmieniają sposób pracy agenta programistycznego, zamiast dawać mu nowe narzędzia. Skille Matta Pococka, gstack, addyosmani/agent-skills i Everything Claude Code (ECC) decydują, co zbudować i w jakiej kolejności. Ponytail decyduje, ile kodu napisać. Sprawdza się para: jeden z pierwszych czterech plus Ponytail, nigdy dwa pakiety procesowe naraz.

Prosisz agenta o filtr dat na liście faktur. Agent przepytuje cię, pisze specyfikację, rozbija ją na tickety i zaczyna od testów — dokładnie tak, jak obiecuje pakiet. Pull request i tak dodaje dwie paczki npm, interfejs z jedną implementacją i flagę konfiguracyjną, której nikt nigdy nie ustawi. Pakiet procesowy pilnuje, żeby agent zbudował właściwą rzecz; nic w nim nie pyta, czy agent nie zbudował jej za dużo.

Ta strona jest dla programisty, który wybiera pakiet, i dla tech leada, który standaryzuje jeden pakiet w zespole. Porównuje pięć najpopularniejszych pakietów pod względem kosztu i kolizji, a potem pokazuje połączenie, które odpowiada na oba pytania.

  • Porównanie pięciu pakietów dyscypliny: na jakie pytanie odpowiada każdy, jak się instaluje, ile kosztuje w kontekście i z czym koliduje.
  • Sprawdzone komendy instalacji dla Claude Code, Codeksa i Cursora, łącznie z dwoma pakietami, które nie instalują się tak, jak sugeruje ich nazwa.
  • Przykładowe uruchomienie /ponytail-review na przerośniętym diffie i co zrobić z listą do usunięcia.
  • Siedmiokrokowy workflow, który łączy jeden pakiet „co budować” z Ponytail, z testami i review poprawności jako bramkami.
  • Trzy prompty do skopiowania i tabelę awarii, które powstają przy łączeniu pakietów.
PakietNa jakie pytanie odpowiadaPunkty wejściaStały koszt kontekstu (Claude Code)Popularność (GitHub, 2026-09-26)Wybierz, gdyUnikaj, gdy
Skille Matta Pococka (mattpocock/skills)Czy ty i agent zgadzacie się, co budujemy?grill-with-docs → to-spec → to-tickets → implement → code-review~1609 tokenów (25 skilli)269,8 tys. gwiazdekGłównym problemem jest rozjazd oczekiwań; chcesz małych, edytowalnych skilliPotrzebujesz trwałego śladu specyfikacji zatwierdzanego przez product ownerów
gstack (garrytan/gstack)Która rola powinna teraz na to spojrzeć?/office-hours, /plan-eng-review, /review, /qa, /ship, /retroTo nie plugin; zmierz własnym gstack-context-bill134,2 tys. gwiazdekChcesz ról produktu, review, QA i release’u z wbudowanym QA w przeglądarce, głównie w Claude CodeNie akceptujesz hooków w ~/.claude/settings.json
addyosmani/agent-skillsW której fazie cyklu jesteś?/spec, /plan, /build, /test, /review, /ship i trzy kolejne~3620 tokenów (34 skille, 4 agenty)99,1 tys. gwiazdekChcesz jednej komendy na fazę i skilli uruchamianych po rodzaju pracyUżywasz już /review lub /ship z innego pakietu
Everything Claude Code (affaan-m/ECC)Czy jeden harness ogarnie wszystko?386 skilli, 68 agentów, 7 hooków~41 515 tokenów267,6 tys. gwiazdekPrzytniesz go do kilku elementówPraca wrażliwa na kontekst albo nie zamierzasz przycinać
Ponytail (DietrichGebert/ponytail)Ile kodu to naprawdę wymaga?/ponytail [lite|full|ultra|off], /ponytail-review, /ponytail-audit~983 tokeny (6 skilli, 3 hooki)146,1 tys. gwiazdekAgenci przesadzają: zbędne zależności, abstrakcje z jedną implementacjąChcesz, żeby decydował o zakresie; on decyduje tylko o rozmiarze

Dwa wnioski z tej tabeli są ważniejsze niż same wiersze. Po pierwsze, cztery pierwsze pakiety się pokrywają: każdy ma własną wizję planowania i review, więc dwa naraz dają dwie komendy /review i dwie opinie o procesie. Po drugie, Ponytail nie pokrywa się z żadnym z nich. Nie ma etapu planowania ani dokumentów; ogranicza tylko to, jak agent pisze to, o czym zdecydował drugi pakiet.

Superpowers (~838 tokenów stale ładowanych) należy do tej samej rodziny „co budować” i ma własną stronę; wszystko, co niżej piszemy o łączeniu, dotyczy też jego.

Skille Pococka są małe i składalne, a kilka z nich to jednolinijkowe delegaty: grill-me tylko wywołuje grilling, a grill-with-docs wywołuje grilling i domain-modeling. Jako framework łańcuch wygląda tak: przepytuj, aż się zgodzicie, zamień rozmowę w specyfikację, rozbij ją na tickety, implementuj każdy ticket od testów i zrób review względem specyfikacji. Etap przepytywania szczegółowo opisuje strona o Grill Me.

Okno terminala
claude plugin install mattpocock-skills

Plugin jest w oficjalnym marketplace, więc nie trzeba niczego dodawać. Skille pluginów mają przestrzeń nazw: wpisz /mattpocock-skills:grill-with-docs, /mattpocock-skills:to-spec i tak dalej.

Potem uruchom setup-matt-pocock-skills raz na repozytorium. Zapyta, do którego trackera mają pisać to-spec i to-tickets (GitHub, Linear albo pliki lokalne), jakich etykiet triage używasz i gdzie mają trafiać dokumenty. Instaluj przez plugin albo przez npx skills, nie oboma sposobami, bo każdy skill pojawi się dwa razy.

gstack to repozytorium Git ze skryptem setup, a nie marketplace pluginów: /plugin marketplace add garrytan/gstack niczego nie instaluje. Wymaga Gita i Buna.

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

--prefix nadaje każdemu skillowi nazwę /gstack-<nazwa>. Bez niego /review z gstack zajmuje nazwę, której Claude Code 2.1.283 już używa jako aliasu wbudowanego /code-review. Dla Codeksa i Cursora sklonuj do ~/gstack i uruchom ./setup --host codex albo ./setup --host cursor. Setup rejestruje też domyślnie włączony hook Stop w ~/.claude/settings.json; ./setup --no-timeline-stop-hook go pomija. Strona o gstack przeprowadza jedną funkcję przez wszystkie role.

Zainstaluj addyosmani/agent-skills i policz skille poprawnie

Dział zatytułowany „Zainstaluj addyosmani/agent-skills i policz skille poprawnie”
/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skills

/review i /ship z pluginu kolidują z gołymi nazwami, których możesz już używać. Wpisuj formę z przestrzenią nazw, /agent-skills:review, żeby mieć pewność, który reviewer rusza.

README mówi o „25 skillach” (24 skille cyklu życia plus meta-skill using-agent-skills); claude plugin details pokazuje 34 skille, bo plugin dostarcza też dziewięć komend cyklu jako skille. Podawaj liczbę dla opisywanej ścieżki instalacji. Jeszcze jedna pułapka: starsze instalacje przez npx skills add kopiowały tylko folder skills/, więc skille odwołujące się do plików z references/ przestawały działać. Jeśli skill wskazuje brakujący plik z references/, zainstaluj go ponownie z aktualnego repozytorium albo użyj ścieżki przez plugin.

Ponytail każe agentowi zatrzymać się na pierwszym szczeblu drabiny, który wystarcza, zanim napisze kod:

  1. Czy to w ogóle musi istnieć? Jeśli nie — pomiń.
  2. Czy to już jest w tym kodzie? Użyj ponownie.
  3. Czy robi to biblioteka standardowa?
  4. Czy robi to natywna funkcja platformy (<input type="date">, ograniczenie w bazie danych, CSS)?
  5. Czy robi to już zainstalowana zależność?
  6. Czy da się to zrobić w jednej linii?
  7. Dopiero wtedy: minimum, które działa.

README wprost mówi, że walidacja na granicy zaufania, obsługa utraty danych, bezpieczeństwo i dostępność nigdy nie są cięte, a skill każe agentowi zbudować wszystko, o co wyraźnie poproszono, bez ponownej dyskusji. Na tej zasadzie opiera się połączenie opisane niżej: wszystko, czego wymaga twoja specyfikacja, liczy się jako wyraźna prośba.

Wyślij to jako dwa osobne prompty:

/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

Poziom zmieniasz przez /ponytail lite, /ponytail full (domyślny), /ponytail ultra albo /ponytail off. Diff przeglądasz przez /ponytail-review; pełna nazwa z przestrzenią nazw to /ponytail:ponytail-review.

PoziomCo robi agent
liteBuduje, o co prosisz, i jednym zdaniem wskazuje leniwszą alternatywę; ty wybierasz
full (domyślny)Egzekwuje drabinę: najpierw biblioteka standardowa i funkcje natywne, najkrótszy diff
ultraUsuwa, zanim doda, dostarcza jednolinijkowiec i kwestionuje resztę wymagania
offWyłączony na tę sesję

Domyślny poziom dla każdej sesji ustawisz zmienną PONYTAIL_DEFAULT_MODE albo polem defaultMode w ~/.config/ponytail/config.json. Hooki wstrzykują zestaw reguł przy każdym prompcie i do subagentów; PONYTAIL_SUBAGENT_MATCHER (regex dopasowywany do typu subagenta) ogranicza, które subagenty go dostają.

Zmierzony koszt. Na Claude Code 2.1.283 claude plugin details ponytail@ponytail pokazuje ~983 tokeny stale ładowane dla całego pluginu (6 skilli, 3 hooki). Pełna treść skilla ładuje się dopiero wtedy, gdy skill się uruchamia. Trzy hooki (SessionStart, SubagentStart, UserPromptSubmit) działają po stronie harnessu i nie zużywają kontekstu modelu, ale uruchamiają node, więc node musi być w PATH nieinteraktywnej powłoki. Użytkownicy Nix i nvm trafiają na to pierwsi: skille nadal działają, a stała aktywacja po cichu się nie włącza.

ECC to największy zmierzony pakiet: 386 skilli, 68 agentów i 7 hooków, z prognozą około 41 515 tokenów stale ładowanych w Claude Code. To mniej więcej 26 razy więcej niż zestaw Pococka i 42 razy więcej niż Ponytail. Jego README ostrzega, że kopie „mogą zawierać malware”, i wymienia jedyne oficjalne nazwy: repozytorium affaan-m/ECC, paczki npm ecc-universal i ecc-agentshield oraz plugin ecc@ecc. Polecenie z README npx ecc-universal@2.2.2 setup zwraca E404, bo najnowsza wersja w npm to 2.2.1 (sprawdzone 2026-09-26). Jeśli mimo to go chcesz, instaluj wyłącznie z oficjalnych źródeł. W Claude Code:

/plugin marketplace add https://github.com/affaan-m/ECC
/plugin install ecc@ecc

Dla innych agentów uruchom konfigurator w wersji, którą npm naprawdę ma: npx ecc-universal@2.2.1 setup. Nie kończ na instalacji: strona o ECC ma tabelę „zostaw i wytnij”, która tnie go do dziesięciu elementów.

Projekt to aplikacja do fakturowania na Next.js z TypeScriptem. Specyfikacja filtra dat na liście faktur mówi: filtruj po domkniętym zakresie from/to, odrzucaj po stronie serwera to wcześniejsze niż from, trzymaj zakres w URL. Pull request agenta przechodzi testy i dodaje:

  • react-datepicker i date-fns do package.json;
  • interfejs DateRangeProvider z jedyną implementacją DefaultDateRangeProvider;
  • 30-liniowy helper formatIsoDate;
  • flagę filters.enableTimezones, domyślnie false, nigdzie indziej nieczytaną.

Na gałęzi z funkcją (feature branch) uruchom review (Claude Code: /ponytail-review; Codex: @ponytail-review). Skill zwraca jedną linię na znalezisko, z tagiem delete:, stdlib:, native:, yagni: albo shrink:, i kończy bilansem linii. Dla tego diffu wynik w tym formacie wygląda tak (przykład poglądowy, nie zapis prawdziwej sesji):

package.json:L41-42: native: react-datepicker + date-fns for two date fields. <input type="date"> twice, 0 deps.
src/lib/date-range.ts:L1-24: yagni: DateRangeProvider with one implementation. Inline the two values into the query.
src/lib/date-range.ts:L26-55: native: formatIsoDate re-creates what <input type="date"> already returns (YYYY-MM-DD). Delete it.
src/config/filters.ts:L3-9: delete: enableTimezones flag nobody sets. Nothing replaces it.
net: -118 lines possible.

O tym, co robisz dalej, decydują trzy cechy tego wyniku:

  1. Wylicza, ale nie poprawia. /ponytail-review niczego nie zmienia. Cięcia wprowadzasz ty albo agent w osobnym kroku.
  2. Z założenia nie widzi poprawności. Skill wprost wyłącza ze swojego zakresu błędy poprawności, luki bezpieczeństwa i wydajność. Serwerowa kontrola, która odrzuca to wcześniejsze niż from, to walidacja na granicy zaufania: Ponytail jej nie zgłosi i nie wolno jej wyciąć, a to, że w ogóle istnieje, musi potwierdzić review poprawności.
  3. Rozstrzygają testy. Każde cięcie musi zostawić zielone testy ze specyfikacji. Jeśli cięcie psuje test, błędne jest cięcie, a nie test.

Workflow: jeden pakiet „co budować” plus Ponytail

Dział zatytułowany „Workflow: jeden pakiet „co budować” plus Ponytail”

To połączenie rozdziela dwa pytania, które review zadaje bez końca. Pakiet procesowy odpowiada na „czy to właściwa rzecz i czy jest udowodniona?”. Ponytail odpowiada na „czy to najmniej kodu, które to robi?”. Zakładki pokazują, gdzie komendy się różnią; kroki są takie same w każdym narzędziu.

  1. Wybierz dokładnie jeden pakiet procesowy. Skille Pococka, jeśli głównym problemem jest rozjazd oczekiwań; gstack, jeśli chcesz ról i QA w przeglądarce w Claude Code; agent-skills, jeśli chcesz jednej komendy na fazę; Superpowers, jeśli chcesz dyscypliny test-driven, która odpala się sama. Zanim zaczniesz, odinstaluj drugi; nie uruchamiaj dwóch.

  2. Zainstaluj Ponytail na poziomie full i zmierz sesję. Uruchom /context w świeżej sesji Claude Code przed obiema instalacjami i po nich, a dla każdego pluginu claude plugin details <plugin> (dla gstack, który nie jest pluginem, uruchom jego gstack-context-bill). Zatrzymaj się, jeśli suma cię zaskoczy: płacisz ją przy każdym zapytaniu.

  3. Uzgodnij zakres, zanim ruszy drabina. Uruchom wywiad z pakietu (grill-with-docs, /office-hours albo /spec). Pierwszy szczebel Ponytail, „czy to musi istnieć?”, jest bezpieczny dopiero wtedy, gdy zakres jest spisany, bo wszystko, czego chce specyfikacja, liczy się jako wyraźna prośba.

  4. Zapisz kryteria akceptacji jako testy. Użyj kroku specyfikacji i ticketów z pakietu (to-spec i to-tickets albo /plan) i niech każde kryterium wskazuje test. Zobacz kryteria akceptacji, które da się sprawdzić testami.

  5. Implementuj od testów z włączonym Ponytail. Pakiet prowadzi TDD; Ponytail kształtuje każdą zmianę. Jego własne minimum to jedna uruchamialna kontrola dla nietrywialnej logiki i nigdy nie zgłasza jej do usunięcia. Testy ze specyfikacji to zamówiona praca, więc je też zostawia.

  6. Zrób review w dwóch przebiegach. Najpierw poprawność, potem rozmiar:

    /code-review high
    /ponytail-review
  7. Zatwierdzaj na podstawie dowodów, nie czytania. CI uruchamia testy, sprawdzanie typów i lint na przyciętej gałęzi. Człowiek zatwierdza dwa razy: specyfikację przed implementacją i wyniki review przed merge’em. Pull request niesie wyniki testów, oba raporty z review i bilans linii, tak jak opisuje to strona o pakiecie dowodów.

Jak udowodnić, że to połączenie opłaca się w twoim repozytorium?

Dział zatytułowany „Jak udowodnić, że to połączenie opłaca się w twoim repozytorium?”

Nie wybieraj pakietu po liczbie gwiazdek ani po benchmarku autora. README Ponytail podaje średnio o 54% mniej linii kodu w 12 zadaniach na Claude Haiku 4.5 (n=4, opis benchmarku z 2026-06-18). To wynik raportowany przez autora, na jednym repozytorium open source, bliski zera tam, gdzie kod był już minimalny. Rozstrzyga tylko benchmark na twoim repozytorium.

Zrób dwutygodniowy pilotaż na pięciu do dziesięciu prawdziwych ticketach z zainstalowaną parą i porównaj je z ticketami sprzed niego:

  • Testy pozostają wyrocznią. Każdy zmergowany ticket ma zielone testy akceptacyjne w CI. Ticket z pilotażu, który przeszedł dopiero po usunięciu testu, liczy się jako porażka.
  • Rozmiar diffu i nowe zależności. Zapisuj git diff --stat i liczbę dodanych paczek na ticket.
  • Obciążenie review. Licz znaleziska poprawności na pull request; pakiet, który zmniejsza diffy, ale zwiększa liczbę błędów, nie pomaga.
  • Koszt kontekstu. Zapisuj /context na starcie sesji; para powinna mieścić się w kilku tysiącach tokenów.
ObjawPrzyczynaNaprawa
Ponytail nigdy się nie włącza, brak błęduHooki uruchamiają node, którego nie ma w PATH nieinteraktywnej powłoki (nvm, Nix)Udostępnij node powłokom nieinteraktywnym (w zsh wyeksportuj PATH w ~/.zshenv; albo podlinkuj node do /usr/local/bin), zrestartuj i sprawdź, czy komunikat startowy pokazuje aktualny poziom
Ponytail pomija funkcję, o którą prosił ticketZakres był tylko w rozmowie, nie w specyfikacji, więc pierwszy szczebel uznał go za spekulacjęWpisz go do kryteriów akceptacji albo napisz w prompcie „explicitly requested”; używaj lite, dopóki zakres się zmienia
Agent usuwa test, żeby zmniejszyć diffMinimum „jednej kontroli” z Ponytail odczytane jako sufitDodaj zasadę pierwszeństwa z promptu powyżej do AGENTS.md; testy wskazane w specyfikacji są obowiązkowe
Startują naraz dwa procesy planowaniaZainstalowane dwa pakiety procesowe, oba uruchamiają się sameZostaw jeden; drugi wyłącz przez claude plugin disable <plugin> i potwierdź w /context
Kontekst sesji rośnie o dziesiątki tysięcy tokenówECC zainstalowany w całościPrzytnij do używanych części albo odinstaluj
Codex ignoruje Ponytail po instalacjiNikt nie zaufał jego hookomOtwórz /hooks w Codeksie, zaufaj im, zacznij nowy wątek
Po odinstalowaniu zostaje status line albo flaga trybuPonytail zapisuje stan poza folderem pluginuUruchom node scripts/uninstall.js z klonu repozytorium przed /plugin remove ponytail