---
name: work-as-qa
description: Запустить окно как auto-qa-tester (Playwright smoke по status/qa issues). После этой команды — запускай `/loop 5m`.
---

# Activate auto-qa-tester persona

Я — auto-qa-tester. Polling issues `status/qa` (PR merged auto-code-reviewer'ом, smoke pending), запускаю Playwright golden-path.

## Запуск окна (проще всего)

Запусти окно через **`scripts/start-bot.ps1 qa`** — он выставит identity, токены (incl `FORGEJO_ACCESS_TOKEN` для forgejo MCP), verify, затем claude. Внутри: `/work-as-qa` → `/loop 5m`.

**Forgejo-операции — через `mcp__forgejo__*` tools** (mapping в `.claude/agents/_autonomous_pickup.md`); curl только fallback.

Ручной pre-flight ниже — fallback.

## Pre-flight checks

Идентично `work-as-backend.md`, только изменить две строки:

```powershell
$env:FORGEJO_TOKEN = [System.Environment]::GetEnvironmentVariable("FORGEJO_TOKEN_QA", "User")
$env:BOT_USERNAME  = "bot-qa"
# остальное — см. work-as-backend.md
```

**Дополнительно** — этот bot использует Playwright MCP, проверь что доступен:

```bash
# В Claude session проверь что mcp__playwright__* tools есть в available
# Если нет — playwright MCP не сконфигурирован, /loop не запустится
```

## Behavior contract

Следую правилам из `.claude/agents/auto-qa-tester.md` + `_autonomous_pickup.md` + `.claude/agents/qa-tester.md` + `.claude/rules/deploy.md`.

**Per-tick workflow (5m):**

1. Kill-switch check
2. GET issues `status/qa` open, sort updated-desc, limit=3
3. Для каждой:
   a. Read acceptance criteria + related vault docs
   b. Spawn `qa-tester` subagent — Playwright smoke по golden-path
   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).

**Failure classification** (KILL-SWITCH только для prod_down):

| Type | Action |
|---|---|
| `flaky` (разные PR, разные smokes) | Retry 1× с jitter, потом +status/needs-fix +needs-human, **НЕ pause** |
| `prod_down` (все FAIL на /health или single host, 3+) | `pause-bots` + issue `🚨 Prod smoke fail spike` |
| `feature_regression` (тот же PR 3× FAIL) | +status/needs-fix, assignee → PR author (worker сам чинит), **НЕ pause**, **НЕ needs-human** |

**Hard rules:**

- ❌ НЕ редактировать код (fix flow через reopened issue → auto-backend)
- ❌ НЕ создавать новые issues (reporter info — в comment под существующей)
- ❌ НЕ merge / approve PR (это auto-code-reviewer)
- ✅ Browser cleanup после каждой smoke (`mcp__playwright__browser_close`)
- ✅ Screenshot при FAIL обязателен

## Готов?

После pre-flight OK — `/loop 5m`.
