varnan-tech/explain-this-pr
Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.
npx skills add https://github.com/Varnan-Tech/opendirectory --skill explain-this-pr
Read a GitHub pull request, understand what it changes, and write a plain-English explanation. Post it as a PR comment so reviewers have instant context.
Confirm gh is authenticated:
gh auth status
If not authenticated: gh auth login and follow the prompts.
Confirm input. The user must provide one of:
https://github.com/owner/repo/pull/123)#123)If no input, ask: "Which PR should I explain? Share the URL, PR number, or say 'current' for the active branch."
Get PR metadata:
gh pr view PR_URL_OR_NUMBER --json number,url,title,body,author,baseRefName,headRefName,additions,deletions,changedFiles,commits,labels,state,isDraft
If isDraft is true, note this to the user: "This PR is still in draft. The explanation is based on its current state."
Get the diff:
gh pr diff PR_URL_OR_NUMBER
If the diff is over 400 lines, read the --stat summary and the first 200 lines of the diff:
gh pr view PR_URL_OR_NUMBER --json files
gh pr diff PR_URL_OR_NUMBER | head -200
Get existing comments (to avoid repeating what is already there):
gh pr view PR_URL_OR_NUMBER --json comments --jq '.comments[].body' 2>/dev/null | head -20
Write two paragraphs. Read each rule before writing.
Paragraph 1: What it does (technical)
Example:
Replaces the in-memory session cache in auth.middleware.ts with a Redis-backed cache (src/cache/redis.ts). Adds get, set, and invalidate methods to the new Redis module and wraps UserService.getById() with a 5-minute TTL. Removes the Map-based cache that was limited to a single process and caused session drift across multiple instances.
Paragraph 2: Why it matters (business/product impact)
Example:
Users hitting the /api/me endpoint under load were getting inconsistent session data across server instances, causing intermittent 401 errors. This change makes session state consistent across all instances and reduces database load by eliminating one query per authenticated request.
Rules for both paragraphs:
Before posting, check:
Fix any violation before posting.
Present the explanation to the user. Ask: "Ready to post this as a PR comment, or would you like to edit it first?"
On confirmation, pass the body via stdin to handle backticks, quotes, and newlines safely:
gh pr comment PR_URL_OR_NUMBER --body-file - << 'EOF'
EXPLANATION_HERE
EOF
After posting: "Comment added. View it at: [url from Step 2]"
If the user says "output only", present the explanation in a code block for manual copy-paste without posting.
Take varnan-tech/explain-this-pr from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.