skills/github/SKILL.md
Use when performing GitHub operations: PRs, issues, CI, releases, or any gh CLI task. Keywords: github, gh, PR, pull request, issue, CI, actions, release, merge, review, repo
npx skillsauth add avifenesh/cairn githubInstall 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.
Always use cairn.shell with gh CLI for GitHub operations. The gh CLI is authenticated and available at /usr/bin/gh. It covers everything GitHub exposes via API — REST and GraphQL. You do NOT need a dedicated GitHub API tool. gh IS the API tool.
cairn.webFetch for GitHub API endpoints — it's unauthenticated, rate-limited to 60 req/hr, and returns raw JSON.cairn.shell with gh commands. Authenticated (5000 req/hr), formatted output.cairn.googleQuery or cairn.googleExecute for GitHub operations — those are Google Workspace tools (Gmail, Calendar, Drive). They do not understand gh commands.You are authenticated as agent-cairn on GitHub. Your PRs and commits are attributed to this identity.
list, view, search, diff, checks, api with GETgh pr create — always draft PRs on repos you don't owngh pr edit — on your own PRs only (title, body)gh pr ready — marking your own PRs as ready for reviewgh pr comment — on your own PRs (e.g. responding to review feedback)gh run view --log — reading CI logsgh pr merge — blocked by policy. Only Avi can merge on his repos.gh release create — releases are public-facinggh issue create / gh issue edit / gh issue close / gh issue comment — affects external project trackinggh workflow run — dispatching workflows can have side effectsgh run rerun — re-triggering CI jobsgh api call with --method POST|PUT|PATCH|DELETE that modifies external statecairn.gitRungh auth login/switch) — blocked by shell policycairn.googleQuery, cairn.googleExecute, or the gog CLI for GitHub — those are Google Workspace tools onlygh api — Raw REST & GraphQL accessAny GitHub REST endpoint or GraphQL query.
# REST
gh api <endpoint> [--method METHOD] [--paginate] [--jq '...'] [--field key=value] [--input file.json] [--header 'Accept: ...']
# GraphQL
gh api graphql -f query='...' -F owner=... -F name=...
Flags: --method, --input, --jq, --paginate, --slurp, --field/-F (typed), --raw-field/-f (string), --header/-H, --preview
gh pr list [-R owner/repo] [--limit N] [--state open|closed|merged|all] [--author LOGIN] [--head BRANCH] [--base BRANCH] [--label LBL] [--search QRY]
gh pr view <number|url|branch> [-R owner/repo]
gh pr create --title "..." --body "..." [-R owner/repo]
gh pr checks <number> [-R owner/repo]
gh pr merge <number> --squash|--merge|--rebase [--delete-branch] [-R owner/repo]
gh pr review <number> --approve|--request-changes|--comment -b "..." [-R owner/repo]
gh pr diff <number> [-R owner/repo]
gh pr close <number> [-R owner/repo]
gh pr comment <number> -b "..." [-R owner/repo]
gh pr edit <number> --title "..." --body "..." [-R owner/repo]
gh pr ready <number> [-R owner/repo]
gh pr revert <number> [-R owner/repo]
gh issue list [-R owner/repo] [--limit N] [--state open|closed|all] [--author LOGIN] [--assignee LOGIN] [--label LBL] [--milestone NAME] [--search QRY]
gh issue view <number|url> [-R owner/repo]
gh issue create --title "..." --body "..." [-R owner/repo]
gh issue close <number> [-R owner/repo]
gh issue comment <number> -b "..." [-R owner/repo]
gh issue edit <number> --title "..." --body "..." [-R owner/repo]
gh repo view [owner/repo]
gh repo list <owner> [--limit N] [--visibility public|private|internal] [--source|--fork] [--language LANG] [--topic TOPIC] [--no-archived]
gh repo clone <owner/repo> [dir]
gh run list [-R owner/repo] [--limit N] [--workflow WORKFLOW]
gh run view <run-id> [-R owner/repo] [--log] [--log-failed] [--verbose]
gh run watch <run-id> [-R owner/repo]
gh run rerun <run-id> [-R owner/repo]
gh workflow list [-R owner/repo]
gh workflow run <workflow> [-R owner/repo] [-f key=value]
gh release list [-R owner/repo]
gh release view <tag> [-R owner/repo]
gh release create <tag> [-R owner/repo] [--title "..."] [--notes "..."] [--draft]
gh search repos|--issues|--prs|--code|--commits "<query>"
gh search repos --owner=agent-sh --limit 10
gh search issues "is:open label:bug" --repo owner/repo
cairn.gitRun for local git commands (status, diff, log, branch, commit)cairn.shell with gh for all remote/interactive operations-R owner/repo to target a repo (or set GH_REPO env var)--json field1,field2 outputs structured JSON on any list/view command--jq '.[].name' filters JSON output--paginate on gh api auto-follows next pages. Always use --paginate with --slurp when the --jq expression uses aggregations like group_by() or unique_by() that must operate on the full result set.gh api calls at least 2s apart. Never poll CI in tight loops — use sleep 30.data-ai
Detect agent-cairn PRs that have stalled (no activity >=90 min) and classify the failure mode to route to appropriate recovery agent.
tools
Post-install skill adaptation: read a newly installed SKILL.md, fix environment-specific references (paths, accounts, tool names), assign the skill to relevant agent types, and propose an AGENTS.md update. Triggered automatically after cairn.installSkill completes.
data-ai
Monthly self-improvement brief for Cairn. Queries error_patterns, action_exemplars, experiment_windows, and session_journal to synthesize what Cairn learned, where it failed, and 3 concrete proposals for Avi to approve. Run on the 1st of each month. Keywords: growth brief, monthly review, self-improvement, what did cairn learn, how is cairn doing, monthly report
testing
Decision support with memory-backed context. Retrieves past decisions, journal history, and relevant facts before answering questions that involve a choice or tradeoff. Keywords: should I, which is better, tradeoff, compare, decide, choose, option, alternative, pros and cons, recommend