From a7253639cd3c4162415cfe738ff8b67a4e04d04e Mon Sep 17 00:00:00 2001 From: bot-backend Date: Fri, 3 Jul 2026 23:06:17 +0300 Subject: [PATCH] =?UTF-8?q?chore(claude):=20=D1=8F=D0=B2=D0=BD=D1=8B=D0=B9?= =?UTF-8?q?=20CI-gate=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=20merge=20(false-gr?= =?UTF-8?q?een=20trap)=20+=20=D0=B0=D0=BD=D1=82=D0=B8-rubber-stamp=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=20verdict'=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/agents/auto-code-reviewer.md | 3 +++ .claude/agents/code-reviewer.md | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.claude/agents/auto-code-reviewer.md b/.claude/agents/auto-code-reviewer.md index 90f3a3b4..5ba98700 100644 --- a/.claude/agents/auto-code-reviewer.md +++ b/.claude/agents/auto-code-reviewer.md @@ -78,6 +78,7 @@ Staff+ code reviewer в autonomous-merge режиме. Polling PRs с `status/re - Чистые нитики (whitespace/naming, без реальной работы) — только advisory comment, без issue (не флудить очередь). ✅ APPROVE: + - **CI gate (false-green trap, зафиксировано 2026-07-03)**: `mcp__forgejo__list_workflow_runs(owner, repo, head_sha=)` — явно проверь, что workflow-runs относящиеся к этому PR (CI / CI Trade-In, по изменённым путям) присутствуют в ответе И их `status == "success"`. Пустой список ИЛИ статус `waiting`/`running`/`queued` — это НЕ подтверждение зелёного CI (джоб мог ещё не заспавниться на момент проверки). Не подтверждено → НЕ мерджи в этот тик, оставь `status/review`, перепроверь на следующем polling-тике. - `create_pull_review(index=N, state="APPROVED", body=)` - **SHA guard перед merge**: повторный `get_pull_request_by_index(index=N)`, проверь `head.sha[:7] == sha7` из marker — иначе устаревший verdict до fixup-push, abort merge @@ -108,6 +109,8 @@ Staff+ code reviewer в autonomous-merge режиме. Polling PRs с `status/re | 🟡 MINOR | Style, naming, log verbosity, dead code | Comment + MERGE; actionable minor'ы → 1 follow-up issue (`scope/X status/ready priority/p3 tech-debt`); косметику не заводить | | ✅ APPROVE | Clean, conventions match, tests cover, no surprises | Merge | +> **Reviewer-bias caution** (Anthropic multi-agent-coordination-patterns, апрель 2026): ревьюер, которого просят искать проблемы, найдёт их даже в корректном коде. 🟠 FIX ставь ТОЛЬКО при конкретном failure scenario (конкретный input/state → неверный output/crash), не за абстрактное "могло бы быть лучше" — иначе получаем rubber-stamping в обратную сторону (лишние needs-fix циклы жгут контекст воркера). + ## Hard rules - ❌ НЕ запускай Playwright smoke сам — это работа auto-qa-tester. Передача через status/qa. diff --git a/.claude/agents/code-reviewer.md b/.claude/agents/code-reviewer.md index 7900a8c2..f7ccd7f6 100644 --- a/.claude/agents/code-reviewer.md +++ b/.claude/agents/code-reviewer.md @@ -108,10 +108,10 @@ mcp__obsidian__obsidian_simple_search "" - Time spent: ~3 min ### Critical issues (BLOCK push) -- [ ] `file.py:42` — описание проблемы + fix suggestion +- [ ] `file.py:42` — конкретный failure scenario (input/state → неверный output/crash) + fix suggestion. Без repro-сценария — не критикал, переквалифицируй в Minor или Positive observation. ### Minor issues (можно fix потом) -- [ ] `file.py:84` — улучшение +- [ ] `file.py:84` — улучшение (не rubber-stamp: если это не влияет на поведение — Positive observations или пропусти) ### Positive observations - ✅ Что сделано хорошо