Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions .agents/skills/review-rapidsmpf/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
---
name: review-rapidsmpf
description: Use this skill to review GitHub pull requests for rapidsmpf
---

Use this skill when the user invokes `/review-rapidsmpf` with:

- a rapidsmpf GitHub PR link
- a currently checked-out rapidsmpf PR
- specified rapidsmpf code changes or a diff

rapidsmpf GitHub repository is located at: <https://github.com/rapidsai/rapidsmpf>

# Review RapidsMPF Pull Request

1. **Fetch PR metadata and diff**

```bash
gh pr view <PR_NUMBER> --repo rapidsai/rapidsmpf --json title,body,files,additions,deletions,baseRefName,headRefName
gh pr diff <PR_NUMBER> --repo rapidsai/rapidsmpf
```

Hint: Check if `GH_TOKEN` (or GitHub CLI auth) is already configured
in the environment (e.g. via your secret manager) so `gh` can
authenticate and bypass rate limits; do not run `gh auth token` from
within the agent. If `gh` auth is unavailable, fall back to GitHub's
raw diff/patch URLs, `git fetch` of the PR ref, the unauthenticated
GitHub REST API with `curl`, or any other available method.

2. **Fetch review comments already posted** for context on what's
already been suggested and need not be repeated.

3. **Read the review guidelines** — these are the authoritative
checklists for rapidsmpf. All rules in these files apply during
review:

- **C++/CUDA**: `cpp/REVIEW_GUIDELINES.md`
- **Python / Cython**: `python/REVIEW_GUIDELINES.md`

4. **Analyze the changes** against the checklists, reading relevant
source files for context. Public headers under
`cpp/include/rapidsmpf/` (especially `error.hpp`,
`memory/cuda_memcpy_async.hpp`, `progress_thread.hpp`,
`memory/buffer.hpp`, `memory/buffer_resource.hpp`,
`communicator/communicator.hpp`, `shuffler/shuffler.hpp`,
`coll/*.hpp`) are the source of truth for APIs and ownership
contracts.

5. **Produce a structured review** using the output format at the
bottom.

6. **Dump the structured review** to
`.agents/reviews/<PR_NUMBER>/review.md`.

---

## Reviewer Discipline

The detailed rules live in `cpp/REVIEW_GUIDELINES.md` and
`python/REVIEW_GUIDELINES.md`. A few meta-rules that apply to *any*
review of this repo:

- **No bypass of CI**: never suggest `--no-verify`, disabling hooks,
or skipping checks.
- **No drive-by refactors**: the diff should change only what's
necessary; flag unrelated reformatting or scope creep.
- **No API invention**: public APIs should align with existing
RapidsMPF patterns and documented contracts — don't propose new
surface area that doesn't match prevailing conventions.

## Reference Material

| Topic | Path |
|-------|------|
| C++ review guidelines | `cpp/REVIEW_GUIDELINES.md` |
| Python / Cython review guidelines | `python/REVIEW_GUIDELINES.md` |
| C++ public headers (source of truth for APIs) | `cpp/include/rapidsmpf/` |
| Python package | `python/rapidsmpf/` |
| Pre-commit config (lint / format / hooks) | `.pre-commit-config.yaml` |
| CI scripts | `ci/` |
| Local CI reproduction | `.agents/skills/reproduce-ci-locally/SKILL.md` |
| Contributing guide | `CONTRIBUTING.md` |

Online docs:

- Documentation: <https://docs.rapids.ai/api/rapidsmpf/nightly/>
- C++ API: <https://docs.rapids.ai/api/librapidsmpf/nightly/>
- GitHub Issues: <https://github.com/rapidsai/rapidsmpf/issues>

---

## Output Format

Structure your review as follows:

```markdown
## PR Review: <PR title>

**PR:** <link>
**Summary:** <1-2 sentence summary of what the PR does>

### Findings

#### Critical
- **[file:line]** Description of issue that must be fixed before merge.

#### Suggestions
- **[file:line]** Description of improvement to consider.

#### Nits
- **[file:line]** Minor style or formatting issue. Keep these minimal,
don't suggest adding comments around every line of code or obvious
logic.

#### Highlights
- Highlight well-written code, good test coverage, or clever
solutions.

### Verdict
One of: **Approve**, **Request Changes**, or **Comment**
With a brief justification.
```

If there are no findings in a category, omit that category.
66 changes: 66 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

reviews:
profile: chill
high_level_summary: true
high_level_summary_in_walkthrough: true
poem: false
auto_review:
enabled: true
drafts: false
base_branches:
- "^main$"
- "^release/.*"
- "^hotfix/.*"
ignore_usernames: ["rapids-bot", "GPUtester", "nv-automation-bot", "copy-pr-bot"]
tools:
markdownlint:
enabled: true
shellcheck:
enabled: true
gitleaks:
enabled: true
sequence_diagrams: false
collapse_walkthrough: true

# Reduce noise from status messages
request_changes_workflow: false
review_status: false

