pr-review
This skill records repository policy for Claude. Use repoctl as the authority for graph,
ownership, affected analysis, task routing, and final hand-off verification, but keep repoctl out of
the inner coding loop unless the graph or boundaries are changing.
When this fires
- The user asks for a PR review, impact summary, CI explanation, or merge readiness check.
- The diff touches multiple projects, manifests, proto contracts, generated code, IaC, deploy files,
templates, skills, or repo-wide CI.
- A CI matrix or affected-project list needs to be justified.
Review stance
Prioritize correctness, boundary regressions, missing tests, ownership gaps, and CI blind spots.
Summaries come after findings. Do not approve a risky diff just because the changed code is small.
Workflow
Validate the graph when routing inputs changed:
repoctl graph validate
A broken graph makes affected analysis untrustworthy, but graph validation is optional for
source-only PRs.
Summarize PR impact:
repoctl pr summary --base origin/main --head HEAD --format human
Use the actual PR base branch when it is not origin/main. Run this once unless graph or
task-routing inputs change during review.
Compute verification surface:
repoctl affected --base origin/main --head HEAD --tasks check,test,build --format human
Compare this with the checks that actually ran. Missing affected tasks are findings, not
footnotes. Do not repeat affected analysis to work around unrelated branch-wide changes; state
the widening and switch to explicit project-scoped verification.
Inspect code-size risk:
repoctl inspect size --scope changed --base origin/main --head HEAD --fail-on warning
Run this for Rust, TypeScript/TSX, or Python source changes. Use --scope affected when the PR
changes a shared project surface and --scope all when code-size policy, templates, skills, or
inspection logic changes. Oversized files, functions, or nested blocks are review findings unless
a matching inspection.code_size override explains the exception.
Inspect risky paths:
repo.yaml, .github/, templates/, .agents/skills/, .claude/skills/ affect the repo.
protos/ can break consumers even when source compiles.
generated/ or gen/ should usually be regenerated, not manually patched.
deploy/prod/, iac/stacks/prod/, and shared core-infra/ need owner review.
Review changed code in owner context:
Use repoctl explain <project-name> for each affected project before deciding whether the
change respects facades, clients, and editable areas.
Finding format
Lead with findings ordered by severity:
P1 path/to/file:123 - The change bypasses the framework facade and imports an internal crate.
Fix: move the shared API to the facade package or keep the dependency inside the owning framework.
If there are no findings, say so clearly and name residual risks or skipped gates.
Quality bar
- Every finding cites a file and line when possible.
- Every requested gate maps to an affected project or repo-wide surface.
- Code-size inspection is included for Rust, TypeScript/TSX, or Python source changes, and any
finding is either called out or tied to a configured override.
- Owner review is explicit for production IaC, proto breaking changes, and framework internals.
- Repoctl impact commands run once unless graph or task-routing inputs changed during review.
- Do not replace code review with repoctl output; repoctl scopes the review, it does not perform it.
Hand-off
Return findings first, then affected projects, risk flags, commands run, and any verification gap
that remains before merge.
1---2name: pr-review-23description: Summarize PR impact using repoctl affected data, risk flags, and graph diagnostics.4---56# pr-review78This skill records repository policy for Claude. Use repoctl as the authority for graph,9ownership, affected analysis, task routing, and final hand-off verification, but keep repoctl out of10the inner coding loop unless the graph or boundaries are changing.1112## When this fires1314- The user asks for a PR review, impact summary, CI explanation, or merge readiness check.15- The diff touches multiple projects, manifests, proto contracts, generated code, IaC, deploy files,16 templates, skills, or repo-wide CI.17- A CI matrix or affected-project list needs to be justified.1819## Review stance2021Prioritize correctness, boundary regressions, missing tests, ownership gaps, and CI blind spots.22Summaries come after findings. Do not approve a risky diff just because the changed code is small.2324## Workflow25261. **Validate the graph when routing inputs changed**:2728 ```bash29 repoctl graph validate30 ```3132 A broken graph makes affected analysis untrustworthy, but graph validation is optional for33 source-only PRs.34352. **Summarize PR impact**:3637 ```bash38 repoctl pr summary --base origin/main --head HEAD --format human39 ```4041 Use the actual PR base branch when it is not `origin/main`. Run this once unless graph or42 task-routing inputs change during review.43443. **Compute verification surface**:4546 ```bash47 repoctl affected --base origin/main --head HEAD --tasks check,test,build --format human48 ```4950 Compare this with the checks that actually ran. Missing affected tasks are findings, not51 footnotes. Do not repeat affected analysis to work around unrelated branch-wide changes; state52 the widening and switch to explicit project-scoped verification.53544. **Inspect code-size risk**:5556 ```bash57 repoctl inspect size --scope changed --base origin/main --head HEAD --fail-on warning58 ```5960 Run this for Rust, TypeScript/TSX, or Python source changes. Use `--scope affected` when the PR61 changes a shared project surface and `--scope all` when code-size policy, templates, skills, or62 inspection logic changes. Oversized files, functions, or nested blocks are review findings unless63 a matching `inspection.code_size` override explains the exception.64655. **Inspect risky paths**:6667 - `repo.yaml`, `.github/`, `templates/`, `.agents/skills/`, `.claude/skills/` affect the repo.68 - `protos/` can break consumers even when source compiles.69 - `generated/` or `gen/` should usually be regenerated, not manually patched.70 - `deploy/prod/`, `iac/stacks/prod/`, and shared `core-infra/` need owner review.71726. **Review changed code in owner context**:7374 Use `repoctl explain <project-name>` for each affected project before deciding whether the75 change respects facades, clients, and editable areas.7677## Finding format7879Lead with findings ordered by severity:8081```text82P1 path/to/file:123 - The change bypasses the framework facade and imports an internal crate.83Fix: move the shared API to the facade package or keep the dependency inside the owning framework.84```8586If there are no findings, say so clearly and name residual risks or skipped gates.8788## Quality bar8990- Every finding cites a file and line when possible.91- Every requested gate maps to an affected project or repo-wide surface.92- Code-size inspection is included for Rust, TypeScript/TSX, or Python source changes, and any93 finding is either called out or tied to a configured override.94- Owner review is explicit for production IaC, proto breaking changes, and framework internals.95- Repoctl impact commands run once unless graph or task-routing inputs changed during review.96- Do not replace code review with repoctl output; repoctl scopes the review, it does not perform it.9798## Hand-off99100Return findings first, then affected projects, risk flags, commands run, and any verification gap101that remains before merge.102