Claude Code Plugins

Community-maintained marketplace

Feedback

Comprehensive verification workflow before merging changes to production.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

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
![Desktop view](screenshot-url)

### Tablet
![Tablet view](screenshot-url)

### Mobile
![Mobile view](screenshot-url)

## 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 changes
  • universal-verification-bug-fix - Bug fix verification workflow
  • toolchains-universal-security-api-review - API security testing
  • universal-collaboration-git-workflow - Git workflow best practices