Use before merging PR - final gate ensuring all tests pass, review complete, CI green, and acceptance criteria verified
npx claudepluginhub troykelly/claude-skills --plugin issue-driven-developmentThis skill is limited to using the following tools:
Final verification before merging. All gates must pass.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides TDD-style skill creation: pressure scenarios as tests, baseline agent failures, write docs to enforce compliance, verify with RED-GREEN-REFACTOR.
Final verification before merging. All gates must pass.
Core principle: Never merge without complete verification.
This is a HARD GATE. Do not merge with any failure.
All must be GREEN to merge:
┌──────────────────────────────────────────────────────┐
│ MERGE GATES │
├──────────────────────────────────────────────────────┤
│ [ ] CI Pipeline Green │
│ [ ] Local Integration Tests Pass (if services) │
│ [ ] All Tests Pass │
│ [ ] Code Review Approved │
│ [ ] Acceptance Criteria Verified │
│ [ ] No Unresolved Conversations │
│ [ ] Branch Up to Date │
│ [ ] No Merge Conflicts │
├──────────────────────────────────────────────────────┤
│ ALL GREEN → MERGE ALLOWED │
│ ANY RED → MERGE BLOCKED │
└──────────────────────────────────────────────────────┘
# Check all CI checks
gh pr checks [PR_NUMBER]
# Expected: All passing
✓ build passed
✓ lint passed
✓ test passed
✓ typecheck passed
✓ security passed
If not green: Use ci-monitoring to resolve.
CRITICAL: CI should validate, not discover. If CI found bugs, local testing was insufficient.
# Verify services are running (if project has docker-compose)
docker-compose ps
# Run integration tests against real services
pnpm test:integration
# Verify migrations work
pnpm migrate
If project has docker-compose services:
Local testing evidence must be posted to issue before PR creation.
Skill: local-service-testing
# Verify locally (CI should have done this, but verify)
pnpm test
# Check coverage
pnpm test --coverage
If failing: Fix tests before merge.
# Check review status
gh pr view [PR_NUMBER] --json reviews
# Expected: At least one approval, no changes requested
If not approved:
Check the issue:
gh issue view [ISSUE_NUMBER] --json body
All acceptance criteria should be checked:
## Acceptance Criteria
- [x] User can log in
- [x] Invalid credentials show error
- [x] Session persists
- [x] Logout clears session
If not verified: Complete verification before merge.
# Check for unresolved threads
gh pr view [PR_NUMBER] --json reviewThreads
All review comments should be:
If unresolved: Address the feedback.
# Check if branch is behind target
gh pr view [PR_NUMBER] --json mergeable,mergeStateStatus
# If behind, update
git fetch origin
git rebase origin/main
git push --force-with-lease
If not up to date: Rebase or merge target branch.
# Check for conflicts
gh pr view [PR_NUMBER] --json mergeable
If conflicts exist: Resolve before merge.
git fetch origin
git rebase origin/main
# Resolve conflicts
git add .
git rebase --continue
git push --force-with-lease
Run through this checklist before every merge:
## Pre-Merge Verification
### CI/Tests
- [ ] All CI checks passing
- [ ] Tests pass locally
- [ ] Coverage acceptable
### Review
- [ ] PR approved
- [ ] All conversations resolved
- [ ] Feedback addressed
### Verification
- [ ] All acceptance criteria verified
- [ ] Verification report posted to issue
- [ ] Issue ready to close
### Branch
- [ ] Up to date with target
- [ ] No merge conflicts
- [ ] Commits clean
### Documentation
- [ ] PR description complete
- [ ] Issue updated
- [ ] Relevant docs updated
Once all gates are green:
# Merge with squash (recommended for clean history)
gh pr merge [PR_NUMBER] --squash --delete-branch
# Or merge commit
gh pr merge [PR_NUMBER] --merge --delete-branch
# Or rebase
gh pr merge [PR_NUMBER] --rebase --delete-branch
| Strategy | When to Use |
|---|---|
| Squash | Most PRs - creates single clean commit |
| Merge | When commit history is important |
| Rebase | When you want linear history without merge commit |
Follow project conventions for merge strategy.
After successful merge:
# Check issue status
gh issue view [ISSUE_NUMBER] --json state
# Should be: "CLOSED"
# If not closed automatically, close it
gh issue close [ISSUE_NUMBER] --comment "Closed by #[PR_NUMBER]"
# Update GitHub Project fields
# Status → Done
# (Using project-status-sync)
# Switch to main
git checkout main
# Pull merged changes
git pull origin main
# Delete local branch
git branch -d feature/issue-123-description
# Prune remote tracking branches
git remote prune origin
If auto-deploy is configured:
Cannot merge: Review required
→ Request review
→ Address feedback
→ Get approval
Cannot merge: CI checks failing
→ Use ci-monitoring skill
→ Fix failures
→ Wait for green
Cannot merge: Branch out of date
→ git fetch origin
→ git rebase origin/main
→ Resolve conflicts
→ git push --force-with-lease
Cannot merge: Unresolved review threads
→ Address each comment
→ Mark as resolved
→ Re-request review if needed
| Situation | Action |
|---|---|
| Tests failing | Fix tests first |
| CI red | Fix CI first |
| Review pending | Wait for review |
| Conflicts exist | Resolve conflicts |
| Acceptance criteria not met | Complete verification |
| Critical feedback unaddressed | Address feedback |
Final verification before clicking merge:
This skill is called by:
issue-driven-development - Step 13This skill follows:
ci-monitoring - CI is greenpr-creation - PR existsThis skill completes: