Two primitives inside an automation that separate working loops from expensive ones:
> /loop 30m /goal All tests in test/auth pass and lint is clean. Scan src/auth for new failures, propose fixes in claude/auth-fixes, open draft PR when goal condition holds.▲ Claude CronCreate(*/30 * * * * : auth quality loop) Stop condition: tests pass + lint clean (verified by checker)✓ Scheduled. Will continue past intermediate completions until /goal condition is met by independent checker.
07. Skills: write project knowledge once. Read on every run.
name: ci-triagedescription: Classify CI failures by root cause (env, flake, real bug, dependency, infra), draft fixes for the easy ones, escalate the rest. Trigger whenever a workflow run fails or on the morning triage loop.---# CI triage skill## Classification rules- env: missing secret, wrong env var, infra not provisioned. # human- flake: passes on retry without code change. # retry once, then file- bug: deterministic failure tied to recent commit. # draft fix- dependency: failure tied to a version bump. # draft rollback- infra: timeout, OOM, runner issue. # escalate## Fix patterns- Auth tests → check src/auth/middleware first- Database tests → verify migration applied in CI env- E2E tests → check selectors against the latest UI snapshot## Never do- Disable failing tests — always file as escalation instead- Modify CI config without human approval- Touch src/payments/ or src/billing/ (in claude/permissions.md)## StateUpdate STATE.md after each run: file paths checked, classifications,PRs opened, items escalated.
10. The state file. The agent forgets. The file does not.
# Loop state · ci-triage## Last run2026-06-09 03:30 UTC · 7 failures classified, 3 fixes drafted, 4 escalated## In progress- claude/fix-auth-token-refresh — tests passing locally, awaiting CI- claude/fix-flaky-payment-webhook — retry pattern applied, monitoring## Completed today- claude/bump-axios-1.7.4 → merged (CI green, deps loop verified)- claude/lint-fix-pass-june-9 → merged## Escalated to humans- src/billing/refund.ts — tests failing in 3 ways, root cause unclear- ci/staging-runner — infra timeouts, not a code issue## Lessons learned (write here, not in chat)- 2026-06-08: PowerShell hits TLS 1.2 issue on this Windows runner. Use bash.- 2026-06-07: tests/e2e/checkout requires Stripe webhook secret in env. Skip if missing.## Stop conditions met since last review- /goal “all tests pass + lint clean” achieved on commit 3a7b8c1 at 02:14 UTC