К основному содержанию
скилл CX Codex

pr-quality-checklist — скилл для Claude Code

Прогоняет пул-реквест по чек-листу: заголовок, описание, размер диффа, тесты. Пригодится перед тем, как нажать «Create pull request».

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add bobmatnyc/claude-mpm-skills --skill pr-quality-checklist -a claude-code
Открыть на GitHub

Что делает pr-quality-checklist

Скилл разворачивает перед агентом набор правил для пул-реквестов. Заголовок по схеме type(scope): description с типами от feat до ci. Описание собирается по шаблону: краткая сводка, связанные тикеты, список добавленного и изменённого, скриншоты для UI, тест-план.

Отдельный блок про размер. Ориентир — меньше 300 изменённых строк и меньше 15 файлов, то есть ревью укладывается в полчаса. Дальше идут категории от XS до XL с пометками, когда PR стоит разбить: по слоям, по этапам фичи или по уровню риска. Есть шаблон для рефакторинга со статистикой добавленных и удалённых строк.

Внутри есть раздел с частыми ошибками и чек-лист для ревьюера. Скилл помечен как user-invocable: false и disable-model-invocation: true, поэтому сам он не вызывается — работает как справочник, который агент подхватывает в контекст. Ставить есть смысл, если в команде ревью буксует на мелочах вроде отладочного console.log в диффе.

Какие задачи решает

  • привести заголовок PR к общему формату
  • собрать описание с тест-планом и ссылками на тикеты
  • решить, пора ли разбивать большой дифф на части
  • вычистить отладочный код перед отправкой
  • задать единые требования к PR для новых людей в команде

Примеры запросов агенту

  • Проверь мой пул-реквест по чек-листу pr-quality-checklist и скажи, что поправить до отправки
  • Составь описание PR по шаблону из скилла: сводка, связанные тикеты, тест-план
  • Дифф на 600 строк в 20 файлах — по гайдлайнам скилла предложи, как его разбить

Как установить pr-quality-checklist

1Через Skills CLI (Vercel)

npx skills add bobmatnyc/claude-mpm-skills --skill pr-quality-checklist -a claude-code

2Вручную: положить файлы

~/.claude/skills/pr-quality-checklist/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/pr-quality-checklist/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о pr-quality-checklist

Как установить pr-quality-checklist в Claude Code?

Выполните npx skills add bobmatnyc/claude-mpm-skills --skill pr-quality-checklist -a claude-code. Файл скилла окажется по пути ~/.claude/skills/pr-quality-checklist/SKILL.md.

Что делает pr-quality-checklist?

Даёт агенту шаблоны и правила для пул-реквестов: формат заголовка, структуру описания, ориентиры по размеру диффа, отдельный шаблон для рефакторинга и чек-лист для ревьюера.

Можно вызвать скилл вручную?

Нет. В нём стоит user-invocable: false и disable-model-invocation: true, так что слэш-команды у него нет — он подключается как справочный материал.

Исходный текст

SKILL.md · MIT
---
name: pr-quality-checklist
description: PR quality checklist for ensuring comprehensive, well-documented pull requests. Use before submitting PRs to improve review efficiency and code quality.
user-invocable: false
disable-model-invocation: true
progressive_disclosure:
  entry_point:
    - summary
    - when_to_use
    - quick_checklist
  sections:
    - pr_title_format
    - pr_description_template
    - size_guidelines
    - refactoring_prs
    - review_checklist
    - common_mistakes
---

# PR Quality Checklist Skill

## Summary
Comprehensive guide for creating high-quality pull requests that are easy to review, well-documented, and follow team standards. Includes templates, size guidelines, and best practices for both authors and reviewers.

## When to Use
- Before creating any pull request
- When reviewing others' PRs
- To establish team PR standards
- During onboarding of new team members
- When PR reviews are taking too long

## Quick Checklist

