atman-33

pr-assistant

0
0
# Install this skill:
npx skills add atman-33/skills --skill "pr-assistant"

Install specific skill from multi-skill repository

# Description

Analyzes git changes and assists with creating comprehensive pull requests. Use when user wants to create a PR, review changes before PR, or needs help drafting PR descriptions. Triggers on phrases like 'create PR', 'make a pull request', 'draft PR description', 'what changed in this branch', 'prepare PR'.

# SKILL.md


name: pr-assistant
description: Analyzes git changes and assists with creating comprehensive pull requests. Use when user wants to create a PR, review changes before PR, or needs help drafting PR descriptions. Triggers on phrases like 'create PR', 'make a pull request', 'draft PR description', 'what changed in this branch', 'prepare PR'.


PR Assistant

Assists with creating well-structured pull requests by analyzing changes and generating comprehensive PR descriptions.

Core Philosophy

Human-in-the-loop: This skill generates PR drafts that MUST be reviewed and approved by the user before submission. Never auto-create PRs without explicit confirmation.

Workflow

1. Analyze Changes

First, gather context about the current branch:

# Get current branch and target branch
CURRENT_BRANCH=$(git branch --show-current)
TARGET_BRANCH=${TARGET_BRANCH:-main}

# Get diff summary
git diff $TARGET_BRANCH...$CURRENT_BRANCH --stat

# Get commit messages
git log $TARGET_BRANCH...$CURRENT_BRANCH --oneline

# Get detailed changes by category
git diff $TARGET_BRANCH...$CURRENT_BRANCH --name-status

Use scripts/analyze_changes.py to categorize changes into:
- Backend changes (apis/, requirements.txt)
- Frontend changes (ui/)
- Database changes (supabase/)
- DevOps changes (docker-compose.yml, Dockerfile, etc.)
- Documentation (doc/, *.md)

2. Determine PR Type

Based on the analysis, select the appropriate template:
- Feature: New functionality or enhancements
- Bugfix: Bug fixes or corrections
- Docs: Documentation updates
- Refactor: Code restructuring without behavior change
- Chore: Dependencies, config, tooling updates

3. Generate PR Draft

Use scripts/generate_pr_body.py with the appropriate template from assets/templates/.

Auto-fill sections:
- Summary: Generated from commit messages and file changes
- Changes breakdown: Categorized list of modified files
- Related issues: Parse commit messages for #123, fixes #456 patterns
- Checklist: Auto-populate based on change types

4. Quality Checks

Run scripts/quality_checks.sh to check for:
- Uncommitted changes
- Merge conflicts
- TODO/FIXME comments in changed files
- Missing test files (for significant code changes)
- Large file additions (>1MB)

Present warnings to user but don't block PR creation.

5. Present Draft for Review

CRITICAL: Present the generated PR body in a clear, editable format and explicitly ask the user to review and approve it.

Example presentation:

I've prepared a PR draft. Please review the content below and let me know if you'd like any changes:

---
[Generated PR body here]
---

Would you like me to:
1. Create the PR with this content
2. Make edits to the description
3. Change the target branch (currently: main)
4. Add/remove reviewers

6. Create PR Only After Approval

Once the user approves, use gh CLI:

gh pr create \
  --title "PR Title" \
  --body-file /tmp/pr-body.md \
  --base main \
  --head current-branch \
  [--reviewer user1,user2] \
  [--label label1,label2]

Project-Specific Configuration

For this repository (tomodachi/srms):

Categories:
- Backend: apis/, requirements.txt
- Frontend: ui/src/, ui/package.json
- Database: supabase/
- DevOps: docker-compose.yml, Dockerfile, nginx.conf, supervisord.conf
- Docs: doc/, README.md, CLAUDE.md

Default reviewers (suggest based on changes):
- Backend changes → Backend team
- Frontend changes → Frontend team
- Database changes → DBA/Backend team

Branch naming conventions:
- feature/* → Feature template
- bugfix/* or fix/* → Bugfix template
- docs/* → Docs template
- Other → Feature template (default)

Best Practices

See references/pr-best-practices.md for detailed guidelines.

Key points:
- Keep PRs focused (single concern)
- Write clear, descriptive titles
- Explain the "why" not just "what"
- Include testing evidence
- Link to related issues
- Self-review before requesting review

Interactive Editing

If the user wants to edit the draft:
1. Ask which section to modify
2. Update the specific section
3. Re-present the full draft
4. Repeat until approved

Common Commands

User might say:
- "Create a PR" → Full workflow
- "What changed?" → Just analysis (step 1)
- "Draft PR description" → Steps 1-3, present draft
- "Update PR description" → Edit existing draft
- "Check if ready for PR" → Run quality checks

Error Handling

If issues arise:
- No commits ahead of target → Inform user, suggest checking branch
- Merge conflicts → Show conflicts, suggest resolving first
- No GitHub CLI → Inform user, offer to create PR body for manual submission
- API rate limits → Suggest waiting or manual creation

Output Format

Always save the generated PR body to a temporary file for easy editing:

PR_BODY_FILE=".tmp/outputs/pr-body-$(date +%s).md"

This allows the user to edit it manually if needed before submission.

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.