Re-Review: Replace Anthropic SDK with Ollama + purpose-built read-only tools

review-749-2026-04-03-r2 Doc

review approved

Verdict: APPROVED

Re-Review of review-749-2026-04-03

Original review returned NEEDS_REFINEMENT with 3 body issues and 1 decomposition recommendation. This re-review verifies the fixes applied to the issue body.

Fixes Applied

  • [x] [BODY] app/confirmation.py added to File Targets under new "Files to delete" subsection — was previously only mentioned in Context. Now explicitly listed with rationale: "write confirmation state machine not needed for V1 read-only mode."
  • [x] [BODY] requirements.txt / pyproject.toml fixed to just requirements.txt — no pyproject.toml exists in this repo.
  • [x] [BODY] Dependency on #30 made explicit in Related section — was previously "infra ticket (qwen3.5:4b in cluster + env vars)", now references #30 directly.

Decomposition Decision

Original review recommended decomposing into 2 sub-tickets (5 file operations, 8 AC). Decision: keep as one ticket. Rationale:
  • All 8 AC are testable assertions on one cohesive feature (SDK swap + tool definitions)
  • Tool schemas are pre-defined in the ticket — no design ambiguity for the agent
  • The "new file" (tools.py) is tightly coupled to the ai.py rewrite — splitting would require the second ticket to re-read and modify ai.py anyway
  • The delete (confirmation.py) is trivial — not a separate unit of work

Remaining Scope Item

  • [SCOPE] arch-A2 architecture note still missing. This is discovered scope — tracked separately, not a blocker for this ticket.

File Targets Summary (post-fix)

  • 3 files to modify: app/ai.py, app/config.py, requirements.txt
  • 1 file to create: app/tools.py
  • 1 file to delete: app/confirmation.py
  • 2 files do-not-touch: app/basketball.py, app/groupme.py
Ticket is ready for dispatch.