### Before Creating PR
- [ ] PR title follows convention: `type(scope): description`
- [ ] Description includes summary, related tickets, and test plan
- [ ] Changes are focused and related (single concern)
- [ ] Code is self-reviewed for obvious issues
- [ ] Tests added/updated and passing
- [ ] No debugging code (console.log, debugger, etc.)
- [ ] TypeScript/type errors resolved
- [ ] Documentation updated if needed
- [ ] Screenshots included for UI changes
- [ ] Changeset added (for user-facing changes)

---

## PR Title Format

### Convention
```
{type}({scope}): {short description}
```

### Types
- **feat**: New feature
- **fix**: Bug fix
- **refactor**: Code change that neither fixes a bug nor adds a feature
- **docs**: Documentation only
- **style**: Formatting, missing semicolons, etc. (no code change)
- **test**: Adding or updating tests
- **chore**: Maintenance tasks, dependency updates
- **perf**: Performance improvement
- **ci**: CI/CD changes

### Examples
```
feat(auth): add OAuth2 login support
fix(cart): resolve race condition in checkout
refactor(search): extract query param parsing logic
docs(api): update authentication examples
test(payment): add integration tests for Stripe
chore(deps): update Next.js to v15
perf(images): implement lazy loading for gallery
ci(deploy): add staging environment workflow
```

### Scope Guidelines
- Use component/module name: `auth`, `cart`, `search`, `api`
- Be specific but not too granular: `user-profile` not `user-profile-settings-modal`
- Consistent with codebase structure

---

## PR Description Template

### Standard Template
```markdown
## Summary
<!-- 1-3 bullet points describing what changed -->
- Added OAuth2 authentication flow
- Integrated with Auth0 provider
- Updated login UI components

## Related Tickets
<!-- Link to Linear/Jira/GitHub issues -->
- Closes #123
- Related to #456
- Fixes ENG-789

## Changes
<!-- Detailed list of changes -->
### Added
- `src/lib/auth/oauth2.ts` - OAuth2 client implementation
- `src/app/api/auth/callback/route.ts` - Auth callback handler
- `src/components/OAuthButtons.tsx` - OAuth login buttons

### Modified
- `src/components/LoginForm.tsx` - Added OAuth buttons
- `src/lib/auth/index.ts` - Export new auth methods
- `README.md` - Updated setup instructions

### Removed
- `src/lib/auth/legacy.ts` - Deprecated auth code
- `src/components/OldLoginForm.tsx` - Replaced by new form

## Screenshots
<!-- Required for UI changes -->
### Desktop
![Desktop view](https://imgur.com/desktop.png)

### Mobile
![Mobile view](https://imgur.com/mobile.png)

### Before/After (if applicable)
| Before | After |
|--------|-------|
| ![Before](before.png) | ![After](after.png) |

## Testing
<!-- How was this tested? -->
- [ ] Unit tests added/updated
- [ ] Integration tests pass
- [ ] Manual testing completed
- [ ] Tested on Chrome, Firefox, Safari
- [ ] Mobile responsive (tested on iOS/Android)
- [ ] Edge cases tested (empty state, error states, loading)

## Breaking Changes
<!-- If any breaking changes -->
⚠️ **Breaking Change**: The `login()` function signature has changed.

**Before:**
```typescript
login(username: string, password: string)
```

**After:**
```typescript
login({ username: string, password: string, provider?: 'local' | 'oauth' })
```

**Migration:**
```typescript
// Old
await login('user', 'pass');

// New
await login({ username: 'user', password: 'pass' });
```

## Checklist
- [ ] Code follows project style guidelines
- [ ] Self-review completed
- [ ] Comments added for complex logic
- [ ] Documentation updated (if needed)
- [ ] Changeset added (if user-facing change)
- [ ] No console.log/debugger statements left
- [ ] No TypeScript errors
- [ ] Tests pass locally
- [ ] Build succeeds
```

### Minimal Template (for small changes)
```markdown
## Summary
Brief description of the change.

## Changes
- Modified `file.ts` to fix XYZ

## Testing
- [ ] Tests pass
- [ ] Verified manually
```

