v0.5.0 — unattended mode + /spar:ready / /spar:fight
Highlights
Unattended mode (Phase 5) and a re-slice of the plan-to-spar orchestrator into two intuitively-named commands.
Unattended mode
--unattendedflag persisted to loop state; the Stop hook decides the gate from durable state (no auto-detection).- At the batched design gate, an unattended run no longer holds: it persists every pending finding to a durable queue under
reviews/spar-pending.md(survivescleanup(), keyed by review-id + fingerprint, dedup + symlink-safe), recordsblocked-pending-user, makes a fail-open report call, then cleans up and releases — never fabricating completion. - A fail-open
SessionStarthook announces the pending count next session.
Command re-slice / rename
/spar-weighin→/spar:ready(turn a spec into a checkbox plan on a dedicated branch, then stop) +/spar:fight(run a single task, or drive a ready plan task-by-task)./spar→/spar:fight;/spar-cancel→/spar:cancel.fightauto-detects a pending plan; a pending plan plus a task argument is refused so a prepared plan is never silently skipped.- Internals unified to
ready/fight/planvocabulary (spar-plan-lib.sh,stop-fight.sh, state.claude/spar-plan.local.md).
Testing
- Full pure-bash suite green, including a new
test_fight_dispatch.sh. ready → fighthandoff validated end-to-end via a scripted dogfood.
Upgrade note
Live use of the new slash commands requires reinstalling the plugin at v0.5.0.
Full changelog: v0.4.0...v0.5.0