better-github-skill
SkillMonitoring & opsGitHub work via gh CLI: PRs, review conversations, CI failures, repo state. Use when inspecting a PR, reading a review (bodies, comments, inline threads), debugging CI (finding which run failed, why a check or Actions run is red, reading job logs), or composing non-trivial gh commands. Scripts cover what raw gh can't do (thread resolution state) or reliably fumbles (PR snapshots, CI log drilldown); use raw gh directly for everything else.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the better-github-skill skill
What this skill tells your AI
The instructions your AI receives, as published by avgvstvs96/better-github-skill in SKILL.md and read by ahel’s review.
Raw gh first when you know the command; the scripts replace only the flows
agents repeatedly get wrong. Scripts run TS directly (node ≥ 23.6), no deps.
Scripts
| script | use for |
|---|---|
scripts/pr-snapshot.ts [pr] [-R o/r] | full PR state in one call: meta, mergeability, checks, files, reviews, comments, thread counts. Use instead of hand-assembling pr view --json field sets or chaining view/checks/comments calls. |
scripts/pr-threads.ts [pr] [-R o/r] [--all] [--author X] [--since ISO] | the full review conversation: review bodies, issue comments, and unresolved inline threads (resolution state porcelain gh cannot get). Resolved/outdated threads are hidden by default, counted in the header; --all includes them. Read-only: never reply to or resolve threads unless explicitly told to. |
scripts/ci-failures.ts [run-id] [--pr N] [--list] [-R o/r] | failing checks → failing jobs/steps → log snippet each; full logs saved to files (paths printed); rg those instead of re-fetching. --list [--workflow W] [-L n] shows recent runs with conclusions; use it to find the failing run id instead of gh run list --json field sets. |
Rule of thumb: pr-snapshot answers "what's the state of this PR", pr-threads answers "what did reviewers write". Neither replaces the other.
All scripts: --json for structured output, --help for usage (includes the
--json shape). Omit the PR number to use the current branch's PR. Default
output is sized for context; pass --full only when a truncation marker
([…+N chars]) hides something you need. They exit 0 when the report
succeeds even if CI is red or threads are unresolved.
Gotchas (each one burned real sessions repeatedly)
- Never pipe gh into
head: SIGPIPE can kill gh mid-write (spurious nonzero exit, shell-dependent) or silently truncate large output. Redirect to a file and read that, or trim with--jq '.[0:20]'. gh pr diffhas no--statand no positive pathspec (--name-onlyand-e/--excludeglobs exist in gh ≥ 2.95). Per-file stats:gh api 'repos/{owner}/{repo}/pulls/N/files' --jq '.[]|[.filename,.additions,.deletions]|@tsv'Full diff:gh pr diff N > "$TMPDIR/pr.diff"once, then rg/sed the file.gh pr checksexits 1 = failing, 8 = pending by design; append|| true, read the table.- File at any ref, no base64 dance:
gh api 'repos/{owner}/{repo}/contents/PATH?ref=SHA' -H 'Accept: application/vnd.github.raw' gh apifills{owner}/{repo}from the cwd repo (GH_REPO=o/roverrides). Quote any api path containing?(zsh globs it), or use-X GET -F per_page=100(any-f/-Fsilently flips the request to POST without-X GET).--paginateon any list endpoint (/comments,/files,/reviews);--jqalready runs per page; don't add--slurp.- PR/comment bodies:
--body-file file.mdor a quoted heredoc. Never inline--body "..."containing backticks. - Field cheat-sheet: CI status on a PR =
statusCheckRollup(pr view); steps live undergh run view N --json jobs;gh search prsfields ≠gh pr viewfields. - gh has no
-C; pass-R owner/repoto every command, or cd first. - Branch rules live at
gh api 'repos/{owner}/{repo}/rulesets'on modern repos;/branches/main/protection404s unless classic protection is on AND you have admin ("Branch not protected" or plain "Not Found" both mean check rulesets; neither is a path error). - Branch drift:
gh api 'repos/{owner}/{repo}/compare/BASE...HEAD' --jq '{ahead_by,behind_by}' - jq beyond one line: write the program to a file and
jq -f prog.jq; inline zsh quoting breaks. - Don't sleep-poll runs or checks;
gh run watch IDandgh pr checks N --watch --fail-fastexist; let the harness background them.
Signals
- GitHub stars
- 49
- Forks
- 3
- Last commit
- Aug 2026
ahel review
S4info
community integration — published by avgvstvs96, not github
Automated review, not a security audit. Ruleset v1.
Advanced
- Catalog kind
- skill
- Gateway key
better-github-skill- Source
- github.com/avgvstvs96/better-github-skill