---

## Size Guidelines

### Ideal PR Size
- **Lines changed**: < 300 (excluding generated files)
- **Files changed**: < 15
- **Review time**: < 30 minutes
- **Commits**: 1-5 logical commits

### Size Categories
| Size | Lines | Files | Review Time | Recommendation |
|------|-------|-------|-------------|----------------|
| **XS** | < 50 | 1-3 | 5 min | ✅ Ideal for hotfixes |
| **S** | 50-150 | 3-8 | 15 min | ✅ Good size |
| **M** | 150-300 | 8-15 | 30 min | ⚠️ Consider splitting |
| **L** | 300-500 | 15-25 | 1 hour | ❌ Should split |
| **XL** | 500+ | 25+ | 2+ hours | ❌ Must split |

### When to Split PRs

#### 1. By Feature Phase
```
PR #1: MVP implementation (core functionality)
PR #2: Polish and edge cases
PR #3: Additional features
```

#### 2. By Layer
```
PR #1: Database schema changes
PR #2: Backend API implementation
PR #3: Frontend UI integration
PR #4: Tests and documentation
```

#### 3. By Concern
```
PR #1: Refactoring (no behavior change)
PR #2: New feature (builds on refactored code)
PR #3: Tests for new feature
```

#### 4. By Risk Level
```
PR #1: High-risk changes (need careful review)
PR #2: Low-risk changes (routine updates)
```

### Exceptions to Size Limits
- Generated code (migrations, API clients, types)
- Renaming/moving files (show with `git mv`)
- Bulk formatting changes (separate PR, pre-approved)
- Third-party library integration (well-documented)

---

## Refactoring PRs

### Refactoring Template
```markdown
## Summary
Refactoring and cleanup for [area]

**Goal**: Improve code maintainability without changing behavior

## Motivation
- Reduce code duplication (3 similar functions → 1 reusable utility)
- Improve type safety (any → specific types)
- Remove dead code identified during feature work

## Related Tickets
- ENG-XXX: Improve [area] maintainability
- ENG-YYY: Remove deprecated [feature]

## Stats
- **Lines added**: +91
- **Lines removed**: -1,330
- **Net**: -1,239 ✅
- **Files changed**: 23

## Changes

### Removed (Dead Code)
- `/api/old-endpoint` - unused, replaced by `/api/new-endpoint` in v2.0
- `useDeprecatedHook.ts` - replaced by `useNewHook.ts` (ENG-234)
- `legacy-utils.ts` - functions no longer called anywhere

### Refactored
- **Extracted common logic**: Query param parsing now in `lib/url-utils.ts`
- **Consolidated validation**: 3 duplicate Zod schemas → 1 shared schema
- **Improved types**: Replaced 12 `any` types with proper interfaces

### No Behavior Changes
- [ ] All tests pass (no test modifications needed)
- [ ] Same inputs → same outputs
- [ ] No user-facing changes

## Testing
- [ ] Full test suite passes (no new tests needed)
- [ ] Manual smoke test completed
- [ ] No regressions identified

## Review Focus
- Verify removed code is truly unused (checked with `rg` search)
- Confirm refactored logic is equivalent
- Check no subtle behavior changes introduced
```

### Refactoring Best Practices
- **Separate refactoring from features**: Never mix
- **Verify zero behavior change**: Tests should not need updates
- **Document removed code**: Explain why safe to remove
- **Search thoroughly**: Use `rg`/`grep` to verify no usage
- **Celebrate negative LOC**: Highlight code reduction

---

## Review Checklist

### For Authors (Self-Review)
Before requesting review, check:

#### Code Quality
- [ ] Code is DRY (no obvious duplication)
- [ ] Functions are single-purpose and focused
- [ ] Variable names are clear and descriptive
- [ ] No magic numbers or hardcoded values
- [ ] Error handling is comprehensive
- [ ] Edge cases are handled

