Paperclip part ① · budget hard-stops · Phase A
Provider spend caps — the prevention backstop
L6 Cost Governor already watches spend. This adds the hard ceiling that refuses over-budget calls — the "per-key provider spend limits" L6 itself flagged as TODO. These are the truest hard-stop (the provider says no), and they're your console actions.
📊 Baseline (grounded, not guessed): staging product spend median $3.06/day (~$90–150/mo at pilot). L6 budgets today: loop $50/mo, CI $100/mo, product unset. The $1,081 incident was a CI key runaway at >100× median — caps below sit comfortably above normal but far under a runaway.
🔒 Set these caps (your console actions)
1 · Anthropic Console — the $1,081 vector$100 / $500 mo
Two workspaces, two caps. CodeReview / auto-review workspace (Haiku, per-PR — this is what ran away): hard $100/mo (normal <$30/mo). Main product/agent workspace: $500/mo (product ~$90–150/mo at pilot + headroom).
console.anthropic.com → Settings → Workspaces → [workspace] → Spend limit (monthly, hard)
Why per-workspace: isolates the cheap-but-fannout review key from the product key, so a review runaway can't drain product budget. YOUR ACTION — I never enter provider credentials
2 · OpenRouter — resilience fallback$50 credits, no auto-top-up
Only used when Anthropic-direct fails, so usage is low. Set a small credit balance and disable auto-refill — it then physically can't overspend.
openrouter.ai → Settings → Credits → set balance $50, auto-top-up OFF
YOUR ACTION
3 · Azure AI Foundry — fallback + product OpenAI$150 / mo budget
Azure Cost Management budget with a hard action scoped to the Foundry / oai-pulse-prod resource. Covers the Foundry fallback lane and any Azure-OpenAI product spend.
Azure Portal → Cost Management → Budgets → + Add → scope: oai-pulse-prod → $150/mo → action group: alert + (optional) disable
This one I can set via az if you'd rather — it's Azure, not a provider login. Say the word and I'll propose the exact az consumption budget command for your ok. YOUR ACTION or my az-with-your-ok
🔗 Make the caps the source of truth
Record the same numbers in L6 goal_state budgets
So Phase B's gate enforces the identical limits L6 already reports against. Change needed (goal-state-protected → via /synexar-task):
| budget | today | proposed |
| ci_monthly_usd | $100 | $100 (keep) |
| loop_monthly_usd | $50 | $50 (keep) |
| product_monthly_usd | null | $500 (set before pilot) |
➡️ Phase B — the runtime gate (next, via /synexar-task)
Pre-run budget gate in synexar-runtime
Before any commander / autorun / loop run, read L6's ledger + goal_state budgets; if the running daily/monthly total exceeds cap → refuse to spawn & write PAUSE. Granular self-governance for OUR loops, on top of the provider backstop. I'll scope this into a Pact once the caps above are live (so the gate enforces real numbers). Routes Tier-2, goal-state-approved.
📌 Boundary I'm holding: I do not enter your provider credentials or set financial spend limits on your accounts — those are your console actions (I give exact steps). The only one I can do for you is the Azure budget via az, and only with your explicit ok. Adjust any number by flagging its card.