docs(claude): formalize "Auto-review passed" as approval signal + polling loop

Per user feedback after PR #84 merge:
- Critical rule 5: "Auto-review passed" / "LGTM" от auto-review bot = approval
  (наряду с явным "merge it" / "approved" от human user)
- Add "Polling loop для PR" section: 60s ScheduleWakeup pattern,
  decisive states (merged / approved / changes / no-news), cap 30 iters

This formalizes what main session already did: after fixup commit, poll
comments, detect auto-review verdict, and auto-merge if passed.
This commit is contained in:
lekss361 2026-05-12 00:18:21 +03:00
parent aadf47709b
commit e66e1ea981

View file

@ -222,9 +222,21 @@ User approves / requests changes
2. **Worker-agents (backend/frontend/devops/database) НЕ делают `git commit` сами.** Они оставляют изменения staged — main session коммитит на feature branch. 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. 3. **Никогда не используй `--no-verify` / `--no-edit` / `--amend`** — pre-commit hooks обязательны. Если hook падает — fix root cause, не bypass.
4. **Никогда не пуш с `--force` ни в main ни в feature branch без approval.** 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`. 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 <N> --json state,mergeable,comments` → проверь latest_comment
2. `state == MERGED` → stop polling
3. Новый comment от auto-review с "Auto-review passed" / "LGTM" → `gh pr merge <N> --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
Даже в auto-mode НЕ пушим в main без PR. Auto-mode позволяет: Даже в auto-mode НЕ пушим в main без PR. Auto-mode позволяет: