Ciągła dostawa z pomocą AI
Ciągła dostawa z pomocą AI oznacza dostarczanie małych, zweryfikowanych zmian w sposób ciągły i oddanie agentowi klejącej roboty wokół potoku: wiadomości commitów, opisów PR-ów, przeglądu diffów, YAML-a workflow, bramek wdrożeniowych i notatek wydania. Dyscypliną, która to umożliwia, jest commitowanie po każdym ukończonym zadaniu, a nie po całej funkcjonalności.
Spędziłeś cztery godziny, budując funkcjonalność w pojedynczej sesji AI. Diff ma 1200 linii w 18 plikach. Pierwszy komentarz recenzenta brzmi „czy możesz rozdzielić to na mniejsze PR-y?”, a nie możesz, bo zmiany są ze sobą splątane. Potem PR leży dwa dni, czekając na recenzenta, wdrożenie wymaga trzech ręcznych zatwierdzeń w dwóch kanałach Slacka, notatki wydania wciąż są TODO, a w noc, gdy CI zrobiło się czerwone, nikt nie zrobił triage’u aż do standupu.
Ciągła dostawa jest antidotum na wielkie feature branche, a jej zasada jest prosta: dostarczaj małe, zweryfikowane zmiany tak często, jak to możliwe. Zespoły tego nie robią, bo klejąca robota między scalonym PR-em a produkcją — przeglądy, YAML, bramki, changelog, triage awarii — to dokładnie ta mordęga, której nikt nie chce brać na siebie.
I właśnie na tej klejącej robocie asystent AI zarabia na siebie. Nie „AI pisze twoją aplikację”, tylko AI jako niestrudzony recenzent, autor wiadomości commitów, generator YAML-a i pierwszy reagujący, wpięty prosto w potok.
Co daje ciągła dostawa z pomocą AI
Dział zatytułowany „Co daje ciągła dostawa z pomocą AI”- Dyscyplinę przyrostowego commitowania, która utrzymuje diffy od AI w stanie nadającym się do przeglądu
- Prompty do wiadomości commitów, opisów PR-ów, notatek wydania i wpisów do changelogu
- Prawdziwy krok GitHub Actions uruchamiający Claude Code headless na diffie każdego PR-a
- Gotowe prompty do generowania YAML-a potoku, blokowania wdrożenia i triage’u czerwonego buildu — po jednym na narzędzie
- Podział Cursor / Claude Code / Codex: gdzie każde narzędzie pasuje w potoku
- Tryby awarii, które potoki generowane przez AI trafiają na produkcji, i kontrole, które je wyłapują
Commituj po każdym zadaniu, a nie po każdej funkcjonalności
Dział zatytułowany „Commituj po każdym zadaniu, a nie po każdej funkcjonalności”Pojedynczy najbardziej wpływowy nawyk: commituj po każdym udanym zadaniu, a nie po całej funkcjonalności. Jeśli stosujesz metodologię od PRD przez plan do listy zadań, każdy element listy powinien skutkować jednym commitem. To właśnie robi różnicę między splątanym diffem na 1200 linii a stosem zmian, który recenzent faktycznie przeczyta.
Po każdym ukończonym zadaniu poproś Cursora o commit z sensowną wiadomością:
The rate limiter implementation passes all tests. Commit this changewith a descriptive commit message following our conventional commitsformat (feat/fix/chore). Include what changed and why.Cursor uruchamia git add i git commit bezpośrednio z trybu Agent. Dla szybszego przepływu oddaj commity agentowi Cloud Agent (dawniej Background Agent), a sam przejdź do kolejnego zadania.
Claude Code doskonale radzi sobie z przepływami gitowymi. Po każdym zadaniu:
All tests pass. Commit this change with a conventional commit message.Stage only the files related to the rate limiter task. Do not stageunrelated changes.W integracji headless z CI potrafi commitować samodzielnie:
claude -p "Run the linter and tests. If they pass, commit with a descriptive message."Hooki mogą automatycznie formatować kod przed każdym commitem, więc styl zostaje spójny bez ręcznej pracy.
Codex potrafi zacommitować i od razu otworzyć PR:
All tests pass for the rate limiter. Commit the changes with aconventional commit message. Then create a draft PR with asummary of what changed and how to test it.Sprawia to integracja z GitHubem, działająca z poziomu ChatGPT desktop. Zadanie Codex Cloud może zająć się tworzeniem PR-a w swoim hostowanym środowisku, gdy ty pracujesz dalej lokalnie.
Zamiana gałęzi w PR do przejrzenia
Dział zatytułowany „Zamiana gałęzi w PR do przejrzenia”Pull requesty to miejsce, gdzie odbywa się przegląd, a dobrze udokumentowany PR jest przeglądany szybciej niż goły. Agent ma diff, więc może napisać opis, który naprawdę pomoże recenzentowi.
Po wypchnięciu gałęzi poproś Cursora o otwarcie PR-a — z trybu Agent steruje CLI gh:
Push the current branch and create a PR against main.
For the PR description:1. Summarize what this PR does and why2. List the key files changed with a brief explanation of each3. Include testing instructions4. Mention any deployment considerations (new env vars, migrations)
Use our PR template format.Przepływ PR-owy Claude Code jest sprawdzony w boju:
Push this branch and create a PR against main using gh.
Write the PR description covering:- Summary of changes- Key decisions and trade-offs- Testing done (include test output)- Deployment notes (migrations, env vars, feature flags)
Use conventional PR title format.To samo zadanie działa headless jako krok potoku, z ustrukturyzowanym wyjściem, które możesz wystawić jako komentarz:
claude -p "Review the current diff against main. Generate a PR description." --output-format jsonCodex ma natywną integrację z GitHubem dla przepływów PR-owych:
Create a pull request for the current branch against main.
Include:- Summary of what changed and why- Files changed with explanations- Test coverage information- Any breaking changes or deployment requirements
Add relevant labels and request review from the team.Codeksa można też uruchomić ze Slacka albo z Lineara, żeby tworzył PR-y z opisów zgłoszeń, domykając pętlę między zarządzaniem projektem a dostarczaniem kodu.
Dzielenie zbyt dużego diffa na PR-y w stosie
Dział zatytułowany „Dzielenie zbyt dużego diffa na PR-y w stosie”Czasem sesja produkuje zmianę, która powinna być trzema PR-ami. Zamiast ręcznie rozplątywać historię gita, zleć tę operację agentowi.
The current branch has changes across the database layer, API layer,and frontend. Help me split this into three separate PRs that canbe reviewed and merged independently:
1. PR 1: Database migration and model changes2. PR 2: API endpoint changes (depends on PR 1)3. PR 3: Frontend changes (depends on PR 2)
Create a new branch for PR 1 with only the database changes.The current diff is too large for a single PR. Help me split it:
1. Run git diff --stat to see all changed files2. Group files by layer (db, api, frontend)3. Create branch feature/rate-limiter-db with only database changes4. Create branch feature/rate-limiter-api with API changes5. Create branch feature/rate-limiter-ui with frontend changes
Each branch should be independently testable. Start with thedatabase branch.The diff on this branch is too large. Split it into stacked PRs:
1. Database layer changes (first to merge)2. API layer changes (stacks on database PR)3. Frontend changes (stacks on API PR)
Create separate branches for each. Make sure each branch's testspass independently. Create draft PRs with dependencies noted.Jeden git worktree na zadanie Codeksa czyni to szczególnie gładkim: każdy PR jest rozwijany i testowany we własnym checkoucie, bez przełączania gałęzi. ChatGPT desktop może utworzyć opcjonalny zarządzany worktree; użytkownicy CLI i IDE tworzą go gitem.
Recenzent na każdym PR-ze
Dział zatytułowany „Recenzent na każdym PR-ze”Automatyczny przegląd PR-ów to miejsce o najwyższej dźwigni, od którego warto zacząć automatyzację samego potoku: jest niskiego ryzyka (tylko komentarze, żadnych wdrożeń) i zwraca się już pierwszego dnia. Te trzy narzędzia zajmują tu różne powierzchnie, więc wybieraj na podstawie tego, gdzie twój zespół już mieszka.
BugBot Cursora przegląda PR-y automatycznie po włączeniu na repozytorium i wystawia komentarze inline na temat prawdopodobnych błędów. Ponów przegląd na żądanie, komentując bugbot run w PR-ze. Gdy coś oznaczy, Autofix (GA od lutego 2026) potrafi uruchomić w tle agenta Cloud Agent, który otwiera kolejny PR z proponowaną poprawką — tak że recenzent zatwierdza diff, zamiast go pisać. Od maja 2026 BugBot rozlicza się za przegląd (mniej więcej $1.20 za przebieg o domyślnym wysiłku, więcej przy dużych diffach) w planach Teams i Individual, zamiast dawnej stałej opłaty za stanowisko.
Używaj Cursora, gdy twój zespół przegląda w interfejsie GitHuba i chce, by poprawki były proponowane jako PR-y, które można obejrzeć.
Claude Code błyszczy w headless CI. Uruchom claude -p wewnątrz GitHub Action, aby przejrzeć diff, zablokować wdrożenie albo przygotować changelog — skryptowo, bez TUI. Połącz to z hookiem PreToolUse lokalnie, aby ryzykowne polecenie (surowy kubectl apply, force-push) zatrzymało się na potwierdzenie, zanim agent je wykona.
Używaj Claude Code, gdy CD żyje w twoich .github/workflows i chcesz wywoływać agenta ze skryptu z jawnie dozwolonymi narzędziami.
Codex działa w ChatGPT desktop, CLI, IDE i Cloud. Codex Cloud uruchamia zadania w osobnym hostowanym środowisku; opcjonalne zarządzane worktree należą do lokalnych zadań w ChatGPT desktop, a użytkownicy CLI/IDE mogą wybrać własny git worktree. Integracja z GitHubem pozwala Codeksowi otwierać i przeglądać PR-y, a integracja ze Slackiem pozwala koledze z zespołu uruchomić zadanie z kanału. Automations uruchamiają cykliczne prompty i dostarczają wyniki do skrzynki zadań.
Używaj Codeksa, gdy chcesz asynchronicznych zadań po stronie chmury i zatwierdzeń sterowanych z czatu zamiast lokalnej pętli w terminalu.
Oto prawdziwy, minimalny krok GitHub Actions, który uruchamia Claude Code w trybie headless na diffie PR-a. Flagi są tu częścią nośną: --allowedTools (nie --allow-tools) ogranicza to, czego agent może dotknąć, a --output-format json (nie --json) sprawia, że wynik da się sparsować w dalszych krokach.
name: AI PR Reviewon: pull_requestpermissions: contents: read pull-requests: writejobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 with: fetch-depth: 0 - name: Run Claude Code review env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} run: | git diff origin/${{ github.base_ref }}...HEAD > /tmp/pr.diff npx -y @anthropic-ai/claude-code -p \ "Review the diff in /tmp/pr.diff for security issues, logic bugs, and missing error handling. Be specific and cite file:line. Skip style nits." \ --allowedTools "Read,Grep,Bash(git diff:*)" \ --output-format json > review.jsonCała rzecz polega na odwróceniu: nie wklejasz diffa do okna czatu. To potok podaje diff agentowi i przechwytuje ustrukturyzowane wyjście, które możesz wystawić jako komentarz albo na którym możesz wywalić joba.
Generuj potok, zamiast pisać go ręcznie
Dział zatytułowany „Generuj potok, zamiast pisać go ręcznie”Nikt nie powinien pisać YAML-a CI z pustego pliku. Opisz potok zwykłym językiem, pozwól agentowi go wyemitować, a potem przejrzyj wynik względem swojego prawdziwego runnera i nazw sekretów.
W trybie Agent agent może odczytać twój package.json i istniejące .github/workflows, więc dopasuje się do prawdziwych skryptów i wersji Node zamiast zgadywać:
Create .github/workflows/ci.yml. Read package.json first to use the realscript names and Node version. The workflow should: install deps withnpm ci, run npm run lint, run npm run test (Vitest), then build a Dockerimage only on pushes to main. Use actions/checkout@v6 andactions/setup-node@v6. Cache npm. Do not invent scripts that aren'tin package.json.Z terminala pozwól Claude Code odczytać projekt i napisać plik za jednym razem, a potem zrób na nim diff przed commitem:
Read package.json and any existing workflows. Write .github/workflows/ci.ymlthat runs npm ci, npm run lint, and npm run test on every PR, and buildsand pushes a Docker image to GHCR only on push to main. Useactions/checkout@v6, pin the registry login to secrets.GITHUB_TOKEN, andadd a concurrency group keyed on the ref so superseded runs cancel.Show me the file before writing it.Uruchom z workspace-write, żeby Codex mógł utworzyć plik, i osobno ustaw on-request, aby pytał przed przekroczeniem granicy sandboxa. Rutynowe edycje i polecenia wewnątrz sandboxa nie wywołują osobnego monitu:
codex --sandbox workspace-write -c approval_policy=on-request \ "Read package.json, then create .github/workflows/ci.yml that runs npm ci, \ lint, and Vitest on PRs and builds a Docker image on push to main. \ Match the real script names. Use actions/checkout@v6."Bramka wdrożenia z człowiekiem w pętli
Dział zatytułowany „Bramka wdrożenia z człowiekiem w pętli”Pełne automatyczne wdrożenie to ostatnia rzecz, którą się przyjmuje, nie pierwsza. Zacznij od tego, że agent przygotowuje wdrożenie i uruchamia kontrole przed startem, a potem przekazuje człowiekowi ostateczne „tak”. Zatwierdzenie może żyć w Slacku, w regule ochrony środowiska GitHuba albo w czacie z samym agentem.
Przy notatkach wydania daj agentowi zakres commitów i format, a nie ogólnikowe „podsumuj”:
Triage czerwonego buildu
Dział zatytułowany „Triage czerwonego buildu”Agent przydaje się też na samym potoku, a czerwony build o drugiej w nocy to przypadek, w którym pierwszy reagujący, który nigdy nie śpi, naprawdę pomaga. Ograniczenie w prompcie znaczy tu więcej niż sama diagnoza: bez niego najszybszą drogą do zielonego ptaszka jest skasowanie testu.