You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tracks the remaining work after the 9-PR gap-closing run (#121 → #134). Each box below is a self-contained sub-task that can be handed to a fresh sub-agent.
Subtasks
(1) Cleanup stale xoscar references in docs/comments
CLAUDE.md still describes xoscar as the actor runtime; has a "Actor-mailbox + xoscar runtime" section and references the deleted src/maverick/actors/xoscar/ tree.
Module docstrings in src/maverick/workflows/{fly_beads,refuel_maverick,generate_flight_plan}/actions.py say "Default driver remains xoscar; opt in via MAVERICK_USE_BURR=…" — there is no flag and no alternative driver. Update to reflect the current state.
_generate_with_burr (workflows/generate_flight_plan/workflow.py:210), _run_with_burr (workflows/refuel_maverick/workflow.py:827), and _run_fly_with_burr (workflows/fly_beads/workflow.py:400) are vestigial from the flag-gated era. Inline them into their callers and drop the indirection.
The Burr refuel action layer escalates default → trivial → simple → moderate → complex and the tier name reaches DecomposerAgentPool.acquire(tier), but RefuelSquadron._build_decomposer calls runtime_for_agent(\"decompose\") with no tier-awareness, so every tier resolves to the same model. Escalation today is a retry against the same binding.
Real fix: per-tier overrides in the runtime / agent_factory layer, matching how FlySquadron already handles implementer + reviewer tiers (_binding_for_complexity, TIER_ORDER etc.). Mirror that pattern for decompose.
PR feat(burr): write refuel artifacts back to the per-plan cache dir (#117) #134 added per-plan write-back under <cwd>/.maverick/plans/<plan>/refuel-cache/ (briefings.json, outline.json, details/<unit_id>.json) but nothing loads these on a subsequent run. Add a load step (workflow entry or init_state action) that seeds Burr state from the cache if files exist, and have the producing actions short-circuit when their slot is already populated. Schema-version + key checks should match the pre-migration envelope shape so corrupted/drifted caches fail closed.
(4b) Refuel quota-error special handling
Refuel currently treats quota errors (airframe.errors.RuntimeBudgetExceededError and friends) like any other failure. The pre-migration supervisor had a distinct quota path that surfaced a structured event and aborted the run cleanly without cycling through the tier ladder. Restore that behaviour in the Burr _run_one_detail / _run_detail_with_escalation helpers.
(5) End-to-end smoke against sample-maverick-project
Every gap PR's test plan said "Manual smoke against sample-maverick-project — deferred." Run the full pipeline once on that repo:
maverick init (if needed)
maverick plan generate <name> --from-prd <file>
maverick refuel <plan-name>
maverick fly --epic <id> --max-beads 3
Capture: any UX regressions in the Rich live tables, any unexpected warning: / error: rows, and whether artifacts land where docs say they should (.maverick/plans/<name>/, .maverick/runs/<run_id>/, .maverick/plans/<plan>/refuel-cache/).
File a follow-up bug per regression rather than fixing in-line.
Out of scope
Parity tests (tests/integration/test_*_burr_xoscar_parity.py) — moot since xoscar is deleted. Drop from any internal planning doc that still mentions them.
Done definition
All subtasks checked. grep -rn xoscar src/ returns only intentional historical references (e.g. git log is the authoritative record; code shouldn't claim xoscar exists).
Tracks the remaining work after the 9-PR gap-closing run (#121 → #134). Each box below is a self-contained sub-task that can be handed to a fresh sub-agent.
Subtasks
(1) Cleanup stale xoscar references in docs/comments
CLAUDE.mdstill describes xoscar as the actor runtime; has a "Actor-mailbox + xoscar runtime" section and references the deletedsrc/maverick/actors/xoscar/tree.src/maverick/workflows/{fly_beads,refuel_maverick,generate_flight_plan}/actions.pysay "Default driver remains xoscar; opt in viaMAVERICK_USE_BURR=…" — there is no flag and no alternative driver. Update to reflect the current state.src/maverick/agents/__init__.py,src/maverick/library/actions/__init__.py,src/maverick/squadron/__init__.py,src/maverick/squadron/fly.py,src/maverick/squadron/decomposer_pool.py,src/maverick/burr/driver.py,src/maverick/cli/lazy_group.py,src/maverick/workflows/fly_beads/graceful_stop.py,src/maverick/workflows/fly_beads/_spec_check.py,src/maverick/workflows/refuel_maverick/actions.py.docs/BURR.mdas done or retire it.(2) Inline the
_*_with_burrwrappers_generate_with_burr(workflows/generate_flight_plan/workflow.py:210),_run_with_burr(workflows/refuel_maverick/workflow.py:827), and_run_fly_with_burr(workflows/fly_beads/workflow.py:400) are vestigial from the flag-gated era. Inline them into their callers and drop the indirection.(3) Refuel per-tier decomposer runtime bindings (real substrate work)
default → trivial → simple → moderate → complexand the tier name reachesDecomposerAgentPool.acquire(tier), butRefuelSquadron._build_decomposercallsruntime_for_agent(\"decompose\")with no tier-awareness, so every tier resolves to the same model. Escalation today is a retry against the same binding.FlySquadronalready handles implementer + reviewer tiers (_binding_for_complexity,TIER_ORDERetc.). Mirror that pattern fordecompose.(4a) Refuel cache read-side (consumes the write-back from feat(burr): write refuel artifacts back to the per-plan cache dir (#117) #134)
<cwd>/.maverick/plans/<plan>/refuel-cache/(briefings.json, outline.json, details/<unit_id>.json) but nothing loads these on a subsequent run. Add a load step (workflow entry orinit_stateaction) that seeds Burr state from the cache if files exist, and have the producing actions short-circuit when their slot is already populated. Schema-version + key checks should match the pre-migration envelope shape so corrupted/drifted caches fail closed.(4b) Refuel quota-error special handling
airframe.errors.RuntimeBudgetExceededErrorand friends) like any other failure. The pre-migration supervisor had a distinct quota path that surfaced a structured event and aborted the run cleanly without cycling through the tier ladder. Restore that behaviour in the Burr_run_one_detail/_run_detail_with_escalationhelpers.(5) End-to-end smoke against sample-maverick-project
maverick init(if needed)maverick plan generate <name> --from-prd <file>maverick refuel <plan-name>maverick fly --epic <id> --max-beads 3warning:/error:rows, and whether artifacts land where docs say they should (.maverick/plans/<name>/,.maverick/runs/<run_id>/,.maverick/plans/<plan>/refuel-cache/).Out of scope
tests/integration/test_*_burr_xoscar_parity.py) — moot since xoscar is deleted. Drop from any internal planning doc that still mentions them.Done definition
All subtasks checked.
grep -rn xoscar src/returns only intentional historical references (e.g.git logis the authoritative record; code shouldn't claim xoscar exists).🤖 Generated with Claude Code