davesnx/setup/github
Claude Code and agent skill by davesnx/setup
- community
Checking that the SKILL.md file is still in the repository.
GitHub and Git work: validated commits, non-trivial gh commands, PR inspection, unresolved review threads, and merge/rebase/cherry-pick conflict resolution. Load before every `git commit`. Use for 'commit', 'write a commit message', 'commit changes', 'fix merge conflicts', 'resolve conflicts', or a conflicted branch. To watch, diagnose, or fix CI, use the ci skill.
Install
npx vskill@latest install davesnx/setup/githubSKILL.md
GitHub
Raw gh first when you know the command; the scripts replace only the flows agents repeatedly get wrong. Scripts run TS directly (node ≥ 22.18, or ≥ 23.6 on older lines), no deps.
Modes
- GitHub operations: Use the optimized scripts and gotchas below for PR state, review threads, and GitHub Actions failures.
- Commit: Mandatory before every
git commit, unless the user says otherwise. Read references/commit.md for message style, automated review of code diffs, staging, and final status checks. It applies the global agent rules for validation, isolation, and hooks. - Merge conflicts: Read references/merge-conflicts.md and follow it for unresolved merge, rebase, or cherry-pick conflicts. This mode uses Git directly and does not require a GitHub PR.
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)
ghandgitrun outside the Bash sandbox, with credentials, only when
the call is the whole command. A pipe, ;, &&, a redirect, cd … &&, or an env/export prefix runs the call inside the sandbox instead, where ~/.config/gh and ~/.ssh are denied (gh auth login or an SSH error). Run them alone; do not use dangerouslyDisableSandbox for this.
- Never pipe gh into
head: SIGPIPE can kill gh mid-write (spurious nonzero
exit, shell-dependent) or silently truncate large output. Trim with --jq '.[0:20]' instead.
gh pr diffhas no--statand no positive pathspec (--name-onlyand
-e/--exclude globs exist in gh ≥ 2.95). Per-file stats: gh api 'repos/{owner}/{repo}/pulls/N/files' --jq '.[]|[.filename,.additions,.deletions]|@tsv' Full diff: run gh pr diff N alone and read the output; a redirect makes gh run inside the sandbox, without credentials.
gh pr checksexits 1 = failing, 8 = pending by design; run it alone and read the table, not the exit code.- 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/-F silently flips the request to POST without -X GET).
--paginateon any list endpoint (/comments,/files,/reviews);--jq
already 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 under gh run view N --json jobs; gh search prs fields ≠ gh pr view fields.
- 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/protection 404s 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 IDand
gh pr checks N --watch --fail-fast exist; let the harness background them. Inside a ci skill watch, use its snapshot commands instead: a blocking watch there hides another provider's failure or a target change.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingagents/skills/github/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/davesnx/setup/github)