skills/golem-powers/github/SKILL.md
Git and GitHub operations via gh CLI — branching, committing, creating PRs, managing issues, viewing CI status, and repository management. Provides ready-to-use gh commands for common workflows like creating feature branches, checking PR review status, listing open issues, viewing workflow run results, and managing labels. Use when doing git operations, creating or updating PRs, managing GitHub issues, checking CI/CD status, viewing PR comments, or working with GitHub releases. Triggers on 'git', 'github', 'PR', 'pull request', 'issue', 'branch', 'CI status', 'gh'. NOT for: Linear issue tracking (use linear), AI code reviews (use coderabbit), full PR lifecycle with review loops (use pr-loop).
npx skillsauth add etanhey/golems 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.
Use
ghCLI and git commands through this skill. No GitHub MCP required.
gh CLI installed (brew install gh)gh auth login# Create issue
gh issue create --title "Title" --body "Description" --label "bug"
# List issues
gh issue list
gh issue list --assignee @me
gh issue list --label "enhancement"
# View issue
gh issue view 123
# Close issue
gh issue close 123
# Create PR (from current branch)
gh pr create --title "Title" --body "Description"
# Create PR with template
gh pr create --title "feat: add feature" --body "$(cat <<'EOF'
## Summary
- Change 1
- Change 2
## Test plan
- [ ] Test A
- [ ] Test B
EOF
)"
# List PRs
gh pr list
gh pr list --author @me
# View PR
gh pr view 123
# Checkout PR locally
gh pr checkout 123
# Merge PR
gh pr merge 123 --squash
# Stage specific files (preferred over git add -A)
git add file1.ts file2.ts
# Commit with co-author
git commit -m "$(cat <<'EOF'
feat: description of change
More details here.
Co-Authored-By: Claude <[email protected]>
EOF
)"
# Check status
git status
# View diff
git diff
git diff --staged
# Create and switch
git checkout -b feat/new-feature
# Push with upstream
git push -u origin feat/new-feature
# Delete branch (after merge)
git branch -d feat/old-feature
Worktrees create isolated workspaces sharing the same repo — work on multiple branches simultaneously.
Directory selection (priority order):
.worktrees/ or worktrees/ dir.worktrees/ (project-local, hidden) or ~/.config/superpowers/worktrees/<project>/ (global)Safety: For project-local dirs, verify they're gitignored first:
git check-ignore -q .worktrees 2>/dev/null
# If NOT ignored: add to .gitignore + commit before proceeding
Create + setup:
# Create worktree with new branch
git worktree add .worktrees/feature-name -b feat/feature-name
cd .worktrees/feature-name
# Auto-detect and run project setup
[ -f package.json ] && npm install
[ -f Cargo.toml ] && cargo build
[ -f requirements.txt ] && pip install -r requirements.txt
# Verify clean baseline
npm test # or appropriate test command
# List worktrees
git worktree list
# Remove worktree (after merge/discard)
git worktree remove .worktrees/feature-name
git checkout -b feat/feature-name
# ... make changes ...
git add changed-files.ts
git commit -m "feat: add feature"
git push -u origin feat/feature-name
gh pr create --title "feat: add feature" --body "Description"
# View the issue first
gh issue view 42
# Create branch
git checkout -b fix/issue-42
# ... fix the bug ...
git add .
git commit -m "fix: resolve issue #42"
git push -u origin fix/issue-42
gh pr create --title "fix: resolve issue #42" --body "Closes #42"
gh issue create \
--title "feat: future enhancement" \
--body "## Description
What needs to be done.
## Acceptance Criteria
- [ ] Criterion 1
- [ ] Criterion 2" \
--label "enhancement"
git add -A which can include secretsgit status and git diff --stagedSymptom: gh commands fail with "Bad credentials" even though gh auth status shows you're logged in.
Cause: An old/expired GITHUB_TOKEN in your shell config (.zshrc, .bashrc) overrides the valid keyring auth.
Diagnosis:
gh auth status
# Look for: "The token in GITHUB_TOKEN is invalid"
# And: "Active account: false" even though logged in
Fix:
# 1. Find where GITHUB_TOKEN is set
grep -r "GITHUB_TOKEN" ~/.zshrc ~/.bashrc ~/.zprofile 2>/dev/null
# 2. Remove that line from your shell config (or comment it out)
# The gh CLI uses keyring auth now which is better (auto-refreshes)
# 3. Unset in current session
unset GITHUB_TOKEN
# 4. Verify it works
gh auth status # Should show "Active account: true"
Why this happens: Old GitHub workflows used personal access tokens exported as GITHUB_TOKEN. The gh CLI now uses OAuth via keyring, which is more secure and auto-refreshes. The old env var takes precedence and breaks things.
gh auth login
# Fetch and rebase
git fetch origin
git rebase origin/main
# Then push
git push
tools
The human-eval UX contract for Phoenix views: turn-by-turn scrollable replay (not a scorecard), hide-but-copyable IDs, collapsed thinking, identity chips, tool filters, tiny frozen starter datasets, mark-wrong-in-thread, mobile-first. Use when: building or reviewing ANY Phoenix/eval view, annotation UI, session replay, or human-grading surface. Triggers: phoenix view, eval UI, annotation view, session replay, human eval UX, grading interface. NOT for: Phoenix data pipelines/ingest (capture scripts have their own specs).
tools
macOS systems specialist — AppKit NSPanel architecture, launchd services, socket activation, MCP bridge resilience, syspolicyd, and high-frequency SwiftUI dashboards. Use when building menu-bar apps, LaunchAgents, debugging syspolicyd/Gatekeeper/TCC, resilient UDS/MCP bridges, or SwiftUI dashboards at 10Hz+.
development
Bulk LLM-judging protocol for fleet-dispatched verdict runs (KG cluster, eval harness). Use when: dispatching or running judge workers (J1/J2/RT), planning bulk-apply from verdict JSONL, or triaging evidence_degraded outputs. Triggers: judge fleet, bulk judge, R3 verdicts, kg-judge, RT gate, evidence_degraded. NOT for: single-item code review, Phoenix view UX (use phoenix-human-view), or non-judge eval pipelines.
development
Quiet-down protocol for sprint close: when the fleet wraps, delete ALL polling crons and monitors, send ONE final dashboard + ONE message, then go SILENT. Use when: fleet wraps, all workers done, overnight queue exhausted, sprint close, Etan asleep/away with nothing approved left. Triggers: fleet wrap, wrap the fleet, stand down, going quiet, sprint close. NOT for: mid-sprint monitoring (keep your loops), spawning a successor (use /session-handoff first).