diff --git a/CLAUDE.md b/CLAUDE.md index c650312e..f3d6c098 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -222,9 +222,21 @@ User approves / requests changes 2. **Worker-agents (backend/frontend/devops/database) НЕ делают `git commit` сами.** Они оставляют изменения staged — main session коммитит на feature branch. 3. **Никогда не используй `--no-verify` / `--no-edit` / `--amend`** — pre-commit hooks обязательны. Если hook падает — fix root cause, не bypass. 4. **Никогда не пуш с `--force` ни в main ни в feature branch без approval.** -5. **Не merge PR без явного "merge it" / "ok merge" / "approved" от пользователя.** +5. **Merge PR только по approval.** Approval сигналы: + - Human user: "merge it" / "ok merge" / "approved" / "залей" / "мердж" + - **Auto-review bot: comment с "Auto-review passed" или "LGTM"** — это тоже approval (полinging-detected) 6. **Не вызывай destructive команды без явного approval**: `git reset --hard`, `git clean -fdx`, `DROP TABLE`, `TRUNCATE`, `rm -rf` за пределами `node_modules/.next`. +### Polling loop для PR + +После создания PR / fixup commits — запускай ScheduleWakeup с 60с интервалом: +1. `gh pr view --json state,mergeable,comments` → проверь latest_comment +2. `state == MERGED` → stop polling +3. Новый comment от auto-review с "Auto-review passed" / "LGTM" → `gh pr merge --squash --delete-branch`, stop +4. Новый comment с review feedback (changes requested) → fixup commits на той же ветке, push, reply, re-poll +5. Нет новых комментов → re-schedule 60с poll +6. Cap: 30 итераций без resolution → stop, ask user + ### Когда auto-mode Даже в auto-mode НЕ пушим в main без PR. Auto-mode позволяет: