install
source · Clone the upstream repo
git clone https://github.com/MacPhobos/research-mind
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/MacPhobos/research-mind "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/universal-verification-pre-merge" ~/.claude/skills/macphobos-research-mind-universal-verification-pre-merge && rm -rf "$T"
manifest:
.claude/skills/universal-verification-pre-merge/skill.mdsource content
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
, etc.)mypy - 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
- Screenshot verification for UI changesuniversal-verification-screenshot
- Bug fix verification workflowuniversal-verification-bug-fix
- API security testingtoolchains-universal-security-api-review
- Git workflow best practicesuniversal-collaboration-git-workflow