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

mcore-split-pr — скилл для Claude Code: разделение PR

Скилл анализирует pull request и предлагает разбить его на несколько так, чтобы в каждом участвовало меньше групп CODEOWNERS. Пригодится, когда большой PR требует ревью от множества команд.

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

Что делает mcore-split-pr

Скилл сопоставляет изменённые файлы с группами из .github/CODEOWNERS, затем группирует файлы и предлагает план разделения. В нём перечисляются состав каждого PR, необходимые ревьюеры и зависимости между PR. Тесты остаются вместе с кодом, который они проверяют; каждый результат должен быть готов к отдельному слиянию.

Скилл сначала ждёт вашего одобрения. После него он создаёт ветки от подходящей базы, переносит изменения через git diff и git apply, отправляет их в ваш fork и открывает черновики PR. В upstream он не отправляет изменения. Для анализа использует GitHub CLI и репозиторий NVIDIA/Megatron-LM, поэтому доступ к нему и gh нужны для этого рабочего процесса.

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

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

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

  • Раздели PR 123 так, чтобы в каждом было как можно меньше групп CODEOWNERS.
  • Проанализируй PR по адресу <PR URL> и предложи план разделения.
  • Разбей большой PR на отдельные черновики, сохранив тесты рядом с проверяемым кодом.

Как установить mcore-split-pr

1Через Skills CLI (Vercel)

npx skills add NVIDIA/skills --skill mcore-split-pr -a claude-code

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

~/.claude/skills/mcore-split-pr/SKILL.md

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

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

Вопросы о mcore-split-pr

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

Выполните npx skills add NVIDIA/skills --skill mcore-split-pr -a claude-code. Файл скилла появится по пути ~/.claude/skills/mcore-split-pr/SKILL.md.

Что делает mcore-split-pr?

Он сопоставляет файлы PR с группами CODEOWNERS и предлагает разделение на несколько PR с меньшим числом групп ревьюеров. После одобрения создаёт черновики в вашем fork.

Нужен ли доступ к GitHub для работы скилла?

Для анализа скилл использует GitHub CLI, чтобы получить сведения о PR и его diff в NVIDIA/Megatron-LM. При создании новых PR он отправляет ветки в ваш fork, а не в upstream.

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

SKILL.md · Apache-2.0
---
name: mcore-split-pr
description: Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.
license: Apache-2.0
when_to_use: User asks to split a PR, reduce reviewer groups, or break up a large PR; 'too many CODEOWNERS', 'split this PR', 'break up PR', 'reduce reviewers needed'.
user_invocable: true
argument: "PR URL or number"
metadata:
  author: Philip Petrakian <[email protected]>
---

# Split PR by CODEOWNERS Groups

Split a large pull request into multiple smaller PRs, where each PR touches
the fewest possible CODEOWNERS reviewer groups. The goal is to reduce review
burden: a PR that only touches `megatron/core/` needs only the core reviewers,
while a PR that also touches `examples/`, `tools/`, and `megatron/training/`
pulls in many additional groups.

## Answer-First Constraints

For split-planning questions, lead with these constraints before the full
workflow:

- Minimize CODEOWNERS reviewer groups per PR, but each resulting PR must still
  be independently mergeable and reviewable.
- Tests travel with the production code they validate; do not split tests into a
  separate PR just to reduce reviewer groups.
- If PR B depends on symbols renamed in PR A, call out the dependency and put
  backward-compatible aliases, re-exports, or shims in PR A when needed.
- Wait for user approval before execution.
- Execution creates draft PRs from the right base, applies file-scoped diffs
  with `git diff upstream/main..<source-branch> -- <paths> | git apply`, pushes
  to the user's fork, and never pushes directly to upstream.

## Workflow

### 1. Analyze the PR

1. Fetch the PR details: `gh pr view <number> --repo NVIDIA/Megatron-LM --json title,body,headRefName,author` and `gh pr diff <number> --repo NVIDIA/Megatron-LM --stat`. Also determine the current GitHub user with `gh api user --jq .login`.
2. Parse `.github/CODEOWNERS` to build a mapping from file path patterns to owner groups.
3. For each changed file in the PR, determine which CODEOWNERS groups would be required to review it.
4. Build a summary table grouped by CODEOWNERS group, showing which files pull in which groups.
5. Count the total number of distinct reviewer groups the PR currently requires.

