backlog(B-0570): scarcity tracker for shared limited resources#3950
Merged
Conversation
…b API, etc.) Aaron's framing 2026-05-16: "we have a new limited resource gh graphql real scaracy not fake we need a scarcy tracker." Today's session empirically saturated the 5000/hr GraphQL bucket across 3-4 concurrent agents (Otto-CLI + peer Otto background worker + Lior antigravity + manual gh use). The bucket is per-authenticated-user (server-side at GitHub), not per-machine or per-IP, so all agents auth'd as AceHack share one pool. Files the design row for the tracker + initial inventory (GraphQL/REST budgets, runner minutes etc.) + 6-slice decomposition + mitigation-axes table covering GitHub App (B-0571 sibling), tier audit (B-0572 sibling), and optional per-user-account partition. The mitigation-axes table answers Aaron's specific questions: - What's the limit measured on? per-user identity (server-side) - Do agents share it? yes when authed as same user - Addison account? yes, adds linear partition; identity-confusion trade-off - IP addresses? no, only matters for unauth'd calls (60/hr per IP) Composes with B-0400 (bus transport), B-0440 (Standing-by detector), B-0441 (backlog-ready notifier — sibling background service pattern). Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a new P1 backlog row (B-0570) designing a scarcity tracker for shared limited resources (GitHub API GraphQL/REST budgets, runner minutes, etc.), motivated by a real GraphQL rate-limit exhaustion observed in the 2026-05-16 session. The generated backlog index is updated accordingly.
Changes:
- New per-row file
B-0570-...mdwith origin, acceptance criteria, 6-slice decomposition, design sketch, and mitigation-axes table - Regenerated
docs/BACKLOG.mdindex to include the new row
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| docs/backlog/P1/B-0570-scarcity-tracker-shared-limited-resources-github-api-2026-05-16.md | New design row for the scarcity tracker (P1, factory-infrastructure) |
| docs/BACKLOG.md | Generated index entry for B-0570 |
This was referenced May 16, 2026
This was referenced May 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Files B-0570 — design row for a scarcity tracker covering GitHub API GraphQL/REST budgets (and future: runner minutes, etc.). Empirically motivated by today's session saturating 5000/hr GraphQL across 3-4 concurrent agents authenticating as the same user.
Why now
The 2026-05-16 session demonstrated the failure mode in real time: thread resolution on PR #3945 was blocked ~13 minutes by GraphQL exhaustion. A tracker would have surfaced `graphql.remaining: 800` mid-session; agents could have deferred or switched to REST.
Mitigation axes (sibling rows)
The row's mitigation-axes table identifies 3 orthogonal axes; sibling rows file follow-on work:
Diff
🤖 Generated with Claude Code