Przejdź do głównej zawartości

Zaplanowana automatyzacja zadań z Codex

Jest poniedziałek rano. W weekend opublikowano trzy podatności zależności, ktoś scalił commit ze statementem console.log, a pokrycie testami modułu płatności spadło z 85% do 72%. Dowiadujesz się o tym podczas standupu. Ale gdybyś skonfigurował automatyzacje Codex w piątek, przyszedłbyś do spriorytetyzowanej skrzynki, w której każdy problem został już zidentyfikowany, przeanalizowany i — w niektórych przypadkach — naprawiony.

  • Gotowe do użycia prompty automatyzacji dla najczęstszych powtarzalnych zadań programistycznych
  • Przepływ pracy do bezpiecznego testowania automatyzacji przed zaplanowaniem ich
  • Techniki łączenia automatyzacji z umiejętnościami dla złożonych wieloetapowych przepływów pracy
  • Konfigurację bezpieczeństwa i sandboxa dla nienadzorowanych zadań w tle

Automatyzacje uruchamiają się lokalnie w aplikacji Codex według zdefiniowanego przez ciebie harmonogramu. Każde uruchomienie:

  1. Tworzy nowy worktree (dla repozytoriów Git), więc nigdy nie dotyka twojego głównego checkout
  2. Wykonuje prompt z domyślnymi ustawieniami sandboxa
  3. Raportuje ustalenia do skrzynki Automatyzacji na pasku bocznym aplikacji Codex
  4. Automatycznie archiwizuje uruchomienie, jeśli nie ma nic do zgłoszenia

Potrzebujesz uruchomionej aplikacji Codex i projektu dostępnego na dysku, aby automatyzacje mogły się wykonać.

Nigdy nie planuj automatyzacji na ślepo. Najpierw przetestuj prompt ręcznie w zwykłym wątku.

  1. Otwórz aplikację Codex i utwórz nowy wątek w tym samym projekcie.
  2. Wybierz tryb Worktree (ponieważ automatyzacje używają worktree).
  3. Wklej prompt automatyzacji i uruchom go.
  4. Przejrzyj wyniki: Czy znalazł właściwe rzeczy? Czy wprowadził odpowiednie zmiany? Czy pozostał w zakresie?

Iteruj prompt, aż będziesz zadowolony, a następnie utwórz automatyzację z przetestowanym promptem.

Oto automatyzacje, które większość zespołów powinna uruchomić od pierwszego dnia:

To jest podobne do wzorca umiejętności $recent-code-bugfix z oficjalnej dokumentacji Codex. Możesz również utworzyć umiejętność i wywołać ją z automatyzacji:

Check my commits from the last 24h and submit a $recent-code-bugfix.
Weekly architecture check:
1. Pull the latest from origin/main
2. Compare the current codebase structure against docs/ARCHITECTURE.md
3. Check for:
- New directories or modules not documented
- Documented modules that no longer exist
- New cross-module dependencies that violate documented boundaries
- New external service integrations not mentioned in the architecture doc
4. If drift is detected, update docs/ARCHITECTURE.md to match reality
Report what changed and whether it represents intentional evolution or accidental drift.

Umiejętności pozwalają enkapsulować złożone przepływy pracy, które automatyzacje mogą wywoływać. Utwórz umiejętność, zapisz ją w katalogu umiejętności osobistych lub repozytoryjnych i odwołuj się do niej za pomocą $skill-name w prompcie automatyzacji.

Przykład: Utwórz umiejętność $test-coverage-report, która wie, jak uruchomić pokrycie, porównać z bazowymi wartościami i sformatować wynik. Wtedy automatyzacja staje się:

Run $test-coverage-report on the latest main branch. If coverage dropped on any module, investigate and propose tests to restore it.

Umiejętności czynią automatyzacje bardziej utrzymywalnymi: zaktualizuj umiejętność raz, a każda automatyzacja, która jej używa, otrzymuje ulepszenie.

Automatyzacje uruchamiają się z domyślnymi ustawieniami sandboxa. Ponieważ działają nienadzorowane, konfiguracja bezpieczeństwa ma znaczenie.

Zalecane ustawienia sandboxa dla automatyzacji:

  • workspace-write (domyślna rekomendacja) — pozwala Codex czytać i modyfikować pliki w projekcie. Wywołania narzędzi wymagające sieci lub dostępu poza workspace kończą się niepowodzeniem, chyba że jawnie dozwolone.
  • Użyj rules, aby selektywnie zezwolić na konkretne polecenia (na przykład zezwól na npm audit, który wymaga dostępu do sieci).
# Example rule allowing npm audit in automations
[[rules]]
match = "npm audit"
action = "allow"

Polityka zatwierdzania:

Automatyzacje używają approval_policy = "never", gdy twoja organizacja na to pozwala, aby mogły działać bez oczekiwania na ręczne zatwierdzenie. Jeśli administrator to ograniczył, automatyzacje wracają do wybranego trybu zatwierdzania — co może oznaczać, że zatrzymują się i czekają na zatwierdzenie, niwecząc cel. Sprawdź wymagania swojej organizacji.

Panel Automatyzacji na pasku bocznym aplikacji Codex to twoja skrzynka. Ma sekcję Triage, gdzie pojawiają się uruchomienia automatyzacji z ustaleniami. Możesz:

  • Filtrować, aby wyświetlić Wszystkie uruchomienia lub tylko Nieprzeczytane
  • Kliknąć w uruchomienie, aby zobaczyć pełną konwersację i różnice
  • Archiwizować uruchomienia, które obsłużyłeś
  • Przypiąć uruchomienia, które chcesz zachować (to również zapobiega czyszczeniu worktree)

Zbuduj rutynę: każdego ranka sprawdź skrzynkę automatyzacji przed standupem. Obsłuż ustalenia, zsynchronizuj poprawki do lokalu i archiwizuj ukończone elementy.

Automatyzacja działa, gdy nie patrzysz, i wprowadza niezamierzone zmiany. Jeśli sandbox jest ustawiony na pełny dostęp, a prompt jest niejasny, Codex może modyfikować pliki w nieoczekiwany sposób. Użyj trybu workspace-write i przejrzyj kilka pierwszych uruchomień każdej nowej automatyzacji, zanim jej zaufasz. Izolacja worktree chroni twój główny checkout, ale zmiany w worktree mogą nadal być synchronizowane lub przekształcane w PR.

Nagromadzenie worktree z częstych automatyzacji. Codzienne automatyzacje tworzą jeden worktree na uruchomienie. W ciągu tygodnia to 7 worktree tylko dla jednej automatyzacji. Codex czyści worktree starsze niż 4 dni (gdy masz ich więcej niż 10), ale częste automatyzacje mogą się nadal gromadzić. Archiwizuj uruchomienia szybko i nie przypinaj ich, chyba że musisz zachować worktree.

Automatyzacja zgłasza te same ustalenia każdego dnia. Jeśli błąd lintingu jest w bazie kodu od tygodni i nikt go nie naprawia, codzienna automatyzacja ciągle go zgłasza. Dodaj mechanizm ignorowania: “Skip issues listed in .automation-ignore.json. Only report new findings since the last run.”

Aplikacja Codex musi być uruchomiona. Automatyzacje są lokalne — działają na twojej maszynie w aplikacji Codex. Jeśli zamkniesz aplikację lub twoja maszyna śpi, automatyzacje nie uruchomią się. Włącz “Prevent sleep while running” w ustawieniach aplikacji, jeśli chcesz, aby nocne automatyzacje się ukończyły. Dla prawdziwie nienadzorowanej automatyzacji rozważ Codex SDK lub GitHub Action do wykonywania po stronie serwera.