feat: implement issue #2029 — Dry-run budget poller: read live Claude usage, log what the breaker would do, prove it is alive (slice 2 of the auto-pause work)
Problem
Dry-run budget poller: read live Claude usage, log what the breaker would do, prove it is alive (slice 2 of the auto-pause work)
From the issue: As the fleet maintainer, I want a scheduled workflow that reads the Claude usage windows through the already-merged adapter and logs what the budget breaker would do, so that the breaker finally has a feed, I can prove it is alive, and the thresholds are calibrated on live data before anything is armed.
Risk
Medium — changes GitHub Actions workflow behavior, which is exercised only post-merge; verify via the affected workflow runs.
Test plan
Tests added/updated: tests/dev-lead/unit/test_budget_poller.bats. Verification: bash scripts/dev-lead-lint.sh (shellcheck --severity=warning) ran pre-commit; the bats suite runs in CI.
Rollback
Revert this PR. No non-revertible side effects (no tags, migrations, or external state).
Monitoring
Watch the affected workflow run(s) in the Actions tab and this PR's Lint check for regressions.
Implements the dry-run poller for #2029; that issue stays open until the first scheduled run confirms the credential check (its acceptance criterion 6).