#### Testing
- [ ] Tests cover new functionality
- [ ] Tests are meaningful (not just for coverage)
- [ ] Edge cases are tested
- [ ] Error conditions are tested
- [ ] No flaky tests introduced

#### Documentation
- [ ] Complex logic has comments
- [ ] Public APIs have JSDoc/docstrings
- [ ] README updated (if setup changed)
- [ ] Migration guide (if breaking changes)

#### Performance
- [ ] No obvious performance issues
- [ ] Database queries are efficient (indexes considered)
- [ ] No N+1 queries
- [ ] Large datasets handled appropriately

#### Security
- [ ] No hardcoded secrets
- [ ] Input validation present
- [ ] Authorization checks in place
- [ ] No SQL injection vulnerabilities
- [ ] Sensitive data not logged

---

### For Reviewers

#### First Pass (5 minutes)
- [ ] PR description is clear
- [ ] Changes align with stated goal
- [ ] Size is reasonable (< 300 LOC preferred)
- [ ] No obvious red flags

#### Code Review (15-30 minutes)
- [ ] Logic is correct
- [ ] Edge cases are handled
- [ ] Error handling is appropriate
- [ ] Code is readable and maintainable
- [ ] No performance issues
- [ ] Security considerations addressed

#### Testing Review
- [ ] Tests cover the changes
- [ ] Tests are meaningful
- [ ] No flaky tests
- [ ] Edge cases tested

#### Documentation Review
- [ ] PR description matches changes
- [ ] Comments explain "why" not "what"
- [ ] Breaking changes documented
- [ ] Migration guide provided (if needed)

#### Approval Criteria
```
✅ Approve: Code is good, minor nits only
💬 Comment: Suggestions but not blockers
🔄 Request Changes: Issues must be fixed before merge
```

---

## Common Mistakes

### 1. Vague PR Titles
```
❌ "Fix bug"
❌ "Updates"
❌ "WIP"
❌ "Changes from code review"

✅ "fix(auth): prevent duplicate login requests"
✅ "feat(cart): add coupon code support"
```

### 2. Missing Context
```
❌ "Changed the function"
Why? What was wrong? What's the impact?

✅ "Refactored parseQueryParams to handle nested objects

Previously failed when query params contained dots (e.g., user.name).
Now correctly parses nested structures using qs library.

Fixes ENG-456"
```

### 3. Too Large
```
❌ 2,000 lines changed across 50 files
❌ "Implement entire authentication system"

✅ Split into:
  - PR #1: Add database schema for auth (150 LOC)
  - PR #2: Implement JWT utilities (100 LOC)
  - PR #3: Create login endpoint (200 LOC)
  - PR #4: Add login UI (250 LOC)
```

### 4. Mixed Concerns
```
❌ Single PR with:
  - Feature implementation
  - Dependency updates
  - Refactoring
  - Bug fixes
  - Formatting changes

✅ Separate PRs:
  - PR #1: feat(feature)
  - PR #2: chore(deps)
  - PR #3: refactor(component)
```

### 5. No Screenshots for UI Changes
```
❌ "Updated the header design"
(No screenshots)

✅ "Updated the header design"
[Desktop screenshot]
[Mobile screenshot]
[Before/After comparison]
```

### 6. Incomplete Testing Notes
```
❌ "Tested locally"
How? What scenarios? What browsers?

✅ "Testing completed:
- Unit tests: All 47 tests pass
- Manual testing: Tested login flow on Chrome, Firefox, Safari
- Edge cases: Tested expired tokens, invalid credentials, network errors
- Mobile: Verified on iOS Safari and Android Chrome"
```

### 7. Leaving Debug Code
```
❌ console.log('user data:', user);
❌ debugger;
❌ // TODO: fix this later
❌ import { test } from './test-utils'; (unused)

✅ Clean code without debugging artifacts
```

