Verification before merge
Skill troykelly/claude-skills/skills/verification-before-merge
Opinionated GitHub-native development workflow with 28 skills for autonomous, issue-driven software development with Claude Code
npx -y skills add troykelly/claude-skills --skill verification-before-mergeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 11 stars11 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use before merging PR - final gate ensuring all tests pass, review complete, CI green, and acceptance criteria verified
SKILL.md
7.8 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Verification Before Merge
Overview
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.
The Gates
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 │
└──────────────────────────────────────────────────────┘
Gate Details
1. CI Pipeline Green
# 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.
1.5. Local Integration Tests Pass
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:
- Services MUST be running locally
- Integration tests MUST pass against real services
- Migrations MUST apply successfully
- NOT acceptable: "unit tests with mocks pass, I'll let CI verify the real services"
Local testing evidence must be posted to issue before PR creation.
Skill: local-service-testing
2. All Tests Pass
# Verify locally (CI should have done this, but verify)
pnpm test
# Check coverage
pnpm test --coverage
If failing: Fix tests before merge.
3. Code Review Approved
# Check review status
gh pr view [PR_NUMBER] --json reviews
# Expected: At least one approval, no changes requested
If not approved:
- Address feedback
- Re-request review
- Wait for approval
4. Acceptance Criteria Verified
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.
5. No Unresolved Conversations
# Check for unresolved threads
gh pr view [PR_NUMBER] --json reviewThreads
All review comments should be:
- Resolved
- Or responded to with explanation
If unresolved: Address the feedback.
6. Branch Up to Date
# 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.
7. No Merge Conflicts
# 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
Pre-Merge Checklist
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
Performing the Merge
Once all gates are green:
Using GitHub CLI
# 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
Merge Strategy
| 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.
Post-Merge
After successful merge:
1. Verify Issue Closed
# 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]"
2. Update Project Status
# Update GitHub Project fields
# Status → Done
# (Using project-status-sync)
3. Clean Up Local
# 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
4. Verify Deployment (if applicable)
If auto-deploy is configured:
- Check deployment status
- Verify feature works in deployed environment
- Monitor for errors
Merge Blocked Scenarios
Review Not Approved
Cannot merge: Review required
→ Request review
→ Address feedback
→ Get approval
Failing CI
Cannot merge: CI checks failing
→ Use ci-monitoring skill
→ Fix failures
→ Wait for green
Branch Behind
Cannot merge: Branch out of date
→ git fetch origin
→ git rebase origin/main
→ Resolve conflicts
→ git push --force-with-lease
Unresolved Conversations
Cannot merge: Unresolved review threads
→ Address each comment
→ Mark as resolved
→ Re-request review if needed
Never Merge When
| 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 |
Checklist
Final verification before clicking merge:
- All CI checks green
- Local integration tests pass (if services available)
- Local testing artifact posted to issue (if services used)
- All tests passing
- PR approved
- All conversations resolved
- Acceptance criteria verified
- Branch up to date
- No conflicts
- PR documentation complete
- Ready to close issue
Integration
This skill is called by:
issue-driven-development- Step 13
This skill follows:
ci-monitoring- CI is greenpr-creation- PR exists
This skill completes:
- The development cycle for an issue
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most quality gates skills give in ~1.7k tokens
Counted across 1,195 of the 2,094 authors here whose files we hold, read 2026-08-07
- Read the output and check the exit codein 54 of 1195, across 14 files
- Verify requirements using a line-by-line checklistin 53 of 1195, across 12 files
- Identify the verification command proving the claimin 51 of 1195, across 12 files
- Run the full verification commandin 50 of 1195, across 11 files
- Verify output confirms the claimin 49 of 1195, across 12 files
- Check version control diff after agent delegationin 46 of 1195, across 6 files
- State claim with evidencein 44 of 1195, across 4 files
- Run the test suitein 33 of 1195, across 26 files
- Keep state in memory by defaultin 27 of 1195, across 6 files
- Make prototype runnable with one commandin 26 of 1195, across 5 files
- Produce a verification reportin 25 of 1195, across 14 files
- Detect the package manager from lockfilesin 24 of 1195, across 5 files
Said here and by no other author read
- verify all CI checks pass
- verify local integration tests pass
- fix failing tests before merge
- ensure PR has received approval
- resolve all unresolved review conversations
- rebase branch if out of date
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.