Agent skill

Performance Regression Gates

Gates สำหรับตรวจจับ performance regression ผ่าน benchmarks, bundle size, และ load time monitoring

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/performance-regression-gates

SKILL.md

Performance Regression Gates

Overview

Gates สำหรับป้องกัน performance regression - bundle size, response time, load time - ต้องไม่แย่ลงเกิน threshold

Why This Matters

  • User experience: Slow app = bad UX
  • Prevent degradation: จับก่อนถึง users
  • Accountability: รู้ว่า PR ไหนทำให้ช้า
  • Automated: ไม่ต้องทดสอบ manual

Performance Metrics

1. Bundle Size

bash
# Check bundle size
npm run build
npm run analyze

# Threshold: No >10% increase
Before: 250 KB
After:  260 KB (+4%) ✓ Pass
After:  280 KB (+12%) ✗ Fail

2. Response Time

bash
# API benchmark
npm run benchmark:api

# Threshold: No >20% slower
GET /users: 50ms → 55ms (+10%) ✓ Pass
GET /users: 50ms → 65ms (+30%) ✗ Fail

3. Load Time

bash
# Lighthouse CI
npm run lighthouse

# Threshold: Score ≥90
Performance: 95 ✓ Pass
Performance: 85 ✗ Fail

CI Pipeline

yaml
# .github/workflows/performance.yml
name: Performance Gates
on: [pull_request]

jobs:
  performance:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Build
        run: npm run build
      
      - name: Bundle Size Check
        uses: andresz1/size-limit-action@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          limit: 10%  # Max 10% increase
      
      - name: Lighthouse CI
        uses: treosh/lighthouse-ci-action@v9
        with:
          runs: 3
          assertions:
            performance: 90
            accessibility: 90
      
      - name: API Benchmark
        run: npm run benchmark:api

Configuration

Bundle Size Limit

json
{
  "size-limit": [
    {
      "path": "dist/bundle.js",
      "limit": "250 KB",
      "gzip": true
    }
  ]
}

Lighthouse Thresholds

json
{
  "ci": {
    "assert": {
      "assertions": {
        "performance": ["error", {"minScore": 0.9}],
        "first-contentful-paint": ["error", {"maxNumericValue": 2000}],
        "interactive": ["error", {"maxNumericValue": 3500}]
      }
    }
  }
}

Summary

Performance Gates: ป้องกัน performance regression

Metrics:

  • Bundle size: No >10% increase
  • Response time: No >20% slower
  • Lighthouse: Score ≥90

Tools:

  • size-limit (bundle)
  • Lighthouse CI (load time)
  • Custom benchmarks (API)

Action: Block merge if regression detected

Didn't find tool you were looking for?

Be as detailed as possible for better results