### 8. No Changeset (for User-Facing Changes)
```
❌ New feature shipped without changelog entry

✅ .changeset/new-feature.md:
---
"@myapp/web": minor
---

Add OAuth2 login support with Auth0 integration
```

---

## Summary

### Quick Reference

#### PR Title Formula
```
{type}({scope}): {clear, concise description}
```

#### Ideal PR Characteristics
- **Size**: < 300 LOC, < 15 files
- **Focus**: Single concern, related changes only
- **Documentation**: Clear description, test plan, screenshots (if UI)
- **Quality**: Self-reviewed, tested, no debugging code
- **Timeline**: Ready to merge, not WIP

#### Review Mindset
**As Author**:
- Make reviewer's job easy
- Provide context and reasoning
- Test thoroughly before requesting review
- Respond promptly to feedback

**As Reviewer**:
- Be constructive and specific
- Focus on correctness and maintainability
- Ask questions when unclear
- Acknowledge good practices

#### Red Flags
- 🚩 No description or "WIP" title
- 🚩 Over 500 LOC changed
- 🚩 Mixed concerns (feature + refactor + deps)
- 🚩 No tests or only changing tests
- 🚩 "Trust me, it works"
- 🚩 Console.log/debugger statements
- 🚩 TypeScript errors ignored
- 🚩 No screenshots for UI changes

Use this skill to maintain high PR quality standards and streamline code review processes.

© bobmatnyc · MIT · bobmatnyc/claude-mpm-skills

Похожие скиллы

Все скиллы по теме «Код-ревью и рефакторинг» →
improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. 1 163 035установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. 1 141 062установок triage Matt Pocock Скилл проводит issue и внешние PR через роли триажа, проверку и подготовку брифа для агента. Подойдёт мейнтейнеру, который разбирает очередь задач. 990 453установок codebase-design Matt Pocock Скилл помогает проектировать модули с небольшим интерфейсом и скрытой внутри сложностью. Подходит для рефакторинга, тестируемости и поиска чистого seam. 850 344установок code-review Matt Pocock Проверяет изменения от выбранной точки по стандартам репозитория и требованиям задачи. Нужен для ревью ветки, PR или незавершённой работы. 789 521установок implement Matt Pocock Выполняет задачу по спецификации или тикетам, ведёт работу через тесты и завершает её ревью с коммитом. Подходит для задач, где нужен дисциплинированный цикл разработки. 774 700установок

Из того же набора73

vercel-networking-domains Скилл для настройки доменов, редиректов, rewrites, заголовков и edge-кеша на Vercel. Пригодится, когда правишь поведение трафика, а не код приложения. CX Codex +1 344установок svelte Скилл помогает писать интерфейсы на Svelte 5 и приложения на SvelteKit. Пригодится для реактивного состояния, компонентов и серверного или статического рендеринга. CX Codex +1 343установок env-manager Проверяет .env, ищет секреты в клиентских переменных и сравнивает файл с .env.example. Пригодится перед деплоем и при онбординге. CX Codex +1 340установок phoenix-api-channels Скилл для Claude, который ведёт агента по Phoenix: JSON-контроллеры, контексты Ecto, Channels и Presence на BEAM. CX Codex +1 339установок ecto-patterns Скилл подсказывает агенту, как писать схемы, changesets, миграции и транзакции в Ecto для Phoenix-приложений на Elixir. CX Codex +1 336установок media-transcoding Скилл для пакетной перекодировки видео по готовым пресетам FFmpeg: веб, мобильные, архив. Пригодится, когда надо привести библиотеку роликов к одному формату. CX Codex +1 335установок phoenix-ops Скилл для подготовки Phoenix-приложения к продакшену: релизы, runtime-конфиг, кластеризация, телеметрия и защита эндпоинтов. CX Codex +1 331установок pre-merge Скилл-чеклист, который прогоняет типы, линтер и тесты до коммита, до PR и до мержа в main. Пригодится, когда не хочется ловить поломки уже в ревью. CX Codex +1 330установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой