configs/agents/skills/gh/SKILL.md
Use when interacting with GitHub from the command line — creating and managing pull requests, issues, releases, workflows, repositories, and any other GitHub operation. Covers all gh CLI commands including pr, issue, repo, release, run, workflow, search, and api. Enforces conventional commits for PR titles and structured descriptions.
npx skillsauth add Ehrax/dotfiles ghInstall 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.
Manage GitHub entirely from the terminal using gh. This skill covers creating pull requests, triaging issues, running Actions workflows, cutting releases, and making raw API calls — all without leaving your shell.
gh installed (brew install gh)gh auth login-R OWNER/REPO)gh <command> <subcommand> [flags]
All commands support --help and -R/--repo [HOST/]OWNER/REPO.
| Topic | File | Load when... |
|-------|------|-------------|
| Writing PRs & issues | references/writing-prs-and-issues.md | Writing titles, descriptions, conventional commits, PR body structure |
| Pull requests | references/pull-requests.md | Creating, reviewing, merging, listing PRs |
| Issues | references/issues.md | Creating, listing, updating, closing issues |
| Actions & releases | references/actions-and-releases.md | Workflows, runs, releases, assets |
Always use conventional commits in PR titles. See references/writing-prs-and-issues.md for full guidelines.
# Non-interactive — conventional title, body via heredoc
gh pr create \
--title "feat(auth): add OAuth2 login" \
--body "$(cat <<'EOF'
## Description
Adds Google and GitHub OAuth2 login via Passport.js.
Closes #123
## How to test
1. `npm install && npm run dev`
2. Navigate to `/login`
3. Click "Sign in with Google" — should redirect and authenticate
4. Verify session persists on refresh
## Checklist
- [x] Tests added
- [x] Docs updated
EOF
)"
# Fill title/body from commit messages, then open editor to refine
gh pr create --fill
# Draft PR for early feedback
gh pr create --title "feat(api): v2 migration" --draft
Before creating an issue in a repo you have not worked in recently, inspect the latest issue titles and mirror the dominant pattern. Do not assume conventional commits or bare imperative titles are acceptable for issues.
# Inspect recent issue titles first
gh issue list --state all --limit 20 --json number,title
# Bug report
gh issue create \
--title "[Bug]: Login button unresponsive on iOS Safari 17" \
--label "bug,P1" \
--body "$(cat <<'EOF'
## Summary
The login button does nothing on iOS Safari 17 — no network request fires.
## Steps to reproduce
1. Open `/login` on iOS Safari 17
2. Fill in email and password
3. Tap "Sign in"
4. Observe: nothing happens
**Expected**: Form submits and redirects to dashboard.
**Actual**: Button tap has no effect.
## Environment
- Device: iPhone 15 Pro
- OS: iOS 17.4
- App version: v2.3.1
EOF
)"
# Feature request
gh issue create \
--title "[Feature]: Add dark mode toggle" \
--label "enhancement" \
--body "As a user I want dark mode so my eyes don't hurt at night."
gh pr list # PRs in current repo
gh pr diff 42 # View diff
gh pr review 42 --approve # Approve
gh pr merge 42 --squash # Merge (squash)
gh pr checks 42 # CI status
gh run list # Recent workflow runs
gh run watch # Live-watch current run
gh workflow run deploy.yml # Trigger workflow manually
gh release create v1.2.0 ./dist/*.tar.gz \
--generate-notes \
--title "v1.2.0 — Auth improvements"
# REST
gh api repos/:owner/:repo/pulls
# GraphQL
gh api graphql -f query='{ viewer { login } }'
# With pagination
gh api issues --paginate
| Command | Purpose |
|---------|---------|
| gh api | Raw REST/GraphQL API calls |
| gh auth | Authenticate to GitHub |
| gh browse | Open repo/PR/issue in browser |
| gh codespace | Manage Codespaces |
| gh gist | Manage gists |
| gh issue | Manage issues |
| gh label | Manage labels |
| gh org | Organization operations |
| gh pr | Manage pull requests |
| gh project | GitHub Projects |
| gh release | Manage releases |
| gh repo | Manage repositories |
| gh run | GitHub Actions runs |
| gh search | Search GitHub |
| gh secret | Manage secrets |
| gh variable | Manage Actions variables |
| gh workflow | Manage Actions workflows |
feat(scope): title). See references/writing-prs-and-issues.md.[Feature]: ... or [Infra]: ..., keep using them for every new issue.gh reads your Git remote to determine the repo — no need for -R inside the project.--body "$(cat <<'EOF' ... EOF)" to pass multi-line bodies without an editor.Closes #123 in the PR body — GitHub auto-closes the issue on merge.--web to any create command to open the browser form instead.documentation
Compact the current conversation into a handoff document for another agent to pick up.
development
Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture.
data-ai
Triage issues through a state machine driven by triage roles. Use when user wants to create an issue, triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow.
tools
Turn the current conversation context into a PRD and publish it to the project issue tracker. Use when user wants to create a PRD from the current context.