"""Detailed code review plan for the Discord wizard feature branch.

Read this file FIRST. It has the full review scope. The original prompt
in the spawn was truncated due to Windows CLI limits; this file is the
canonical spec.
"""

# Branch to review
BRANCH = "feat/issue-112-wizard-refactor"
BASE = "origin/main"

# Files of interest
SHARED = "src/GmRelay.Shared/Features/Sessions/CreateSession/Wizard/*"
BOT_WIZARD = "src/GmRelay.Bot/Features/Sessions/CreateSession/Wizard/*"
BOT_CREATE = "src/GmRelay.Bot/Features/Sessions/CreateSession/*"
MIGRATION = "src/GmRelay.Bot/Migrations/V032__add_wizard_drafts_platform.sql"
DISCORD = "src/GmRelay.DiscordBot/Features/Sessions/Wizard/*"
PROG_CS = "src/GmRelay.DiscordBot/Program.cs"
TESTS_WIZ = "tests/GmRelay.Bot.Tests/Features/Sessions/CreateSession/Wizard/*"
TESTS_SMOKE = "tests/GmRelay.Bot.Tests/Discord/DiscordWizardInteractionModuleSourceTests.cs"
DELIVERABLE = "deliverable.md"

REVIEW_FOCUS = [
    "Architecture: Shared/Bot/DiscordBot separation; no Telegram.Bot in Shared; no NetCord in Shared; single state machine source.",
    "Security: owner/co-GM checks everywhere; NRE on null Context.User; SQL injection; connection strings with passwords.",
    "Correctness: AOT-safety (no reflection, no dynamic); off-by-one in customId parsers; CancellationToken/Services.",
    "Style: naming consistent; Async/await by convention; logging at right levels.",
    "Tests: smoke tests are string-matching — where would real tests be useful?",
    "Migration safety: V032 DEFAULT value, will it fail on existing rows?",
    "Documentation: deliverable.md updated, open questions listed?",
]

OUTPUT_FORMAT = """\
## VERDICT: APPROVE / REQUEST_CHANGES / COMMENT

## Critical findings
(file:line — what's wrong — how to fix)

## Important findings
(file:line — what's wrong)

## Nits
(quick observations)

## Summary
(1-2 sentences)
"""

COMMANDS_HINT = """\
git fetch origin
git diff origin/main..feat/issue-112-wizard-refactor --stat
git diff origin/main..feat/issue-112-wizard-refactor
dotnet build && dotnet test
"""
