npx claudepluginhub lklimek/claudiusWant just this skill?
Then install: npx claudepluginhub u/[userId]/[slug]
Invoke for all git and gh commands, GitHub interactions. Solves git and gh access / permission denied issues.
This skill uses the workspace's default tool permissions.
references/gh-cli-fallback.mdreferences/pr-review.mdGitHub Workflow
Use git for repository operations (clone, fetch, commit, push, branch, merge). Use GitHub MCP for GitHub-specific operations (PRs, issues, releases, Actions, checks).
Tooling: Prefer GitHub MCP server tools (mcp__plugin_claudius_github__*) for all GitHub API operations -- PRs, issues, reviews, actions, branches, releases, security alerts. If GitHub MCP is unavailable, read gh-cli-fallback.md for gh CLI equivalents.
Attribution: Every commit, PR, issue, and comment posted to GitHub must include this footer (blank line before it):
<sub>🤖 Co-authored by [Claudius the Magnificent](https://github.com/lklimek/claudius) AI Agent</sub>
Before Starting Work
- Verify you're on a base branch — if on an unrelated feature branch, switch to base or confirm with user.
- Pull (fast-forward only). On diverged history, rebase if trivial, otherwise alert user.
- Search open PRs for related fixes — don't duplicate work already in progress.
Committing
Create feature branches. NEVER commit to base branch.
Stage specific files -- never git add . or git add -A.
Use conventional commits (feat, fix, docs, refactor, test, chore, perf). Append ! for breaking changes.
Commit message format (always use HEREDOC):
git add <file1> <file2>
git commit -m "$(cat <<'EOF'
<type>: <description>
<optional body>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"
Changelog
When editing CHANGELOG.md, follow Keep a Changelog format.
Pushing
If a push fails with 403 or "Resource not accessible" and ghsudo is installed, retry through ghsudo (see Elevated Permissions).
Always ask the user for explicit confirmation before every push. Never push automatically -- even after committing or creating a PR. Even if the user agreed to push earlier, ask again before next push.
Never force-push. Never amend commits. Always create new commits. If force-push is required, ask the user to do it manually.
Pull Requests
Creating a PR
Check for a PR template first. If a template exists, read and fill it in. When applicable, include an informal user story (what the user can achieve, no technical details -- start with "Imagine you are...").
Always create PRs as drafts.
Reviewing a PR
Never submit a final review (approve/request-changes). Always create draft/pending reviews. The user must publish the review themselves. When using MCP, omit the event field in pull_request_review_write to create a pending review.
See pr-review.md for the full procedure: fetching PR context, deduplication, diff-bounds verification, and posting inline comments.
Issues
Before creating, search existing issues (open + closed) and PRs for duplicates. If found, show to user and ask before proceeding. Check for issue templates. Always append attribution footer.
Feature/enhancement issues must include a ### User Story section -- an informal story describing what the user can achieve (no technical details). Start with "As a <persona>, I want to ... so that ...". Multiple personas are fine. Place user stories before technical details.
Safety Rules
- Always ask before pushing or publishing to GitHub -- pushes, PRs, issues, comments, reviews. Commits are local and don't require confirmation, but pushes always do.
- Never force-push. Never amend commits. Always create new commits. If force-push is needed, ask the user to do it manually.
- Never use
git add .orgit add -A-- stage specific files - Never use interactive flags (
-i) -- requires terminal input - Never skip hooks (
--no-verify) unless explicitly requested - Check for
.env, credentials, or secret files before staging -- warn if found - Check for PR/issue templates before creating -- use them if they exist
- Avoid
gh api-- prefer MCP tools or high-levelghsubcommands. Usegh apionly for read-only queries when no subcommand or MCP tool exists. Never usegh apifor write operations. Exception:gh api graphqlfor mutations with no MCP/CLI equivalent (e.g., thread resolution). - Never fork repositories -- on access denied (403/404), use
ghsudoto elevate permissions or ask the user. Forking creates a separate repo and breaks the workflow. This applies to bothgh repo forkandfork_repositoryMCP tool. - Sandbox and
gh/ghsudoCLI -- these commands need network access toapi.github.com. The recommended fix is adding"api.github.com"tosandbox.network.allowedDomainsinsettings.json— this letsghwork inside the sandbox without disabling it. If that's not configured andghfails with network errors, usedangerouslyDisableSandbox: trueon the Bash tool call as a fallback. MCP tools (mcp__plugin_claudius_github__*) bypass the sandbox and are unaffected.
Context Management — Large MCP Responses
GitHub MCP tools can return 10k+ tokens (file lists, diffs, review threads, CI logs), polluting the calling agent's context window with data that's only needed briefly.
Solution: Delegate large MCP operations to a disposable subagent via the Agent tool. The subagent calls the MCP tool, extracts what's needed, and returns only a concise summary. Its full context is discarded after completion.
Delegate these (unbounded/large responses):
pull_request_readwithget_files— file lists on large PRspull_request_readwithget_diff— full PR diffspull_request_readwithget_review_comments— PRs with many threadsget_job_logs— CI logs (10k+ tokens typical)list_*andsearch_*operations with many results
Safe to call directly (bounded data): single PR metadata (get), single issue, branch list, single commit.
Pattern:
Agent(
subagent_type="Explore",
prompt="Fetch changed files for PR #123 in owner/repo using pull_request_read (get_files). Return only: file paths with +/- line counts and total stats."
)
Use Explore for read-only extraction (has MCP tools, no Edit/Write). Use general-purpose when writes are needed.
Key principle: Tell the subagent exactly what to extract and what format to return. Not "fetch PR data" but "fetch changed file list, return file paths with +/- line counts, total stats."
Escaping and Formatting
- Use HEREDOCs (
<<'EOF') for multi-line bodies - When using
gh api(read-only only), prefer--jqover| jq----jqis processed internally bygh, avoiding shell expansion issues (!triggers history expansion)
GitHub MCP PR Body Formatting
When passing a body parameter to create_pull_request or update_pull_request MCP tools, use actual multi-line strings — NOT \n escape sequences on a single line. MCP tools pass the string directly to the API; \n renders as literal backslash-n on GitHub instead of a newline.
Requesting Reviewers
Use gh-request-reviewer.sh for all reviewer requests — supports multiple reviewers and @copilot:
gh-request-reviewer.sh <owner/repo> <pr_number> <reviewer> [reviewer ...]
@copilot reviewer syntax requires gh ≥ 2.88.0. If requesting review fails, check gh --version and escalate to the user if upgrade is needed.
Elevated Permissions (ghsudo) -- Optional Fallback
If a gh or git command fails with 403/404 or "Resource not accessible", use ghsudo (pip install ghsudo) to retry with elevated permissions. Never fork the repository as a workaround -- forking creates a separate repo and breaks push/PR workflows. See gh-cli-fallback.md for full usage and exit codes.
Similar Skills
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.