### 2. Propose a split that minimizes reviewer groups per PR

The primary optimization goal: **minimize the number of CODEOWNERS reviewer groups required for each resulting PR**.

Strategy:
1. Cluster files by their CODEOWNERS groups. Files owned by the same set of groups naturally belong together.
2. Identify the largest cluster — this becomes the first (and usually largest) PR.
3. Remaining files form one or more additional PRs, each ideally requiring only one or two reviewer groups.
4. If a split creates a dependency (e.g., PR B uses symbols renamed in PR A), the dependent PR must be merged after the first. Note this explicitly.
5. Each PR must be independently mergeable to main — no broken imports, no missing symbols. Backward-compatible aliases and re-export stubs in the first PR can make this possible.

Present the proposed split as a table:
- PR name/description
- Files included
- CODEOWNERS groups required
- Dependencies on other PRs (if any)

Wait for user approval before proceeding.

### 3. Execute the split (after user approval)

For each new PR:
1. Create a new branch from the appropriate base (`main`, or a dependency PR's branch).
2. Extract the relevant changes: `git diff upstream/main..<source-branch> -- <file paths> | git apply`.
3. Stage, commit with a clear message, and push to the user's fork.
4. Create the PR as a **draft** (per repo contributing guidelines).
5. If the original PR needs to be narrowed in scope, confirm with the user before force-pushing.
6. Report all PR URLs when done.

## Important guidelines

- Always create PRs as **drafts** and push to the user's fork, never directly to upstream.
- Backward-compatible changes (aliases, re-exports, deprecation shims) should go in the first PR so subsequent PRs can depend on them.
- Test files should go with the production code they test, not in a separate PR.
- Prefer a single clean commit per split PR over replaying the original commit history.
- If a file is hard to categorize (e.g., it touches two groups), ask the user which PR it should go in.
- If the current GitHub user is not the author of the original PR, each new PR's description must explicitly credit the original author (e.g., "Original changes by @<author> in #<number>").

© Philip Petrakian · Apache-2.0 · NVIDIA/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установок

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

holoscan-install-conda Проверяет доступность пакетов Conda для Holoscan SDK 5.x. Скилл предупреждает об отсутствии сборки для 5.0 и предлагает проверенные альтернативы. CX Codex +1 1 800установок holoscan-install-container Проверяет хост и ставит контейнер разработки Holoscan SDK 5.x с CUDA 13. Нужен перед запуском SDK в Docker с GPU. CX Codex +1 1 800установок holoscan-setup Проверяет хост и помогает выбрать способ установки Holoscan SDK 5.x: контейнер, Debian-пакеты, wheels или сборка из исходников. CX Codex +1 1 800установок tilegym-adding-cutile-kernel Пошагово проводит агента через добавление нового GPU-оператора на cuTile в библиотеку TileGym. Пригодится при расширении набора ядер и их интеграции в проект. CX Codex +1 1 800установок mcore-testing Скилл объясняет тестовую систему Megatron-LM: раскладку тестов, рецепты YAML, golden values и запуск unit-тестов локально. CX Codex +1 1 800установок mcore-create-issue Скилл исследует упавшие прогоны GitHub Actions в NVIDIA/Megatron-LM, находит причину сбоя и оформляет готовый баг-репорт. CX Codex +1 1 800установок mcore-run-on-slurm Скилл помогает подготовить запуск распределённого обучения Megatron-LM на SLURM-кластере. Пригодится для настройки sbatch, мног узлового запуска и разбора сбоев по логам рангов. CX Codex +1 1 800установок nemo-rl-brev-etiquette Скилл задаёт агенту правила хранения файлов на инстансе Brev: код остаётся в репозитории, тяжёлые артефакты уезжают на /ephemeral. CX Codex +1 1 800установок

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

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