From fe27ad9dce4396f40f75d07154d151027a630d50 Mon Sep 17 00:00:00 2001 From: lekss361 Date: Sat, 30 May 2026 14:21:11 +0300 Subject: [PATCH] =?UTF-8?q?feat(qa):=20tester=20=D0=B7=D0=B0=D0=B2=D0=BE?= =?UTF-8?q?=D0=B4=D0=B8=D1=82=20bug-issue=20=D0=BD=D0=B0=20=D0=9D=D0=9E?= =?UTF-8?q?=D0=92=D0=AB=D0=95=20=D0=B1=D0=B0=D0=B3=D0=B8=20(=D0=BD=D0=B5?= =?UTF-8?q?=20=D1=82=D0=B5=D1=81=D1=82=D0=B8=D1=80=D1=83=D0=B5=D0=BC=D1=8B?= =?UTF-8?q?=D0=B9=20issue)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Раньше qa по правилу НЕ создавал issues (только reopen тестируемого + needs-fix, либо prod_down spike). Побочный/новый баг, замеченный при smoke, терялся. Теперь (симметрично reviewer minor→follow-up): НОВЫЙ баг (не тестируемый issue) → mcp__forgejo__create_issue: scope/X + status/ready + priority/pN + bug, body = work-prompt (Задача/repro/Files/DoD) + screenshot/console → попадёт воркеру в очередь. Проверка дубликатов. По ТЕСТИРУЕМОМУ issue — по-прежнему reopen+needs-fix (не дубль). auto-qa-tester.md (verdict + hard rule) + work-as-qa.md (+ починил stale "(10m)"→"(5m)"). --- .claude/agents/auto-qa-tester.md | 7 ++++++- .claude/commands/work-as-qa.md | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.claude/agents/auto-qa-tester.md b/.claude/agents/auto-qa-tester.md index 9aec5f9b..3e4f936d 100644 --- a/.claude/agents/auto-qa-tester.md +++ b/.claude/agents/auto-qa-tester.md @@ -42,6 +42,11 @@ QA в autonomous-pickup mode. Polling issues с `status/qa` (PR уже merged au ❌ prod_down → +pause-bots, escalate (см. Failure escalation) ❌ flaky → retry smoke 1×; при повторе → +status/needs-fix +needs-human POST comment со stack trace + screenshot link + console errors во всех FAIL-случаях + 🆕 НОВЫЙ баг (НЕ тестируемый issue — побочная регрессия/находка) → заведи bug-issue + `mcp__forgejo__create_issue`: labels `scope/<область>`, `status/ready`, + `priority/p1` (ломает golden-path) | `priority/p2`, `bug`; body = work-prompt + (Задача / repro-шаги / Files если ясно / Definition of Done) + screenshot/console. + Проверь дубликаты (нет ли уже open похожего). Так баг попадёт в очередь воркеру. 4. result: smoked N issues, K passed, M failed ``` @@ -65,7 +70,7 @@ Smoke длинный → стоит ограничивать **3 issues за т ## Hard rules - ❌ НЕ редактировать код в случае FAIL — это работа auto-backend/frontend (через reopened issue) -- ❌ НЕ создавать новые issues — для bug reporter'а используй комментарии под существующим +- ✅ НОВЫЙ баг (не тестируемый issue) → заводи bug-issue (`scope/X status/ready priority/pN bug`, body = work-prompt + repro/screenshot). По ТЕСТИРУЕМОМУ issue — reopen+needs-fix, НЕ дубль-issue. Проверь дубликаты перед созданием — не плодить. - ❌ НЕ merge / approve PR — это работа auto-code-reviewer - ✅ Browser cleanup — `mcp__playwright__browser_close` после каждой smoke - ✅ Screenshot обязателен при FAIL — для human triage diff --git a/.claude/commands/work-as-qa.md b/.claude/commands/work-as-qa.md index bd11b3b2..290f9eb2 100644 --- a/.claude/commands/work-as-qa.md +++ b/.claude/commands/work-as-qa.md @@ -36,7 +36,7 @@ $env:BOT_USERNAME = "bot-qa" Следую правилам из `.claude/agents/auto-qa-tester.md` + `_autonomous_pickup.md` + `.claude/agents/qa-tester.md` + `.claude/rules/deploy.md`. -**Per-tick workflow (10m):** +**Per-tick workflow (5m):** 1. Kill-switch check 2. GET issues `status/qa` open, sort updated-desc, limit=3 @@ -46,6 +46,9 @@ $env:BOT_USERNAME = "bot-qa" c. ✅ PASS → close issue + status/done d. ❌ FAIL → classify (см. ниже), post stack trace + screenshot. feature_regression → reopen + `status/needs-fix` + assignee=PR author (worker сам чинит, НЕ human) + e. 🆕 НОВЫЙ баг (не тестируемый issue — побочная находка) → завести bug-issue + (`mcp__forgejo__create_issue`: `scope/X status/ready priority/pN bug`, body = work-prompt + + repro/screenshot; проверь дубликаты) → попадёт воркеру в очередь **Smoke priorities:** p0 → p1 → newest p2 (max 3 issues/tick). -- 2.45.3