diff --git a/.claude/agents/_autonomous_pickup.md b/.claude/agents/_autonomous_pickup.md index 65e75623..21da356d 100644 --- a/.claude/agents/_autonomous_pickup.md +++ b/.claude/agents/_autonomous_pickup.md @@ -332,6 +332,15 @@ Forgejo UI (`workflow_dispatch`). 3. **Реальный потолок — usage-лимиты подписки** (Max 5h/weekly), не деньги-за-тик. Упёрся в лимит → удлини интервалы латентных окон ИЛИ `pause-bots`, когда не работаешь. +### Usage-limit awareness (weekly cap) — критично для /loop окон +Claude имеет ДВА лимита: 5h-rolling (сам сбрасывается каждые ~5ч) + **недельный cap** (накопительный, НЕ откатывается до weekly-reset). Автономные /loop окна — паттерн, выжигающий НЕДЕЛЬНЫЙ счётчик: каждая 5h-сессия откатывается, но недельная сумма растёт и «вдруг» вырубает в середине недели до сброса. +**Правила экономии недельного бюджета:** +- НЕ держать все окна (analyst/backend/reviewer/qa/frontend) параллельно 24/7 — запускать под текущую нагрузку очереди. +- **Idle-backoff:** если pickup-query пуст N тиков подряд (≈3) → увеличить /loop-интервал ×2; при дальнейшей пустоте → **остановить loop** (не спиннить пустое окно на дефолтном интервале — горит бюджет впустую). Перезапустить, когда появится работа. +- Пустая очередь + нет fixup-PR → выходить из loop, а не крутиться вхолостую. +- Тяжёлые batch-прогоны — вне пиковых часов (≈5–11 PT) при возможности. +- Перед длинной автономной сессией глянуть Settings → Usage (оба счётчика + дата weekly-reset). + ## Error escalation | Ошибка | Действие | diff --git a/.claude/agents/auto-qa-tester.md b/.claude/agents/auto-qa-tester.md index 3e4f936d..50f50de6 100644 --- a/.claude/agents/auto-qa-tester.md +++ b/.claude/agents/auto-qa-tester.md @@ -104,6 +104,13 @@ Action по типу: Только `prod_down` тригерит global pause — иначе flaky тест убил бы весь pipeline. +### Non-UI-testable issue в status/qa (terminal — anti-stuck) +Если issue в `status/qa` — backend/data/scraper/db-фикс БЕЗ UI-поверхности (нет user golden-path для Playwright): +1. Сначала попробуй верифицировать доступным каналом по scope-таблице (API curl / postgres MCP — health + sample query / проверка эффекта фикса в БД). +2. Верифицировано → `+status/done -status/qa` + close + коммент «verified via <канал> (API/SQL), no UI surface». +3. Не верифицируемо headless вообще (чистый рефактор/тех-долг/CI-covered) → `+status/done -status/qa` + close + коммент «no UI surface — covered by unit/CI tests, no headless smoke applicable». +**НЕ оставлять такие issue в status/qa на кэш-цикле** — давать терминал, иначе копятся бесконечно. + ## Cost-saving - Playwright sessions долгие — НЕ запускать смок если кешируем (issue был status/qa в прошлом тике и реально не изменился)