chore(rules): refresh-world-model-poll-pr-gate — add empirical rate-limit operational tiers#3761
Merged
AceHack merged 2 commits intoMay 16, 2026
Conversation
…ait (GraphQL reset ~05:55Z) GraphQL rate-limit at 0/5000 (reset 1778910955 = 05:55:55Z). PR creation for the audit-tool impl (tick 9) is deferred to next tick. All substantive substrate this session is preserved on remote branches; this shard is just the visibility trail so the bounded wait is legible. Counter-with-escalation: brief-ack #1 of the session. Co-Authored-By: Claude <noreply@anthropic.com>
…imit operational tiers Extends the existing "Cost awareness under cascade conditions" section with a 4-tier mode-table empirically derived from the 2026-05-16T04:15Z–05:53Z cascade window (12+ tick autonomous-loop sequence that traversed all four tiers naturally): - > 2000: Normal — full operations - 1000-2000: Cost-aware — reduce batch polling - 200-1000: Extreme cost-aware — at most 1 PR/tick, skip thread sweeps - 0-200: Pure-git — zero gh except `gh api rate_limit` (REST, free) Plus: - Names `gh api rate_limit` as REST (free); safe to poll without burning GraphQL budget - Documents the pure-git tick pattern (git fetch + edit + commit + push + CronList; defer PR creation to post-reset tick) - Composes-with counter-with-escalation: editing rules/memory via pure-git IS decomposition (satisfies counter reset condition #3) The mode-table makes the tier transitions deterministic instead of ad-hoc-per-session. Future Otto cold-boots inherit the discipline at wake-time without re-discovering empirically. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates operational guidance for PR polling under GitHub GraphQL rate-limit pressure, using an empirically observed cascade window to define discrete “modes” and a pure-git fallback pattern so the loop can keep landing substrate without burning GraphQL budget.
Changes:
- Adds a 4-tier operational mode table (Normal → Pure-git) to
.claude/rules/refresh-world-model-poll-pr-gate.md. - Documents a “pure-git” tick workflow and ties it into the counter-with-escalation/decomposition framing.
- Adds a tick-history shard capturing a real rate-limit stall and the intended next-tick actions.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| docs/hygiene-history/ticks/2026/05/16/0537Z.md | New tick-history shard documenting a rate-limit stall, bounded-ETA dependency, and deferred PR actions. |
| .claude/rules/refresh-world-model-poll-pr-gate.md | Adds empirical rate-limit tiers + pure-git operational pattern and guidance for monitoring reset. |
Comments suppressed due to low confidence (1)
.claude/rules/refresh-world-model-poll-pr-gate.md:43
- This section states
gh api rate_limitis “REST (free)” and “Safe to invoke every tick”. While it doesn’t consume GraphQL budget, it does consume REST rate-limit quota; please clarify that distinction so readers don’t interpret it as unlimited / zero-cost polling.
### `gh api rate_limit` is REST (free)
`gh api rate_limit` consults the REST endpoint, not the GraphQL endpoint. Polling it does not consume the GraphQL budget being monitored. Safe to invoke every tick during cost-aware mode without further depleting the budget.
Comment on lines
+37
to
+42
| | 200–1000 | **Extreme cost-aware** | Skip batch-polling entirely. Open at most 1 PR per tick. Avoid `gh api graphql` thread sweeps. Inline `gh api rate_limit --jq` (REST, free) to monitor without burning budget. | | ||
| | 0–200 | **Pure-git** | Zero `gh` calls except `gh api rate_limit` (REST, free). All substrate landings via `git fetch` + `git push` to a branch; PR creation deferred to post-reset tick. Tick shards still committed and pushed (no GraphQL needed). | | ||
|
|
||
| ### `gh api rate_limit` is REST (free) | ||
|
|
||
| `gh api rate_limit` consults the REST endpoint, not the GraphQL endpoint. Polling it does not consume the GraphQL budget being monitored. Safe to invoke every tick during cost-aware mode without further depleting the budget. |
Comment on lines
+49
to
+53
| If GraphQL has reset (`gh api rate_limit | grep graphql` shows `remaining > 0`): | ||
|
|
||
| 1. `gh pr create` for the audit-tool branch (deferred from tick 9) | ||
| 2. `gh pr create` for this shard branch | ||
| 3. Arm auto-merge on both with explicit PR numbers |
AceHack
added a commit
that referenced
this pull request
May 16, 2026
…ned + auto-merge armed; PR #3746 closed as superseded (#3771) Seventeenth tick. Rate limit reset. Executed pinned plan from tick 0554Z: - 8 deferred PRs opened (#3761-#3768) covering: rule extension (rate-limit tiers), B-0532 + B-0533 partial-completion Status sections, 5 tick shards (0528z + 0535z + 0540z + 0548z + 0554z) - Auto-merge armed on each - PR #3746 closed as superseded by PR #3757 (peer's tighter step-0 row-close gate landed first) 99 GraphQL calls of 5000 used (4855 remaining; healthy). Peer landed PR #3759 during rate-limit-zero window, bundling my 0545Z shard. One branch fewer to sweep than expected. Counter resets via decomposition execution (reset condition #3). Co-authored-by: Claude <noreply@anthropic.com>
AceHack
added a commit
that referenced
this pull request
May 16, 2026
…468/5000 GraphQL) (#3787) Twenty-first tick. Rate at 468/5000 — extreme cost-aware tier per the rate-limit-tier rule (PR #3761 merged). Brief-ack with sentinel verify; single-PR slot used for this shard. PR #3781 (B-0494 close) merged at 70cc969. Peer's PR #3780 (3 shelf rows) merged in parallel. Pipeline operational across both lanes. Co-authored-by: Claude <noreply@anthropic.com>
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.
Extends
.claude/rules/refresh-world-model-poll-pr-gate.mdwith a 4-tier rate-limit operational mode table empirically derived from the 2026-05-16T04:15Z–05:53Z cascade window (12+ tick autonomous-loop sequence that traversed all four tiers naturally):gh api rate_limit(REST, free)Plus:
gh api rate_limitas REST (free) — safe to poll without burning GraphQL budget🤖 Generated with Claude Code