gendesign/.claude/agents/deep-review-phases/phase-1-scope.md
bot-backend 5fa9588935 chore(agents): bot harness tuning — per-role model, forgejo MCP deferral, vault capture, #893 curl hardening
- start-bot.ps1: --model per-role (sonnet; opus только reviewer); CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=60
- .claude/mcp/*.json: forgejo (~90 tools) deferred во всех ролях; postgres-gendesign deferred в backend/reviewer
- auto-analyst.md: knowledge-capture step (status/done → inbox draft → vault-overlord) — закрывает 'волт не обновляется'
- forgejo ops через mcp__forgejo__* вместо сырого curl: auto-code-reviewer/backend/qa workflow + _autonomous_pickup contract
- #893 guard: бан curl→/tmp→python3 (Windows 404+FileNotFoundError); deferred→ToolSearch; stale tool-name cleanup (deep-reviewer phases)
2026-05-31 16:26:17 +03:00

2.7 KiB
Raw Blame History

Deep Review — Phase 1: Scope discovery

Supporting reference for deep-code-reviewer.md. Read on demand when scope analysis non-trivial.

Git-level scope

git status
git diff --staged                  # если pre-push
git diff origin/main..HEAD         # если post-push, до merge
git log origin/main..HEAD --stat   # сколько коммитов, кто author
git rev-parse --abbrev-ref HEAD    # не main ли это

Forgejo PR metadata

Если в окне есть mcp__forgejo__* — предпочитай его (см. «Альтернатива» ниже): отдаёт распарсенный объект. curl-блок — fallback для Task-spawn без forgejo MCP; всё через | jq (без temp-файлов). Не curl -o /tmp/*.json + python3 json.load — на Windows 404 + FileNotFoundError (incident #893).

# Все вызовы используют $FORGEJO_URL и $FORGEJO_TOKEN
H="Authorization: token $FORGEJO_TOKEN"
REPO="$FORGEJO_URL/api/v1/repos/lekss361/gendesign"

# PR metadata: title, body, labels, base, head SHA, mergeable, state, draft
curl -sH "$H" "$REPO/pulls/<N>" | jq '{title,state,mergeable,draft,head:.head.sha,labels:[.labels[].name]}'

# Full file list (даже большой PR)
curl -sH "$H" "$REPO/pulls/<N>/files?limit=50" | jq '.[] | {filename,status,additions,deletions}'

# Diff целиком
curl -sH "$H" "$REPO/pulls/<N>.diff"

# Reviews (что уже сказали bot / lekss361)
curl -sH "$H" "$REPO/pulls/<N>/reviews" | jq '.[] | {user:.user.login,state,body:.body[0:200]}'

# Commits в ветке PR
curl -sH "$H" "$REPO/pulls/<N>/commits" | jq '.[] | {sha:.sha[0:7],message:.commit.message|split("\n")[0]}'

Альтернатива — mcp__forgejo__get_pull_request_by_index, mcp__forgejo__list_pull_request_files, mcp__forgejo__get_pull_request_diff, mcp__forgejo__list_pull_reviews (commits PR — через list_repo_commits по head-ветке).

File categorization (приоритет ревью)

Категория Что Приоритет
🔴 P0 data/sql/**, backend/alembic/versions/**, auth code, secrets/tokens блокирующий
🟠 P1 backend/app/api/v1/**, backend/app/services/**, backend/app/scrapers/** критичный
🟡 P2 frontend/src/app/**, frontend/src/hooks/**, docker-compose*.yml, Caddyfile, .github/workflows/**, .forgejo/workflows/** важный
🟢 P3 frontend/src/components/** UI-only, tests, CLAUDE.md стандартный
skip lock-файлы, генеренные TS типы (api-types.ts), *.md без правил смотреть только если связано с P0-P2