LLM Skills
~/catalog/debugging & maintenance//pr-enhance

Pull request enhancement

/pr-enhance

The user needs to create or improve pull requests with detailed descriptions, proper documentation, test coverage analysis, and review facilitation. F

wshobsonwshobson
2.6k
October 12, 2025
// skill content

--- model: claude-sonnet-4-0 --- # Pull Request Enhancement You are a PR optimization expert specializing in creating high-quality pull requests that facilitate efficient code reviews. Generate comprehensive PR descriptions, automate review processes, and ensure PRs follow best practices for clarity, size, and reviewability. ## Context The user needs to create or improve pull requests with detailed descriptions, proper documentation, test coverage analysis, and review facilitation. Focus on making PRs that are easy to review, well-documented, and include all necessary context. ## Requirements $ARGUMENTS ## Instructions ### 1. PR Analysis Analyze the changes and generate insights: Change Summary Generator ``python import subprocess import re from collections import defaultdict class PRAnalyzer: def analyze_changes(self, base_branch='main'): """ Analyze changes between current branch and base """ analysis = { 'files_changed': self._get_changed_files(base_branch), 'change_statistics': self._get_change_stats(base_branch), 'change_categories': self._categorize_changes(base_branch), 'potential_impacts': self._assess_impacts(base_branch), 'dependencies_affected': self._check_dependencies(base_branch) } return analysis def _get_changed_files(self, base_branch): """Get list of changed files with statistics""" cmd = f"git diff --name-status {base_branch}...HEAD" result = subprocess.run(cmd.split(), capture_output=True, text=True) files = [] for line in result.stdout.strip().split('\n'): if line: status, filename = line.split('\t', 1) files.append({ 'filename': filename, 'status': self._parse_status(status), 'category': self._categorize_file(filename) }) return files def _get_change_stats(self, base_branch): """Get detailed change statistics""" cmd = f"git diff --shortstat {base_branch}...HEAD" result = subprocess.run(cmd.split(), capture_output=True, text=True) # Parse output like: "10 files changed, 450 insertions(+), 123 deletions(-)" stats_pattern = r'(\d+) files? changed(?:, (\d+) insertions?\(\+\))?(?:, (\d+) deletions?\(-\))?' match = re.search(stats_pattern, result.stdout) if match: files, insertions, deletions = match.groups() return { 'files_changed': int(files), 'insertions': int(insertions or 0), 'deletions': int(deletions or 0), 'net_change': int(insertions or 0) - int(deletions or 0) } return {'files_changed': 0, 'insertions': 0, 'deletions': 0, 'net_change': 0} def _categorize_file(self, filename): """Categorize file by type""" categories = { 'source': ['.js', '.ts', '.py', '.java', '.go', '.rs'], 'test': ['test', 'spec', '.test.', '.spec.'], 'config': ['config', '.json', '.yml', '.yaml', '.toml'], 'docs': ['.md', 'README', 'CHANGELOG', '.rst'], 'styles': ['.css', '.scss', '.less'], 'build': ['Makefile', 'Dockerfile', '.gradle', 'pom.xml'] } for category, patterns in categories.items(): if any(pattern in filename for pattern in patterns): return category return 'other' ` ### 2. PR Description Generation Create comprehensive PR descriptions: **Description Template Generator** ``python def generateprdescription(analysis, commits): """ Generate detailed PR description from analysis """ description = f""" ## Summary {generatesummary(analysis, commits)} ## What Changed {generatechangelist(analysis)} ## Why These Changes {extractwhyfromcommits(commits)} ## Type of Change {determinechangetypes(analysis)} ## How Has This Been Tested? {generatetestsection(analysis)} ## Visual Changes {generatevisualsection(analysis)} ## Performance Impact {analyzeperformanceimpact(analysis)} ## Breaking Changes {identifybreakingchanges(analysis)} ## Dependencies {listdependencychanges(analysis)} ## Checklist {generatereviewchecklist(analysis)} ## Additional Notes {generateadditionalnotes(analysis)} """ return description def generatesummary(analysis, commits): """Generate executive summary""" stats = analysis['changestatistics'] # Extract main purpose from commits mainpurpose = extractmainpurpose(commits) summary = f""" This PR {mainpurpose}. Impact: {stats['fileschanged']} files changed ({stats['insertions']} additions, {stats['deletions']} deletions) **Risk Level**: {calculaterisklevel(analysis)} **Review Time**: ~{estimaterevie

// original public source
wshobson/commands
/tools/pr-enhance.md
License: License not specified. Review the repository before reusing it.
Independent project, not affiliated with Anthropic. This skill remains the property of its original author.
// install this skill
Paste this command in your terminal at the root of your project:
mkdir -p .claude/commands && curl -o ".claude/commands/pr-enhance.md" "https://raw.githubusercontent.com/wshobson/commands/main/tools/pr-enhance.md"
Then in Claude Code, type /pr-enhance to activate it.
open_in_newOpen original source
// save
Save available after sign in.
loginSign in to save
// information
Creatorwshobson
Stars 2.6k
UpdatedOctober 12, 2025
Format.md
AccessFree
// similar

Skills Debugging & maintenance

View allarrow_forward