Przemysław Zalewski

Skill dla agenta · Łańcuch dostaw

Aktualizuj wszystkie repozytoria, nie ufając wydaniom na ślepo

Aktualizacje zależności się odkłada, bo każda to małe ryzyko: zmiana łamiąca albo zatrute wydanie z przejętego konta. Aktualizacja zależności to darmowy skill dla Claude Code i Codexa, który robi nudną część we wszystkich Twoich repozytoriach: czeka tydzień, zanim weźmie wydanie, czyta, co naprawdę opublikowano, migruje to, co się psuje, uruchamia Twoje testy i zapisuje, dlaczego zaktualizował albo nie.

Dodaj do Claude Użyj w Codexie Kod na GitHubie

/update-dependencies · Wersja 0.2.0, aktualizacja · za darmo, MIT · Działa w Claude Code, Codex

Dlaczego automatyczne aktualizacje to za mało

Najnowsze wydania są najbardziej ryzykowne. Ataki na npm publikują zatrute wersje popularnych paczek i liczą na to, że wszyscy pobiorą je w ciągu kilku godzin. Krótkie czekanie to najtańsza obrona: npm wymusza je ustawieniem min-release-age, a Dependabot cooldownem.

Numer wersji nic nie mówi o kodzie. Skill pobiera obie wersje z rejestru, sprawdza je z opublikowanym skrótem integralności i porównuje: nowe skrypty instalacyjne, binarki, zaciemniony kod, nowy odczyt tokenów, innego wydawcę, brak atestacji provenance, zmianę licencji.

Tagi się przesuwają. GitHub zaleca przypinanie akcji do pełnego SHA commita, a tagi obrazów Dockera też potrafią się zmienić pod spodem. Skill przypina jedno i drugie i zostawia wersję obok, żeby dało się ją przeczytać.

Boty otwierają pull request na każdą paczkę i stają przy czerwonym buildzie. Wersje major wymagają przeczytania przewodnika migracji i zmian w kodzie. Tę część robi tu agent.

Jak to działa

  1. 1

    Uruchamiasz jedną komendę

    /update-dependencies bez argumentów przechodzi przez wszystkie znane repozytoria. Pierwsze uruchomienie znajduje Twoje repozytoria git i to, czego używają: projekty npm, wersje Node.js, Dockerfile, GitHub Actions, przypięte paczki Pythona, paczki i pody Xcode.

  2. 2

    Wybiera bezpieczne wersje

    Dla każdej zależności: najnowsze stabilne wydanie starsze niż 7 dni, nigdy niższe niż zainstalowane. Repozytoria z niezacommitowaną pracą pomija, a Twoje blokady i notatki w ~/dependencies/settings.json szanuje.

  3. 3

    Sprawdza przed instalacją

    Aktualizacje npm porównuje paczka do paczki i sprawdza ze skrótem z rejestru. Przy wersjach major czyta changelog i notatki o migracji. Wszystko, co podejrzane, wstrzymuje i opisuje, zamiast instalować.

  4. 4

    Migruje i weryfikuje

    Wersje major przechodzą przez codemody i przewodnik migracji. Potem idą Twoje własne testy: typy, testy, lint, build. Zmianę, która nie przejdzie, cofa z podaniem powodu.

  5. 5

    Wszystko zapisuje

    Dziennik z wyprzedzeniem zapisu (WAL) pozwala dokończyć przerwane uruchomienie. Każde repozytorium dostaje czytelny dziennik: co zaplanował, sprawdził, zastosował, wstrzymał i zweryfikował. Zmiany zostają w Twoim katalogu roboczym.

Jak to wygląda

Skrócone. Przykładowe wejście i wynik.

