en un clic
review-kedro-pr
// Review a Kedro PR for checklist compliance, architecture, correctness, and clarity. Optionally post findings as a GitHub PR comment. Use when the user asks to review a PR, review this PR, or do a PR review.
// Review a Kedro PR for checklist compliance, architecture, correctness, and clarity. Optionally post findings as a GitHub PR comment. Use when the user asks to review a PR, review this PR, or do a PR review.
| name | review-kedro-pr |
| description | Review a Kedro PR for checklist compliance, architecture, correctness, and clarity. Optionally post findings as a GitHub PR comment. Use when the user asks to review a PR, review this PR, or do a PR review. |
Review a Kedro pull request. Start with general review guidelines (any project), then apply Kedro-specific checks. Output findings to chat by default, or post to GitHub when asked.
Detect the PR from the current branch or accept a PR URL/number from the user:
gh pr view --json number,title,body,baseRefName,headRefName
If the user provides a PR URL or number, use that instead.
gh pr diff <number>
gh pr view <number> --comments
gh api repos/{owner}/{repo}/pulls/{number}/comments
Read existing review comments and discussion. Don't repeat what's already been said — skip issues that are already covered by existing comments. If you agree with an existing comment, you can reference it. If you disagree, explain why.
Work through the general review guidelines first, then the Kedro-specific review areas. Focus only on changes introduced by this PR. Only flag issues not already raised in existing comments.
Before delivering, go through every finding one by one and check:
gh pr diff includes cherry-picked or rebased-in commits from other branches. Cross-check with gh pr view <number> --json commits --jq '.commits[].messageHeadline' — if a commit clearly belongs to a different PR (e.g. references a different #NNNN), drop findings on those changes.Drop anything you're not confident about. Fewer accurate findings are better than many noisy ones.
Format findings using the "Output format" section at the end of this file. Two modes:
These apply to any project. Work through them in order.
Args:, Returns:, Raises:) to avoid rendering issues in the API docs.Check the PR against the Kedro PR template requirements.
Any change to code under kedro/ must have a corresponding bullet in RELEASE.md under # Upcoming Release, in the correct H2 section:
## Major features and improvements — new features, significant enhancements## Bug fixes and other changes — bug fixes, minor changes, dependency updates## Documentation changes — docs-only changes## Community contributions — added by maintainers for external contributorsFormat: * Description of the change.
If the PR modifies kedro/ files but RELEASE.md is not in the diff, flag as Critical.
If the PR changes public API behavior or adds new features, check whether the Kedro project docs (docs/) are updated. Docs use MkDocs with standard markdown — check for correct formatting to avoid rendering issues.
RELEASE.md.If the change affects pipeline structure, metadata, catalog behavior, or dataset output, flag for Viz team coordination.
Check that the PR uses Kedro abstractions correctly.
AbstractDataset and implement load, save, _describe. Versioned datasets subclass AbstractVersionedDataset.AbstractRunner and implement _run and _get_executor.@hook_impl marker from kedro.framework.hooks.AbstractConfigLoader.For full API signatures and the complete list of base classes, read reference.md section "Kedro public API surface".
Non-obvious patterns: Some files use complex patterns on purpose (e.g. __getattr__, __init_subclass__ wrapping). If the PR touches kedro/io/core.py, kedro/framework/hooks/manager.py, or kedro/io/shared_memory_dataset.py, read reference.md section "Non-obvious patterns" before flagging anything — those patterns are intentional.
Do NOT flag:
kedro-security-review skill.kedro-babysit skill, which runs and fixes them automatically:
This skill is about reviewing code, not running checks.
Each finding gets an inline comment on the specific line, plus there's a summary of all findings. Delivery depends on the mode.
Present all findings as chat messages. For each finding, include:
After all findings, output the summary using the template below.
Write a JSON file with the full review payload and post it via the script:
{
"event": "COMMENT",
"body": "## Kedro PR Review\n...(summary)...",
"comments": [
{ "path": "file.py", "line": 42, "side": "RIGHT", "body": "**Critical:** ..." },
{ "path": "other.py", "line": 15, "side": "RIGHT", "body": "**Suggestion:** ..." }
]
}
Then post:
bash .agents/skills/review-kedro-pr/scripts/post_review.sh <review_json_file>
This creates one review with the summary as the main message and inline comments on specific lines. Delete the JSON file after posting.
Used in both modes:
## Kedro PR Review
> Generated with `review-kedro-pr` skill.
### Overview
- **Critical:** <count> | **Suggestions:** <count>
### Critical (must fix before merge)
- [ ] `file/path.py:L42` — brief description
### Suggestions (consider improving)
- [ ] `file/path.py:L15` — brief description
### Notes
- General review: <summary or "no issues">
- PR checklist: <summary or "no issues">
- API usage: <summary or "no issues">