sparring

25 Jul 2026

Stopping Honestly When No One Is Watching: sparring v0.5.0

sparring v0.5.0 adds an unattended mode that preserves unresolved design decisions and stops honestly when the user is away. This post also covers why I split planning and execution into /spar:ready and /spar:fight, the defects cross-model review found in the persistent queue, and how the tool hit its own circuit breaker before converging on a retry.

24 Jul 2026

Putting Plan Execution on Top of the Review Loop: Building sparring 0.4.0

As sparring went from v0.2.0 to v0.4.0, it gained a risk-triggered final sweep and safe skips (Phase 4), and /spar-weighin (Phase 8): an orchestrator that runs a checkbox plan through the review loop task by task. This post covers the new features and the issues I hit while building them — an unreliable Stop hook ordering, a critical defect the cross-model review caught, and a worktree isolation bug — along with how each was resolved.

23 Jul 2026

Making Another AI Review AI-Written Code Until It Converges: Building sparring

I built sparring, a review loop in which Codex or an independent Claude instance reviews code written by Claude Code and keeps the author in a fix-and-review cycle until the reviewer declares convergence. This post covers why I built it, its design principles, the implementation of Phases 1–3, a small effect benchmark, and what comes next.