# Path-specific review instructions. Each entry just routes a path
# to the authoritative review checklist; the checklists themselves
# (and the cross-cutting orchestration SKILL) are loaded as
# knowledge_base below.
path_instructions:
- path: "cpp/**/*"
instructions: |
Follow cpp/REVIEW_GUIDELINES.md.
- path: "python/**/*"
instructions: |
Follow python/REVIEW_GUIDELINES.md.
- path: "docs/**/*"
instructions: |
For documentation changes, focus on accuracy (code examples
actually compile / run), completeness (API changes — params,
return values, errors — documented), clarity (no confusing
explanations or missing prerequisites), and consistency
(versions, types, terminology match code). Public-API changes
without a docs update are HIGH priority.
- path: "ci/**/*"
instructions: |
For CI / build scripts: verify conda environment handling,
check that tests requiring a GPU gate on GPU availability,
ensure errors are checked with meaningful messages, and
prefer `set -euo pipefail` (or equivalent) at the top of new
shell scripts.

knowledge_base:
opt_out: false
code_guidelines:
filePatterns:
- ".agents/skills/review-rapidsmpf/SKILL.md"
- "cpp/REVIEW_GUIDELINES.md"
- "python/REVIEW_GUIDELINES.md"
- "CONTRIBUTING.md"
- "cpp/include/rapidsmpf/error.hpp"
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ CMakeLists.txt @rapidsai/rapidsmpf-cmake-codeowners
/.github/ @rapidsai/ci-codeowners
/ci/ @rapidsai/ci-codeowners
/.shellcheckrc @rapidsai/ci-codeowners
/.coderabbit.yaml @rapidsai/ci-codeowners

#packaging code owners
/.pre-commit-config.yaml @rapidsai/packaging-codeowners
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ jobs:
build_docs:
- '**'
- '!.clang-tidy'
- '!.coderabbit.yaml'
- '!.devcontainer/**'
- '!.github/CODEOWNERS'
- '!.github/copy-pr-bot.yaml'
Expand All @@ -61,6 +62,7 @@ jobs:
- '!.github/release.yml'
- '!.pre-commit-config.yaml'
- '!.shellcheckrc'
- '!.agents/**'
- '!ci/build_wheel*.sh'
- '!ci/check_style.sh'
- '!ci/release/update-version.sh'
Expand All @@ -69,9 +71,12 @@ jobs:
- '!ci/timeout_with_stack.py'
- '!ci/validate_topology_json.py'
- '!ci/validate_wheel.sh'
- '!cpp/REVIEW_GUIDELINES.md'
- '!python/REVIEW_GUIDELINES.md'
- '!valgrind.supp'
test_cpp:
- '**'
- '!.coderabbit.yaml'
- '!.devcontainer/**'
- '!.github/CODEOWNERS'
- '!.github/copy-pr-bot.yaml'
Expand All @@ -80,6 +85,7 @@ jobs:
- '!.github/release.yml'
- '!.pre-commit-config.yaml'
- '!.shellcheckrc'
- '!.agents/**'
- '!CONTRIBUTING.md'
- '!README.md'
- '!ci/build_docs.sh'
Expand All @@ -90,10 +96,12 @@ jobs:
- '!ci/test_python.sh'
- '!ci/test_wheel.sh'
- '!ci/validate_wheel.sh'
- '!cpp/REVIEW_GUIDELINES.md'
- '!docs/**'
- '!python/**'
test_python_conda:
- '**'
- '!.coderabbit.yaml'
- '!.devcontainer/**'
- '!.github/CODEOWNERS'
- '!.github/copy-pr-bot.yaml'
Expand All @@ -102,6 +110,7 @@ jobs:
- '!.github/release.yml'
- '!.pre-commit-config.yaml'
- '!.shellcheckrc'
- '!.agents/**'
- '!CONTRIBUTING.md'
- '!README.md'
- '!ci/build_docs.sh'
Expand All @@ -113,10 +122,13 @@ jobs:
- '!ci/test_wheel.sh'
- '!ci/validate_wheel.sh'
- '!cpp/.clang-format'
- '!cpp/REVIEW_GUIDELINES.md'
- '!cpp/doxygen/**'
- '!docs/**'
- '!python/REVIEW_GUIDELINES.md'
test_python_wheels:
- '**'
- '!.coderabbit.yaml'
- '!.devcontainer/**'
- '!.github/CODEOWNERS'
- '!.github/copy-pr-bot.yaml'
Expand All @@ -125,6 +137,7 @@ jobs:
- '!.github/release.yml'
- '!.pre-commit-config.yaml'
- '!.shellcheckrc'
- '!.agents/**'
- '!CONTRIBUTING.md'
- '!README.md'
- '!ci/build_cpp.sh'
Expand All @@ -138,8 +151,10 @@ jobs:
- '!ci/test_python.sh'
- '!conda/**'
- '!cpp/.clang-format'
- '!cpp/REVIEW_GUIDELINES.md'
- '!cpp/doxygen/**'
- '!docs/**''
- '!python/REVIEW_GUIDELINES.md'
checks:
permissions:
actions: read
Expand Down
Loading
Loading