skills/github-cache-hygiene/SKILL.md
GitHub quota/cache hygiene: gh, ghx, xcache, gitcrawl, mirrors, limits.
npx skillsauth add steipete/agent-scripts github-cache-hygieneInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Goal: 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 gitcrawl-backed shim, so supported reads can be answered locally or cached 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 --patch
Use 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 it with backoff. Fetch full logs only for failed jobs or when the user explicitly asks for logs. Completed-style gh run view --log, --log-failed, and common Actions REST log endpoints are cached longer by gitcrawl, while run status stays short-lived.
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:
gh xcache stats
gh xcache keys
gh xcache gc
Read backend_misses_by_command and backend_misses_by_route in gh xcache stats --json before adding new live GitHub loops. Those maps show which command shapes are still escaping the cache.
Use gh xcache flush only when a stale cached fallback read is misleading a decision.
For local-only proof, temporarily make the backend unavailable for a single command:
GITCRAWL_GH_PATH=/tmp/no-real-gh gh search issues "<terms>" -R owner/repo --json number,title,url
Batch questions by repo and state. Reuse data already printed in the session. Back off CI polling; inspect logs only for failing runs or the exact run under review. Do not bypass the shim with /opt/homebrew/opt/gh/bin/gh unless diagnosing the shim itself.
testing
Orchestrate delegated maintainer work across Peter-majority repositories: prepare decision-ready PRs, monitor workers, clear queues, and release.
tools
macOS app release: Sparkle, notarization, GitHub Release, Homebrew, closeout.
tools
Existing Chrome automation: Chrome plugin first, mcporter fallback.
testing
Use whenever the user types triage or asks to triage GitHub issues, PRs, queues, CI, blockers, risk, proof, or next actions.