Claude Code
/update-dependencies
32 repozytoria, 89 projektów npm, 9 workflowów, 3 Dockerfile
web: vite 6.4.1 → 7.2.2 (major, zmigrowane: konfiguracja przez defineConfig), 14 aktualizacji minor i patch, testy przeszły
api: some-lib 2.9.0 → 3.0.0 wstrzymane: licencja zmieniona z MIT na BUSL-1.1
site: actions/checkout v4 → 3d3c42e… # v7.0.1, FROM node:22 → node:26.13.0-bookworm-slim@sha256:…
docs: pominięte, niezacommitowane zmiany
Dziennik: ~/dependencies/repos/<repo>/log.md

Co dostajesz

  • Porównuje opublikowane paczki obu wersji: skrypty instalacyjne, binarki, zaciemniony kod, odczyt tokenów, nowego wydawcę, utratę provenance, zmianę licencji.
  • Migruje wersje major codemodami i według przewodnika migracji, potem uruchamia Twoje testy i cofa to, co nie przejdzie.
  • Przypina GitHub Actions do SHA commitów, a obrazy Dockera do digestów.
  • Ustawienia, blokady i notatki, dziennik z wyprzedzeniem zapisu (WAL) i czytelny dziennik każdego repozytorium w ~/dependencies.

Powstał z prawdziwej aktualizacji 26 repozytoriów

Skill to to, w co zamienił się jeden długi dzień aktualizowania moich repozytoriów, 3 listopada 2026: React 17 na 19, ESLint 7 na 10, Babel 8, three.js z r170 na r186, Anthropic SDK 1.x i npm audit na zero w 24 z 26 repozytoriów.

Ten sam dzień pokazał, po co są kontrole. Zwykły zakres ^ wciągnął wranglera 4.157, wydanego kilka godzin wcześniej, do 22 lockfile’ów. Dołączone SDK okazało się zbudowane z paczki pośredniej sprzed jednego dnia. Obie zasady, tydzień czekania dla każdej paczki i sprawdzenie lockfile’a po każdej instalacji, są teraz częścią każdego uruchomienia.

Dla kogo

  • Programiści z wieloma małymi repozytoriami: projekty poboczne, strony klientów, narzędzia.
  • Zespoły, które chcą aktualizacji bez mergowania pull requesta bota dla każdej paczki.
  • Każdy, kto chce wiedzieć, dlaczego dane wydanie zainstalowano albo nie.

Dla kogo nie

  • Wybieranie nowych bibliotek albo przebudowę architektury.
  • Publikowanie własnych paczek.
  • Repozytoria bez testów: wtedy weryfikacja kończy się na instalacji i buildzie.

Instalacja

Wybierz miejsce, w którym już pracujesz. Każda opcja instaluje ten sam otwarty skill. Wymaga Claude Code albo Codexa z dostępem do powłoki, Node 20 lub nowszego, gita, npm 11.10 lub nowszego dla min-release‑age i dostępu do rejestrów paczek. Ustaw GITHUB_TOKEN, żeby mieć wyższy limit API GitHuba.

Claude Code

W sesji: dodaj marketplace, zainstaluj paczkę, przeładuj. Paczka przynosi też pozostałe skille.

w sesji Claude Code
/plugin marketplace add Ciunkos/skills
/plugin install ciunkos@ciunkos
/reload-plugins
potem
/update-dependencies

Codex

Sklonuj repozytorium i podlinkuj skill do ~/.agents/skills. Otwórz nową sesję i wywołaj go przez $update-dependencies.

terminal
git clone https://github.com/Ciunkos/skills ~/ciunkos-skills
mkdir -p ~/.agents/skills
ln -s ~/ciunkos-skills/skills/update-dependencies ~/.agents/skills/update-dependencies

Nie działa w claude.ai, ChatGPT.

Przejrzyj kod · Wydania i zmiany · Aktualizacja

Zrobię to za Ciebie

Chcesz, żeby ktoś to robił za Ciebie?

Tak samo utrzymuję projekty klientów: aktualizacje sprawdzone, zanim wejdą, wersje major zmigrowane, testy zielone. Albo pomagam najpierw dopisać testy, żeby aktualizacje dało się w ogóle zweryfikować.

Nowy skill prosto na maila

Jeden krótki mail, kiedy wyjdzie nowy skill albo któryś mocno się zmieni. Bez newslettera i bez sekwencji sprzedażowych.

Klikając „Daj mi znać”, zgadzasz się na te maile. Trzymam Twój adres, dopóki się nie wypiszesz (jedno kliknięcie w każdym mailu), i nikomu go nie przekazuję. Pytania albo usunięcie: ciunkos@gmail.com. Administrator danych: Przemysław Zalewski, dane w stopce.

Gotowe. Następny skill trafi do Twojej skrzynki. Każdy mail ma wypis jednym kliknięciem.

Wolisz GitHuba? Obserwuj wydania w repozytorium.

FAQ

Pytania

Czy robi commity albo pull requesty?
Nie. Zmiany zostają w katalogu roboczym każdego repozytorium, a dziennik w ~/dependencies. Co dalej, decydujesz Ty.
Czy może działać według harmonogramu?
Nie instaluje harmonogramu. W README jest prompt dla harmonogramu Twojego agenta. Uruchomienie nigdy nie czeka na odpowiedź: to, co wymaga decyzji, wstrzymuje i opisuje.
Co znaczy „wstrzymane”?
Aktualizacja nie została zainstalowana, a dziennik mówi dlaczego: podejrzany sygnał w wydaniu, zmiana licencji, blokada w ustawieniach albo wydanie młodsze niż 7 dni.
Jak zostawić paczkę na starej wersji?
Dodaj blokadę w ~/dependencies/settings.json, na przykład "some-lib": { "hold": "<3.0.0", "reason": "3.0 zmieniło licencję" }. Działają też notatki zwykłymi słowami; agent czyta je przed planowaniem.
Czy uruchamia skrypty instalacyjne?
Nie. Każda komenda npm idzie z --ignore-scripts, a nowe albo zmienione skrypty instalacyjne w wydaniu to jeden z sygnałów, które wstrzymują aktualizację.
Jakie ekosystemy obsługuje?
npm, wersje Node.js, Dockerfile, GitHub Actions, przypięte paczki i lockfile’e Pythona oraz SwiftPM i CocoaPods w Xcode. Każdy to osobny moduł wykrywania, więc da się dodać kolejne.
Czy działa w ChatGPT albo na claude.ai?
Nie. Potrzebuje powłoki i Twoich repozytoriów. Użyj Claude Code albo Codexa.

W 30 minut sprawdzisz, czy do siebie pasujemy

Ty przynosisz problem, ja pytania. Chcesz najpierw liczbę? Konfigurator pokaże godziny, widełki ceny i termin startu.

albo napisz na ciunkos@gmail.com

Po umówieniu dostajesz zaproszenie do kalendarza. Nic więcej do wypełniania.

Moja obietnica

  • Odpowiedź w 24 godziny. Odpowiadam w ciągu 24 godzin w dni robocze. Osobiście, nie bot. Wiadomości z weekendu: do poniedziałku, do 12:00.
  • Spóźnienie znaczy gratis. Jeśli się spóźnię, pierwsza godzina pracy jest za darmo. Nie musisz o to prosić.
  • Zakres na piśmie w 24 godziny. Bezpłatna rozmowa 30 minut bez prezentacji firmy, potem zakres i cena na piśmie w ciągu 24 godzin. Ty decydujesz.
  • Osoba, która wykona pracę. Rozmawiasz z osobą, która wykona pracę. Bez warstwy sprzedaży, bez przekazywania dalej.
  • Odzywam się tylko z czymś nowym. Odzywam się tylko wtedy, gdy mam dla Ciebie coś nowego. Nigdy „czy jest już decyzja?”.
  • Uczciwe „to nie dla mnie”. Jeśli nie jestem właściwą osobą, mówię to na rozmowie i wskazuję kogoś, kto jest.

Rozmowy w tym tygodniu · start pracy 3 listopada 2026 · Kontrakt B2B · Wrocław, zdalnie

Kod, domena i konta są Twoje od pierwszego dnia. Nic nie trzymam jako zakładnika.