Releases: wnjoon/sparring
Release list
v0.3.0 — Phase 4 sweep, skip, and intent harvest
Highlights
- Phase 4 sweep: risk-triggered final author-family review
- Safe skip for small, low-risk changes
- Per-round design-intent harvesting and pointers
- Hardened atomic review, sweep, and outcome artifacts
- Symlink, non-regular artifact, Git copy, and cancellation boundary protections
Validation
- 252 shell assertions passed
- 12 shell scripts passed
- Claude Code and Codex blind cross-verification completed
- Final re-verification: no actionable High/Medium/Low findings
sparring v0.2.0 — single-agent mode (Codex optional)
sparring v0.2.0 — the loop now runs with Claude alone (Codex optional).
Phase 3 adds single-agent mode: /spar picks a reviewer family and drives the reviewer, blind judge, and semantic matcher from it.
- Auto-detect + override — Codex on PATH → cross-model (Claude author ↔ Codex reviewer, the recommended default); otherwise Claude reviews. Force it with
/spar --reviewer codex|claude -- <task>. - Read-only, isolated Claude reviewer —
claude -p --safe-mode --tools Read Grep Glob: no write tool (single-writer holds by construction), and--safe-modekeeps the reviewer from loading the sparring plugin/hooks (no recursion, no debate leak). The hook feeds it the diff since it has no shell. - Worktree-safe — loop artifacts are excluded via the git common dir, so
/sparactivates correctly inside linked worktrees.
Cross-model (Claude ↔ Codex) remains the recommended default — same-family loses cross-vendor blind-spot diversity, which the honest effect benchmark added in this release documents (planted-bug first pass 71% → 100% with either family).
This release was blind cross-verified (Claude + Codex): the verification caught a HIGH bug — single-agent /spar failing to activate inside git worktrees — which is fixed here.
Requires jq. Codex CLI recommended (cross-model); optional (single-agent).
claude plugin marketplace add wnjoon/sparring
claude plugin install spar@sparring120 hook + 12 resolver tests; verified end-to-end with a real Claude reviewer. Phases 4–7 (sweep/skip, unattended + report, Codex-hosted mirror, model economics) remain on the roadmap.
🤖 Generated with Claude Code
sparring v0.1.0 — Claude-hosted loop (Phases 1–2)
sparring v0.1.0 — the Claude-hosted cross-model review loop is complete.
A deterministic Stop hook makes code review enforced and converging: Claude implements, an independent Codex reviewer runs read-only, and the loop iterates fix → re-review until the reviewer declares STATUS: CONVERGED. The author never grades its own work.
What's in this release (Phases 1–2):
- Enforced review loop with a read-only Codex reviewer, per-finding response gate, and a round cap.
- Conveyance boundary: each round is a fresh blind re-review against a frozen baseline.
- Fingerprint registry + 2-round stalemate detection.
- Blind Codex judge for factual (
[MECHANICAL]) stalemates — bindingUPHELD/DISMISSED. [DESIGN]stalemates parked → single batched user gate + decision ledger (injected as design intent so the settled choice stops being re-flagged).- Cross-round semantic matcher that aliases re-worded repeats onto the canonical finding.
111 pure-bash hook tests; verified end-to-end against a real Codex reviewer.
Requires the Codex CLI and jq.
claude plugin marketplace add wnjoon/sparring
claude plugin install spar@sparringPhases 3–6 (final sweep + skip conditions, unattended mode + final report, the Codex-hosted mirror, model economics) are designed and on the roadmap.
🤖 Generated with Claude Code