W niedzielę 18 października na Hacker News wylądował Show HN o nazwie Sphinx. To git hook dla osób, które kodują z agentami: przy pushu na chronioną gałąź operacja staje, a narzędzie pyta cię, co zmiana faktycznie robi. Nie recenzuje kodu, bo to robiły już setki narzędzi. Sphinx sprawdza człowieka po drugiej stronie klawiatury. Całość jest darmowa, na licencji MIT, kod leży w repozytorium parthh01/sphinx, a wątek na HN zebrał 222 punkty i 75 komentarzy (odczyt 18 października, liczniki żywe).
Motyw jest znany każdemu, kto choć raz wypił z kranu vibe codingu: agent generuje 500 linii, testy przechodzą, a po tygodniu nie umiesz odpowiedzieć, dlaczego to w ogóle działa. Strona projektu stawia sprawę krótko: „You can outsource your thinking, but not your understanding”. Za projektem stoi profil Partha Bhagata, a na HN publikowało konto critiquebrowser, które od 2024 roku wrzuca tam własne narzędzia. Tożsamości obu kont wprost nie potwierdziłem, ślady są spójne.
- Jak działa Sphinx
- Jak go podpiąć
- Co mówi dyskusja na Hacker News
- Kiedy to ma sens, a kiedy nie
- Co z tego dla Polski
| Pytanie | Odpowiedź (stan na 18 października 2026) |
|---|---|
| Co to jest | Git hook na licencji MIT, pakiet sphinx-understand w npm, wersja 0.1.8, repozytorium utworzone 14 października |
| Dla kogo | Programiści shipujący kod z Codexa, Claude Code, Cursora, OpenCode albo Pi, a także czysty git push bez agenta |
| Jak się wpiąć | npm install -g sphinx-understand, potem sphinx install i sphinx init w repozytorium |
| Co robi przy złej odpowiedzi | Wyjaśnia błąd i daje nowy scenariusz, push stoi do skutku, maksymalnie 25 minut |
| Ile kosztuje | Narzędzie nic; płacisz tylko za model recenzenta: plan Claude Code albo Codex, kredyty OpenRouter lub własny endpoint |
Jak działa Sphinx
Domyślnie chronione są gałęzie main i master: przy pushu na nie git staje, a Sphinx otwiera kwestionariusz pod lokalnym adresem w przeglądarce (na Linuksie i po SSH czytasz go w terminalu, gdzie działają komendy /hint, /learn, /dispute i /skip). Pytania generuje osobny model recenzent, który czyta commit przez narzędzia gita w trybie tylko do odczytu i nie widzi rozmowy, jaką odbyłeś z agentem. Recenzent, który znałby twoje uzasadnienia, pytałby cię o twoje argumenty, a nie o kod.
Zakres pytań opisuje README: zachowanie, tryby awarii i niezmienniki, a nie nazwy plików czy funkcji. Mała zmiana dostaje jedno pytanie, duża do trzech przy domyślnej głębokości. Sprawdzenie jest otwarte: możesz w trakcie czytać kod albo poprosić agenta, żeby ci go pokazał. Zła odpowiedź kończy się wyjaśnieniem i nowym scenariuszem do rozegrania. Po zaliczeniu push jedzie dalej, a przepustka ważna jest 24 godziny, więc ponowny push tej samej zmiany nie odpytuje od nowa.
Sphinx przewidział też człowieka w słabszy dzień. sphinx yolo wyłącza sprawdzenia (dla repozytorium albo globalnie), „Skip this time” przepuszcza push natychmiast, a każdy taki krok ląduje w logu widocznym przez sphinx status. Twoje odpowiedzi nie wracają do agenta kodującego, a pliki .env i klucze prywatne są domyślnie pomijane. Kod z commitu wychodzi jednak poza maszynę: trafia do dostawcy modelu recenzenta razem z twoimi odpowiedziami i plikiem .sphinxcontext.md. Wersja 0.1 sprawdza wyłącznie lokalne commity i pushy, więc scalania przez webowy interfejs, wymagania CI i deploymenty pozostają poza zasięgiem.
Jak go podpiąć
Kroki z README wyglądają tak:
npm install -g sphinx-understand, potemsphinx install. Wymagany Node 22.19 lub nowszy, działają macOS, Linux i WSL, natywnego Windows nie ma. Ta komenda ustawia globalnecore.hooksPath, więc od razu obejmuje wszystkie repozytoria na maszynie; istniejące hooki są łańcuchowane i lecą najpierw.- Podłącz agenta: w Codexie otwierasz
/hooksi ufasz hookom Sphinxa, w Claude Code/mcppowinno pokazaćsphinx. Ten krok jest opcjonalny, git checkpoint działa też bez niego. - W repozytorium uruchom
sphinx init, co tworzy trzy pliki:.sphinxconfigz polityką,.sphinxignoreze ścieżkami, których nigdy nie czytać, i.sphinxcontext.mdz opisem projektu dla recenzenta. sphinx doctorpotwierdza, że integracje stoją na miejscu.git push origin maini odpowiadasz w kwestionariuszu. Nieinteraktywnie to samo robiąsphinx install --yes --preset claude-economy --agents claudeorazsphinx init --yes --branches main.
Recenzentem może być zalogowany CLI Claude Code albo Codex (koszt idzie z puli planu, presety sugerują Haiku albo model GPT-6 Luna), klucz OpenRouter albo dowolny endpoint zgodny z OpenAI. Uwaga na rachunek: domyślnie nie ma limitu zapytań do modelu, kapsel ustawia się ręcznie, np. sphinx config --max-model-calls 30. Typowe sprawdzenie to 5-8 zapytań plus jedno na odpowiedź. Dokumentacja wylicza, że przy niższych stawkach Haiku 5.5 paczka 30 tysięcy tokenów wejścia i 2 tysięcy wyjścia to około 0,004 USD, a wszystkie żywe przebiegi dołączonej ewaluacji zjadły 472 zapytania za łącznie 0,34 USD, z czego pojedyncze sprawdzenie na tanim modelu GLM 5.3 Flash kosztowało od 0,017 do 0,038 USD. To grosze, dopóki ktoś nie podepnie drogiego modelu pod wielki diff.
Przyznaję zakres własnej próby: sklonowałem repozytorium i uruchomiłem node bin/sphinx.js --help, co wypisało pełną listę komend bez instalacji. Dalej nie poszedłem, bo sphinx install przepina globalną konfigurację gita, a pierwszy quiz wymaga konta u dostawcy modelu.
Co mówi dyskusja na Hacker News
Najkrótszy komentarz wątku trafił w najsłabszy punkt strony. Hasło „you can outsource your thinking” z nagłówka zacytował totallykvothe i dodał tylko: „I’m sorry, what?”. Strona Sphinxa kładzie tę frazę w hero sekcji z żartobliwą atrybucją „Sun Tzu”, która w rzeczywistości linkuje do wpisu konta yacineMTB na X. Narzędzie dla ludzi, którzy myślenie już zlecili, sprzedaje się więc hasłem o myśleniu.
Zarzuty merytoryczne poszły w dwie strony. jamienk przewidział „Confirmation Fatigue”: „Remember Confirmation Fatigue? Soon we will have agents that interact with Sphinx for us”. compounding-err zapytał wprost: sprawni użytkownicy AI nie potrzebują quizu, niesprawni dostaną tylko tarcie, więc po co to komu. lecarore zauważył, że nic nie stoi na przeszkodzie, by wkleić pytanie z powrotem do agenta, a dawnerd, próbujący pilnować norm w zespole, napisał szczerze: „they’d probably just ask their agent to remove the hook anyways like they do with our husky hook”. Głos porządkowy od linkdd: nazwa koliduje z generatorem dokumentacji Pythona ze strony sphinx-doc.org.
Strona druga wagi też miała świadków. nkmnz przypomniał, że „The number of developers roughly doubles every ~3 years, so at any given time, half of the people building software have less than 3 years of experience”, i argumentował, że brama zmuszająca do zrozumienia to nie nowość, tylko stara szkoła. sailorganymede, autor podobnego narzędzia vibecheck.dev działającego na poziomie merge’a pull requesta, opisał kulturę, w której „We started running into bad bugs recently due to people just copy pasting the Jira into the prompt”. thomask1995 widzi w tym szansę dla maintainerów open source zalewanych obcym kodem, a fwlr proponuje przenieść bramę wcześniej: „I think it’ll really take off if you change ‚before pushing to prod’ to ‚before requesting another human’s time or attention’”. hypfer z warsztatu: kod z LLM dzieli mu się na to, na czym mu zależy, i na resztę, więc „So this hook would either ask me things I know, or it would ask me things I do not care about”. Do tego dochodzi komentarz chacha-bong, który podobne narzędzie zbudował i porzucił: nie lubi być przepytywany przez coś, co ma działać jak magia.
Skalę problemu, na który odpowiada ten hook, dzień po publikacji Sfinksa pokazał osobny wątek na Hacker News: pytanie, co robić z kodem od AI, którego nikt nie rozumie, zebrało 574 punkty i ponad 670 odpowiedzi. Naszą analizę tego wątku, z danymi Stack Overflow, DORA, GitClear i METR, opisaliśmy w tekście kod od AI, którego nikt nie rozumie: co z tym realnie robią zespoły.
Kiedy to ma sens, a kiedy nie
Najbardziej uczciwa opinia o Sphinxie pochodzi z jego własnego README: „This is practice, not a security gate”. Każdy z dostępem do maszyny, w tym agent, obejdzie hook albo wyleci poza niego. Zaliczenie nie dowodzi, kto napisał kod ani że zrozumiałeś go samodzielnie. Do tego recenzent to LLM i autor dokumentuje jego potknięcia: w wynikach ewaluacji Haiku 5.5 odrzucił poprawną odpowiedź o paddingu CSS, a Sonnet 5.5 odtworzył ten sam fałszywy negatyw. Autor zastrzega też wprost, że to „not an all-green semantic evaluation”. Narzędzie, które potrafi zatrzymać cię za dobrą odpowiedź, jest irytujące w zespole i groźne w trybie „zawsze włączony”.
Ma sens wszędzie tam, gdzie wróg to nie złośliwiec, tylko własne przyzwyczajenie. Solo developer dostaje moment zadumy przed pushem za grosze i bez zakładania konta, bo Sphinx takiego nie prowadzi. Maintainer open source, któremu przychodzą PR-y pisane agentami, może odpytać autorów u źródła. Zespoły z normami zyskują licznik pominięć, choć jak pokazuje komentarz dawnerda, normy i tak przegrywają z agentem z uprawnieniami do usuwania hooków. Alternatywy są rozproszone: vibecheck.dev stawia podobny quiz na poziomie pull requesta, maximg68 i lowkeyokay pisali o własnych skillach przepytyujących PR-y, aavisangle pyta osobną sesję agenta bez historii, a rDr4g0n zamiast narzędzia pisze staranny opis PR-a, który wymusza rozumienie. Identycznego mechanizmu quizu zatrzymującego git push nie znalazłem nigdzie indziej.
Co z tego dla Polski
Po polsku nie ma nic: interfejs, dokumentacja i strona są wyłącznie angielskie, a w dokumentacji, którą przeczytałem, nie znalazłem opcji zmiany języka pytań. W jakim języku recenzent odpytuje, nie rozstrzygnąłem, bo żywego konta modelu nie zakładałem. Samo podpięcie wygląda tak samo jak wszędzie, recenzenta obsługuje OpenRouter albo własny endpoint. Jeśli dopiero zaczynasz z agentami, u nas opisany jest vibe coding od podstaw, a osobny tekst o bezpieczeństwie vibe codingu pokazuje, co się dzieje, gdy kod leci do produkcji bez żadnej kontroli. Sphinx wpisuje się w ten drugi temat jako propozycja kontroli, która siedzi najbliżej człowieka.
Sphinx nie sprawi, że kod będzie lepszy. Robi coś mniejszego: każe ci przez moment być programistą w chwili, w której zwykle jesteś tylko kurierem.
Źródła
- Strona narzędzia Sphinx (mechanizm, wymogi,
sphinx yolo, komenda instalacji), odczyt 18 października 2026: https://sphinx-six-theta.vercel.app/ - Repozytorium
parthh01/sphinxz plikiem README (kroki instalacji, limity, koszty, zastrzeżenia bezpieczeństwa), odczyt 18 października 2026: https://github.com/parthh01/sphinx - Metadane repozytorium przez GitHub API (84 gwiazdki, JavaScript, MIT, daty utworzenia i ostatniego pusha), odczyt 18 października 2026: https://api.github.com/repos/parthh01/sphinx
- Wątek Show HN na żywo (liczniki punktów), odczyt 18 października 2026: https://news.ycombinator.com/item?id=50137950
- Pełne drzewo wątku 50137950 z komentarzami (222 punkty, 75 komentarzy, cytaty komentujących), odczyt 18 października 2026: https://hn.algolia.com/api/v1/items/50137950
- Historia publikacji konta critiquebrowser na HN, odczyt 18 października 2026: https://hn.algolia.com/api/v1/search?tags=author_critiquebrowser,story
- Pakiet
sphinx-understandw rejestrze npm (wersja 0.1.8, silnik Node 22.19+, data pierwszej publikacji 16 października), odczyt 18 października 2026: https://registry.npmjs.org/sphinx-understand - Wyniki ewaluacji
eval/RESULTS.md(koszty zapytań, fałszywe negatywy Haiku i Sonnet 5.5), odczyt 18 października 2026: https://raw.githubusercontent.com/parthh01/sphinx/main/eval/RESULTS.md - Dokumentacja konfiguracji
docs/configuration.md(presety modeli, ceny referencyjne Haiku 5.5, brak domyślnego limitu zapytań), odczyt 18 października 2026: https://raw.githubusercontent.com/parthh01/sphinx/main/docs/configuration.md - Profil GitHub Partha Bhagata (parthh01), odczyt 18 października 2026: https://api.github.com/users/parthh01
- Repozytorium
bhurghundii/vibecheck.devz wątku HN (alternatywa na poziomie pull requesta), odczyt 18 października 2026: https://github.com/bhurghundii/vibecheck.dev
