fleet-budget-awareness
How fleet-ops monitors budget health, understands spending patterns, and recommends mode changes. Connects to Budget Monitor, Storm system, and fleet control modes.
SKILL.md.claude/skills/fleet-budget-awareness/SKILL.md
GitHubBudget Awareness — Fleet-Ops Fiscal Vigilance
The fleet runs on Claude API quota. When budget runs low, dispatch stops. When it runs out, the fleet halts. Your job is to understand the spending pattern and recommend adjustments BEFORE crisis hits.
The Budget System
The Budget Monitor (fleet/core/budget_monitor.py) reads real Claude OAuth quota every orchestrator cycle:
| Metric | What It Means | Threshold |
|---|---|---|
| Weekly usage % | How much of the weekly quota is consumed | 90% → dispatch blocked |
| Fast climb | Usage increasing >5% in 10 minutes | Triggers dispatch pause |
| Burn rate | Quota consumption per hour | Predicts when quota exhausts |
| Rollover distance | Time until weekly quota resets | Low distance + high usage = crisis |
Budget Modes
The PO controls fleet tempo via budget modes:
| Mode | Dispatch | Effort | When |
|---|---|---|---|
| full-speed | Unlimited | High | Plenty of budget, sprint deadline |
| normal | Standard (2/cycle) | Medium | Default operation |
| conservative | Reduced (1/cycle) | Medium | Budget >70%, slowing down |
| finish-current | Zero new dispatch | Current tasks only | Budget >85%, wind down |
| work-paused | Zero dispatch | Heartbeats only | Budget critical or PO pause |
What You Monitor
During Heartbeat
Your ops_budget_assessment group call provides:
- Current weekly usage percentage
- Burn rate trend (increasing/stable/decreasing)
- Projected exhaustion time at current rate
- Active dispatches consuming budget
What to Look For
- Steady burn under 70% → Normal. No action needed.
- Approaching 80% → Recommend:
fleet_chat("Budget at {pct}%. Suggest switching to conservative mode.", mention="human") - Approaching 90% → Critical:
fleet_alert(category="budget", severity="high", details="Budget at {pct}%. Dispatch will auto-block at 90%.") - Fast climb → Something is consuming budget rapidly. Check: which agents are active? Are there void sessions (heartbeats that do nothing)?
- Post-storm → After a storm event, budget may have been forced down. Check if the storm is resolved and recommend mode restoration.
The Storm Connection
Storms and budget are interlinked:
- Storm WARNING → dispatch limited to 1/cycle (saves budget)
- Storm STORM → dispatch blocked entirely (budget protected)
- Storm CRITICAL → fleet halted (budget irrelevant — everything stopped)
When you see storm indicators + budget pressure simultaneously, that's compound risk. Escalate immediately: fleet_escalate(title="Compound risk: storm + budget pressure").
Your Budget Assessment CRONs
Your budget-assessment CRON runs daily:
- Read budget metrics from the orchestrator
- Calculate: at current burn rate, when does quota exhaust?
- Compare to rollover date — will we make it?
- Post assessment to board memory [budget, assessment]
- If critical: alert PO
Recommending Mode Changes
You don't change modes — the PO does. You RECOMMEND based on data:
fleet_chat(
"Budget assessment: weekly at 72%, burn rate 1.2%/hour, "
"rollover in 38 hours. At current rate: quota exhausts in 23 hours. "
"Recommend: switch to conservative mode to extend runway to rollover. "
"Current active: 4 agents in work stage.",
mention="human"
)
Include: current %, burn rate, projection, recommendation, and what's currently consuming budget.
What Budget Awareness is NOT
- NOT deciding modes (PO decides — you recommend)
- NOT stopping dispatch (Budget Monitor does this automatically at 90%)
- NOT managing storms (Storm Monitor handles detection and response)
You're the analyst who sees the financial picture and helps the PO make informed decisions. The automated systems handle emergencies. You handle strategy.