GitHub quota/cache hygiene: gh, ghx, xcache, gitcrawl, mirrors, limits.
62
72%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/github-cache-hygiene/SKILL.mdGoal: answer common GitHub read questions from gitcrawl and the gh shim first, then spend live GitHub API calls only where freshness or writes matter.
Use gh normally. On Peter's machines it is expected to be the Octopool-backed shim, so supported reads share the fleet cache without changing commands.
Prefer these local/cached reads:
gitcrawl sync owner/repo --numbers 123 --with pr-details
gh search issues "<terms>" -R owner/repo --state open --json number,title,state,url,updatedAt,labels,author
gh search prs "<terms>" -R owner/repo --state open --json number,title,state,url,updatedAt,isDraft,author
gh issue list -R owner/repo --state open --author user --assignee user --label bug --json number,title,url
gh pr list -R owner/repo --state open --author user --label dependencies --json number,title,url
gh issue view 123 -R owner/repo --json number,title,state,body,comments,labels,url
gh pr view 123 -R owner/repo --json number,title,state,body,comments,labels,files,commits,statusCheckRollup,url
gh pr checks 123 -R owner/repo --json name,state,detailsUrl,workflow
gh run list -R owner/repo --branch branch-name --json databaseId,workflowName,status,conclusion,url
gh pr diff 123 -R owner/repo --patchUse exact refs and narrow fields. Avoid broad loops like one gh issue view per result when a single gh search or gh issue list --json ... can answer the first-pass question.
For CI, avoid tight gh run list / gh run view polling loops. After a push or workflow dispatch, identify one exact run, then poll that run at 30s, 60s, then 120s intervals. Fetch logs once, only after failure or explicit request. Reuse prior output instead of re-reading completed runs.
Local answers are good for discovery, duplicate search, old thread review, author/label triage, and "is there likely already an issue/PR?" checks.
Use a live call when:
For PR review, prefer hydrating exact PR details once with gitcrawl sync owner/repo --numbers <n> --with pr-details when you know you will inspect files, commits, checks, or run summaries repeatedly. The gh shim can auto-hydrate one exact PR on miss, using GITHUB_TOKEN or gh auth token; explicit hydration makes intent and cost clearer.
After a write, do one targeted readback, not a broad rescan.
Inspect cache behavior when rate limits are suspected:
octopool whoami
octopool health
octopool stats --since 1h
octopool stats --since 24h --jsonCheck the saved-vs-backend totals, eligible hit rate, top route kinds, fallbacks, and client attribution. A missing client or unexpected server means that machine is outside the shared fleet cache.
Use OCTOPOOL_NO_FALLBACK=1 only for a bounded read probe that must prove relay coverage. Do not set it globally; mutations and unsupported reads still need real gh.
For relay-only proof:
OCTOPOOL_NO_FALLBACK=1 gh api repos/owner/repo --jq .full_nameBatch questions by repo and state. Reuse data already printed in the session. Back off CI polling; inspect logs only once for a failed run. For reads, never bypass the shim with an absolute real-gh path such as /opt/homebrew/bin/gh or /opt/homebrew/opt/gh/bin/gh unless diagnosing the shim itself. Reserve OPENCLAW_GH_BIN and plain gh resolution for repo workflows that need mutations; keep ordinary reads on bare gh.
bb36883
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.