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.

We are migrating from moment.js to date-fns across our entire codebase. For every file that imports moment: 1) replace the import with the equivalent date-fns functions, 2) update every moment() call to the date-fns equivalent (format, parse, add, subtract, diff, isAfter, isBefore), 3) update date format strings from moment format (YYYY-MM-DD) to date-fns format (yyyy-MM-dd), 4) run the tests for each modified file to verify the change. Give me a summary of all changes at the end.

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.

Create a custom command at .claude/commands/maintain.md that performs weekly project maintenance: 1) check for and update patch-level dependency versions, 2) regenerate TypeScript types from our database schema, 3) update the API documentation from source code, 4) find and remove unused imports and dead code, 5) check for TODOs older than 30 days and list them, 6) run the full test suite, 7) generate a maintenance report with a summary of changes made. Commit all changes as "chore: weekly maintenance".

Tryb headless wprowadza niechciane zmiany. Gdy uruchamiasz claude -p z auto-accept, 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 zwraca kod wyjścia 0 nawet gdy nie mógł ukończyć zadania. Przechwytuj wynik i sprawdzaj wskaźniki błędów: pipe’uj do --output-format json i sprawdzaj pole result, lub niech automatyzacja zapisze plik markera sukcesu i alarmuje, jeśli plik nie został zaktualizowany.

Niestandardowe komendy kolidują z wbudowanymi komendami. Jeśli nazwiesz komendę /review, może kolidować z wbudowanymi umiejętnościami. Sprawdź dostępne komendy za pomocą /help i używaj opisowych nazw jak /release-prep lub /weekly-audit.