| name | pre-merge |
| description | Comprehensive verification workflow before merging changes to production. |
| version | 1.0.0 |
| tags |
Pre-Merge Verification
Comprehensive verification workflow before merging changes to production.
When to Use This Skill
Use this skill when:
- Creating a pull request for review
- About to merge code to main/production branch
- Need systematic verification checklist
- Want to catch issues before code review
Pre-Commit Verification
Before committing code, verify:
- Type checking passes (language-appropriate:
tsc --noEmit,mypy, etc.) - Linting passes with no errors (ESLint, Pylint, etc.)
- All existing tests pass locally
- No console.log/debug statements left in code
- Code follows project style guide
- No commented-out code blocks
Commands by Language
TypeScript/JavaScript:
# Type check
npx tsc --noEmit
# Lint
npm run lint
# or: pnpm lint
# or: npx eslint .
# Tests
npm test
# or: pnpm test
Python:
# Type check
mypy src/
# Lint
pylint src/
# or: flake8 src/
# or: ruff check src/
# Tests
pytest
# or: python -m pytest
Go:
# Format check
gofmt -l .
# Lint
golangci-lint run
# Tests
go test ./...
Pre-PR Verification
Before creating a pull request, ensure:
Required Information
- Changeset added for user-facing changes (if using changesets)
- PR description is complete with:
- Summary of changes
- Related ticket references (ENG-XXX, HEL-XXX, JIRA-XXX, etc.)
- Screenshots for UI changes (desktop, tablet, mobile)
- Breaking changes documented
- Migration guide (if breaking changes)
- New tests added for new functionality
- Documentation updated if needed (README, API docs, etc.)
Security Checklist (if API changes)
- Authentication required on protected routes
- Authorization checks implemented
- Input validation with schema (Zod, Pydantic, etc.)
- No sensitive data in logs
- No SQL injection vulnerabilities
- No XSS vulnerabilities
- Rate limiting considered
Database Changes (if schema changes)
- Migration file created
- Migration tested on local database
- Migration tested on staging database
- Down migration available (rollback plan)
- No breaking changes without migration guide
- Schema changes documented
UI Changes (if applicable)
- Screenshots included:
- Desktop view (1920x1080)
- Tablet view (768x1024)
- Mobile view (375x667)
- Responsive behavior verified
- Accessibility checked (keyboard navigation, screen readers)
- Loading states implemented
- Error states implemented
Pre-Merge Verification
Before merging to main branch, confirm:
CI/CD Checks
- All CI checks pass (lint, type-check, tests, build)
- Code review approved by at least one reviewer
- No TypeScript errors in changed files
- No merge conflicts with target branch
- Build succeeds without warnings
Functional Verification
- Database migrations run successfully (if applicable)
- No regression in existing functionality
- Performance benchmarks within acceptable range
- Manual testing completed for critical paths
Documentation
- CHANGELOG.md updated (if using)
- API documentation updated (if API changes)
- README updated (if setup/usage changes)
- Migration guide provided (if breaking changes)
PR Description Template
Use this template for comprehensive PR descriptions:
## Summary
[Brief description of what this PR does]
## Related Tickets
- Fixes #123
- Closes ENG-456
- Related to HEL-789
## Changes
- [ ] Feature: [Description]
- [ ] Bug Fix: [Description]
- [ ] Refactor: [Description]
- [ ] Documentation: [Description]
## Testing
### Unit Tests
- Added tests for [feature/function]
- Coverage: X%
### Manual Testing
- [ ] Tested on desktop (Chrome, Firefox, Safari)
- [ ] Tested on mobile (iOS Safari, Android Chrome)
- [ ] Tested edge cases: [list specific cases]
## Screenshots
### Desktop

### Tablet

### Mobile

## Breaking Changes
[List any breaking changes or write "None"]
### Migration Guide
[If breaking changes, provide migration steps]
## Performance Impact
[Describe any performance implications or write "No impact"]
## Security Considerations
[Describe security implications or write "No security impact"]
## Rollback Plan
[Describe how to rollback if issues occur]
## Deployment Notes
[Any special deployment considerations or write "Standard deployment"]
Common Pitfalls to Avoid
Pre-Commit
- ❌ Committing code with failing tests
- ❌ Leaving console.log/debug statements
- ❌ Committing without running type checker
- ❌ Committing large blocks of commented code
Pre-PR
- ❌ Creating PR without description
- ❌ Missing screenshots for UI changes
- ❌ Not linking to related tickets
- ❌ Not documenting breaking changes
- ❌ Missing test coverage for new code
Pre-Merge
- ❌ Merging with failing CI checks
- ❌ Merging without code review approval
- ❌ Merging with merge conflicts
- ❌ Merging without testing migrations
- ❌ Merging without considering rollback plan
Quick Verification Script
Create a pre-commit verification script:
JavaScript/TypeScript (pre-commit.sh):
#!/bin/bash
set -e
echo "Running type check..."
npx tsc --noEmit
echo "Running linter..."
npm run lint
echo "Running tests..."
npm test -- --run
echo "✅ All checks passed!"
Python (pre-commit.sh):
#!/bin/bash
set -e
echo "Running type check..."
mypy src/
echo "Running linter..."
pylint src/
echo "Running tests..."
pytest
echo "✅ All checks passed!"
Make executable:
chmod +x pre-commit.sh
Automation with Git Hooks
Set up automatic pre-commit checks:
Using Husky (JavaScript/TypeScript)
npm install --save-dev husky
npx husky install
npx husky add .husky/pre-commit "npm run lint && npm test"
Using pre-commit (Python)
Create .pre-commit-config.yaml:
repos:
- repo: local
hooks:
- id: type-check
name: Type Check
entry: mypy src/
language: system
pass_filenames: false
- id: lint
name: Lint
entry: pylint src/
language: system
pass_filenames: false
- id: test
name: Test
entry: pytest
language: system
pass_filenames: false
Install hooks:
pre-commit install
Success Criteria
Pre-Commit Success
- ✅ All local checks pass
- ✅ Code is formatted correctly
- ✅ No debug statements remain
- ✅ Tests pass locally
Pre-PR Success
- ✅ PR description is comprehensive
- ✅ All required information included
- ✅ Screenshots attached (if UI changes)
- ✅ Breaking changes documented
Pre-Merge Success
- ✅ CI pipeline is green
- ✅ Code review approved
- ✅ No conflicts with target branch
- ✅ Manual testing completed
Related Skills
universal-verification-screenshot- Screenshot verification for UI changesuniversal-verification-bug-fix- Bug fix verification workflowtoolchains-universal-security-api-review- API security testinguniversal-collaboration-git-workflow- Git workflow best practices