Przejdź do głównej zawartości

Automatyzacja zadań z Claude Code

Co piątek ręcznie aktualizujesz changelog, zwiększasz wersję w trzech plikach, regenerujesz dokumentację API, uruchamiasz testy, tagujesz release i pushasz. Zabiera to 45 minut jeśli nic nie pójdzie nie tak. W zeszłym tygodniu zapomniałeś zaktualizować wersję w package.json i build Docker pobrał stary tag. Tydzień wcześniej changelog pominął dwa PR-y, bo zapomniałeś sprawdzić zakresu dat. To nie są trudne zadania — to są żmudne zadania, a w żmudnych zadaniach mieszkają błędy.

  • Workflow Claude Code do automatyzacji procesów release’owych, generowania kodu, masowych refaktorów i utrzymania projektu z terminala
  • Prompty gotowe do skopiowania do budowania niestandardowych komend slash, skryptów headless i automatyzacji opartych na hookach, które działają bez nadzoru
  • Praktyczne zrozumienie kiedy używać Claude Code interaktywnie a kiedy w trybie headless, oraz jak łączyć wiele operacji w łańcuch

Claude Code wspiera niestandardowe komendy przechowywane w .claude/commands/, które wywołujesz za pomocą /. To najprostszy i najpotężniejszy punkt wejścia do automatyzacji.

Po utworzeniu komendy, wywołaj ją:

/release

Lub z nadpisaniem:

/release major

Claude Code odczytuje plik komendy, wykonuje instrukcje i realizuje każdy krok. Jeśli test suite zawiedzie na kroku 4, zatrzyma się i zgłosi błąd zamiast kontynuować tagowanie zepsutego release’u.

Do automatyzacji działających w CI lub cron jobs, tryb headless Claude Code (flaga -p) działa bez interaktywnego terminala.

Okno terminala
# Generuj dzienny raport zależności
claude -p "Check our package.json for outdated dependencies. List any that are more than one major version behind, any with known vulnerabilities, and any where the latest version has breaking changes. Output a markdown summary." > reports/deps-$(date +%Y-%m-%d).md
# Automatycznie napraw błędy lintera
claude -p "Run our linter and fix all auto-fixable errors. For errors that cannot be auto-fixed, add a TODO comment with the rule name."
# Generuj dokumentację API ze źródeł
claude -p "Read all our API route handlers and generate OpenAPI 3.1 specification in YAML format. Include request/response schemas inferred from the TypeScript types, path parameters, query parameters, and error responses." > docs/openapi.yml

Hooki Claude Code uruchamiają się automatycznie w określonych punktach cyklu życia. Są definiowane w .claude/settings.json i wykonują się bez pytania.

Hooki są szczególnie wartościowe do wymuszania standardów zespołowych. Hook, który uruchamia eslint --fix po każdej edycji pliku, oznacza, że wynik Claude Code zawsze odpowiada Twojemu stylowi kodu bez pytania.

Niektóre zadania dotykają dziesiątki lub setki plików. Claude Code obsługuje je systematycznie, gdy otrzyma jasne instrukcje.

Claude Code przetwarza pliki jeden po drugim, uruchamiając testy po każdej zmianie. Jeśli test zawiedzie, naprawia problem przed przejściem dalej, zamiast zepsuć dwadzieścia plików i zostawić Cię z sprzątaniem.

Claude Code integruje się z pipe’ami Unix, czyniąc go częścią Twojego zestawu narzędzi powłoki.

Okno terminala
# Analizuj błędy buildu
npm run build 2>&1 | claude -p "Explain each error, suggest a fix, and apply the fixes to the source files"
# Konwertuj CSV na SQL inserts
cat users.csv | claude -p "Convert this CSV data to SQL INSERT statements for a users table with columns: id, email, name, created_at. Use parameterized values for safety." > seed.sql
# Podsumuj zmiany git na standup
git log --oneline --since="yesterday" | claude -p "Summarize these commits as 3-5 bullet points suitable for a standup update. Group related changes."

Wzorzec pipe’owania jest potężny, ponieważ możesz łączyć Claude Code ze standardowymi narzędziami Unix. Wejście to kontekst, prompt to transformacja, a wyjście można przechwycić lub dalej pipe’ować.

Połącz tryb headless Claude Code z cron dla powtarzających się zadań.

Okno terminala
# Dodaj do crontab: tygodniowe sprawdzanie zależności co poniedziałek o 9 rano
0 9 * * 1 cd /path/to/project && claude -p "Check for outdated dependencies and security vulnerabilities. If any critical vulnerabilities are found, create a GitHub issue with the details and tag it 'security'." --output-format json >> /var/log/claude-audit.log

Dla zespołów już używających Claude Code GitHub Actions, claude-code-action zapewnia bardziej zintegrowane podejście:

.github/workflows/claude-review.yml
name: Claude Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Review this PR for security issues, missing tests, and code quality. Be specific about file and line numbers."
claude_args: "--max-turns 5"

Połącz wiele automatyzacji w jedną komendę utrzymaniową, która utrzymuje Twój projekt w zdrowiu.

Tryb headless wprowadza niechciane zmiany. Gdy uruchamiasz claude -p z --permission-mode acceptEdits (lub szeroką listą --allowedTools), Claude może edytować pliki, których nie zamierzałeś. Ogranicz automatyzację ściśle: “Only modify files in the src/api/ directory. Do not touch tests, config, or documentation.” Dla dodatkowego bezpieczeństwa, uruchamiaj automatyzacje headless w git worktree lub na branchu, żebyś mógł przejrzeć zmiany przed mergem.

Hook uruchamia się przy każdej edycji i spowalnia sesję. Hooki, które uruchamiają linting lub type-checking przy każdej edycji pliku, dodają opóźnienie. Używaj warunkowych hooków: “Only run the TypeScript check hook on files that end in .ts or .tsx, and skip files in the node_modules or dist directories.”

Masowy refaktor wprowadza subtelne bugi. Wielkoskalowe find-and-replace w wielu plikach może wytworzyć kod, który się kompiluje, ale zachowuje się inaczej. Zawsze włączaj “run the tests for each modified file” w promptach do masowego refaktoru. Jeśli Twoje pokrycie testami jest niskie, poproś Claude o wygenerowanie testów najpierw: “Before migrating moment.js to date-fns, generate test cases for every function that uses moment. Then do the migration and verify the tests pass.”

Zadanie cron zawodzi po cichu. Headless Claude Code stosuje się do konwencji Unix: zwraca niezerowy kod wyjścia przy twardych błędach (a --max-turns kończy się błędem, gdy limit zostanie osiągnięty). Ale uruchomienie nadal może “powieść się” z kodem wyjścia 0, produkując niekompletny lub niechciany wynik. Sprawdzaj oba sygnały: bramkuj na kodzie wyjścia oraz uruchamiaj z --output-format json i kontroluj pole result pod kątem faktycznego rezultatu. Jako zabezpieczenie na wszelki wypadek, niech automatyzacja zapisuje plik markera sukcesu i alarmuje, jeśli nie zostanie zaktualizowany.

Nazwy niestandardowych komend kolidują. Niestandardowa komenda może przesłonić — lub zostać przesłonięta przez — komendę pluginu lub umiejętności o tej samej nazwie, więc generyczna nazwa jak /review może nie uruchomić tego, czego oczekujesz. Preferuj konkretne nazwy jak /release-prep lub /weekly-audit i weryfikuj, co jest faktycznie dostępne, wpisując / w REPL (lub uruchamiając /help).