Guides maintainer-friendly PRs with clean code and communication, avoiding 16 rejection pitfalls like personal artifacts, debug files, secrets, and build outputs. For OSS contributions and PR/CI troubleshooting.
From evolv3ainpx claudepluginhub evolv3ai/claude-skills-archive --plugin projectThis skill uses the workspace's default tool permissions.
LICENSEREADME.mdagents/pr-prepare.mdassets/bad-pr-example.mdassets/good-pr-example.mdreferences/commit-message-guide.mdreferences/files-to-exclude.mdreferences/pr-checklist.mdreferences/pr-template.mdscripts/clean-branch.shscripts/pre-pr-check.shGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Version: 1.2.0 | Last Verified: 2026-01-09 | Production Tested: ✅
Auto-triggers: "submit PR to", "contribute to", "pull request for", "open source contribution"
Create maintainer-friendly PRs while avoiding the 16 common mistakes that cause rejection.
Planning & Notes Documents:
❌ SESSION.md # Session tracking notes
❌ NOTES.md # Personal development notes
❌ TODO.md # Personal todo lists
❌ planning/* # Planning documents directory
❌ IMPLEMENTATION_PHASES.md # Project planning
❌ DATABASE_SCHEMA.md # Unless adding new schema to project
❌ ARCHITECTURE.md # Unless documenting new architecture
❌ SCRATCH.md # Temporary notes
❌ DEBUGGING.md # Debugging notes
❌ research-logs/* # Research notes
Screenshots & Visual Assets:
❌ screenshots/debug-*.png # Debugging screenshots
❌ screenshots/test-*.png # Testing screenshots
❌ screenshot-*.png # Ad-hoc screenshots
❌ screen-recording-*.mp4 # Screen recordings
❌ before-after-local.png # Local comparison images
✅ screenshots/feature-demo.png # IF demonstrating feature in PR description
✅ docs/assets/ui-example.png # IF part of documentation update
Test Files (Situational):
❌ test-manual.js # Manual testing scripts
❌ test-debug.ts # Debugging test files
❌ quick-test.py # Quick validation scripts
❌ scratch-test.sh # Temporary test scripts
❌ example-local.json # Local test data
✅ tests/feature.test.js # Proper test suite additions
✅ tests/fixtures/data.json # Required test fixtures
✅ __tests__/component.tsx # Component tests
Build & Dependencies:
❌ node_modules/ # Dependencies (in .gitignore)
❌ dist/ # Build output (in .gitignore)
❌ build/ # Build artifacts (in .gitignore)
❌ .cache/ # Cache files (in .gitignore)
❌ package-lock.json # Unless explicitly required by project
❌ yarn.lock # Unless explicitly required by project
IDE & OS Files:
❌ .vscode/ # VS Code settings
❌ .idea/ # IntelliJ settings
❌ .DS_Store # macOS file system
❌ Thumbs.db # Windows thumbnails
❌ *.swp, *.swo # Vim swap files
❌ *~ # Editor backup files
Secrets & Sensitive Data:
❌ .env # Environment variables (NEVER!)
❌ .env.local # Local environment config
❌ config/local.json # Local configuration
❌ credentials.json # Credentials (NEVER!)
❌ *.key, *.pem # Private keys (NEVER!)
❌ secrets/* # Secrets directory (NEVER!)
Temporary & Debug Files:
❌ temp/* # Temporary files
❌ tmp/* # Temporary directory
❌ debug.log # Debug logs
❌ *.log # Log files
❌ dump.sql # Database dumps
❌ core # Core dumps
❌ *.prof # Profiling output
✅ Source code changes # The actual feature/fix
✅ Tests for changes # Required tests for new code
✅ Documentation updates # README, API docs, inline comments
✅ Configuration changes # If part of the feature
✅ Migration scripts # If needed for the feature
✅ Package.json updates # If adding/removing dependencies
✅ Schema changes # If part of feature (with migrations)
✅ CI/CD updates # If needed for new workflows
Use the bundled scripts/pre-pr-check.sh to scan for artifacts:
./scripts/pre-pr-check.sh
What it checks:
git status
git diff --stat
Ask yourself:
Manual removal:
git rm --cached SESSION.md
git rm --cached -r planning/
git rm --cached screenshots/debug-*.png
git rm --cached test-manual.js
Or use the clean script:
./scripts/clean-branch.sh
Add personal patterns to .git/info/exclude (affects only YOUR checkout):
# Personal development artifacts
SESSION.md
NOTES.md
TODO.md
planning/
screenshots/debug-*.png
test-manual.*
scratch.*
Template (see references/pr-template.md):
## What?
[Brief description of what this PR does]
## Why?
[Explain the reasoning, business value, or problem being solved]
## How?
[Describe the implementation approach and key decisions]
## Testing
[Step-by-step instructions for reviewers to test]
## Checklist
- [ ] Tests added/updated
- [ ] Documentation updated
- [ ] CI passing
- [ ] Breaking changes documented
## Related Issues
Closes #123
Relates to #456
Conventional Commits: <type>(<scope>): <subject>
Types: feat, fix, docs, refactor, test, ci, chore
Example: feat(auth): add OAuth2 support for Google and GitHub
See references/commit-message-guide.md for complete guide.
Research-backed guidelines:
Keep PRs small:
if (featureFlags.newAuth) {
// New OAuth flow (incomplete but behind flag)
} else {
// Existing flow
}
Before contributing:
/, /.github/, /docs/)npm run lint, npm run formatnpm test && npm run lint && npm run build
Response templates:
See Critical Workflow Rules section for detailed guidance on Rules 1-3
RULE 1: ALWAYS Work on a Feature Branch
# ✅ CORRECT
git checkout main
git pull upstream main
git checkout -b feature/add-oauth-support
# make changes on feature branch
git commit -m "feat(auth): add OAuth support"
Branch naming: feature/name, fix/issue-123, docs/update-readme, refactor/utils, test/add-tests
RULE 2: Test Thoroughly BEFORE Submitting PR
Never submit without:
npm test && npm run lint && npm run buildTesting checklist template:
## Testing Performed
### Automated Tests
- ✅ All existing tests pass
- ✅ Added 12 new tests for OAuth flow
- ✅ Coverage increased from 85% to 87%
### Manual Testing
- ✅ Tested Google/GitHub OAuth flows end-to-end
- ✅ Verified error handling
- ✅ Tested on Chrome, Firefox, Safari
RULE 3: Keep PRs Focused and Cohesive
One PR = One Feature/Fix
Keep focused:
git diff - Is every change necessary for THIS feature?Break large features into phases:
PR #1: Database schema and models
PR #2: API endpoints
PR #3: Frontend components
PR #4: Integration and tests
Create: gh pr create --draft
Mark ready: gh pr ready (when code complete, tests passing, CI passing)
Auto-closing keywords (in PR description):
Closes #123
Fixes #456
Resolves #789
# Multiple: Fixes #10, closes #20, resolves #30
# Cross-repo: Fixes owner/repo#123
gh pr create --fill # Auto-fill from commits
gh pr create --draft # Draft PR
gh pr status # See your PRs
gh pr checks # View CI status
gh pr ready # Mark draft as ready
See references/pr-checklist.md for complete version.
Pre-Contribution:
Development:
npm test && npm run lint && npm run buildCleanup:
./scripts/pre-pr-check.shPR Quality:
Post-Submission:
See bundled examples and scripts:
scripts/pre-pr-check.sh - Scan for artifacts before submissionscripts/clean-branch.sh - Remove common personal artifactsreferences/pr-template.md - PR description templatereferences/pr-checklist.md - Complete checklistreferences/commit-message-guide.md - Conventional commits guideassets/good-pr-example.md - Well-structured PR exampleassets/bad-pr-example.md - Common mistakes to avoid./scripts/pre-pr-check.sh: Scan for artifacts before submissionProduction Tested: Real-world open source contributions and maintainer feedback
Token Efficiency: ~70% savings vs trial-and-error
Errors Prevented: 16 common mistakes
Last Verified: 2026-01-09