Skip to content

chore(rules): refresh-world-model-poll-pr-gate — add empirical rate-limit operational tiers#3761

Merged
AceHack merged 2 commits into
mainfrom
chore/refresh-pr-gate-rate-limit-tiers-otto-cli-2026-05-16
May 16, 2026
Merged

chore(rules): refresh-world-model-poll-pr-gate — add empirical rate-limit operational tiers#3761
AceHack merged 2 commits into
mainfrom
chore/refresh-pr-gate-rate-limit-tiers-otto-cli-2026-05-16

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 16, 2026

Extends .claude/rules/refresh-world-model-poll-pr-gate.md with 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):

Remaining Tier Operational stance
> 2000 Normal Full operations
1000–2000 Cost-aware Reduce batch polling
200–1000 Extreme cost-aware At most 1 PR per 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 (commit + push without PR; defer to post-reset)
  • Composes-with counter-with-escalation: editing rules/memory via pure-git IS decomposition

🤖 Generated with Claude Code

AceHack and others added 2 commits May 16, 2026 01:38
…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>
Copilot AI review requested due to automatic review settings May 16, 2026 06:00
@AceHack AceHack enabled auto-merge (squash) May 16, 2026 06:00
@AceHack AceHack merged commit c707a42 into main May 16, 2026
56 checks passed
@AceHack AceHack deleted the chore/refresh-pr-gate-rate-limit-tiers-otto-cli-2026-05-16 branch May 16, 2026 06:01
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_limit is “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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants