with one click
review
// Routed PR review orchestrator. Load for `/review` command or any PR review task.
// Routed PR review orchestrator. Load for `/review` command or any PR review task.
Generate a structured PR description from the current diff using `docs/design/CONCERNS.md` routing. Drafts canonical sections (Summary, What changed, Why, Test plan, Risk and reversibility) tailored to the change type (feat / fix / refactor / chore / docs). Outputs the draft for human review; can apply via `gh pr edit` after explicit confirmation. Pair with `/review` — this skill drafts, `/review` reviews.
Security audit — frontend (F1-F6 rules from `.cursor/rules/frontend-security.mdc`), Go backend (URL allowlists, token handling, hardcoded secrets, unbounded reads), MCP HTTP transport (size / wallclock / concurrency caps, Zod-validated tool inputs), and dependency audit (`npm audit` high+critical, Go module advisories). Reports findings with concrete remediation per rule. Never edits source — the user applies fixes.
Per-PR documentation-drift prevention. When a PR adds new code subsystems, scripts, skills, docs, plugin routes, feature flags, or changes architecture relationships, this skill produces the AGENTS.md, CLAUDE.md, and .cursor/rules/ updates needed in the same PR so agent guidance never falls behind the code. Use this on /review or directly before merge.
Orchestrate the pre-release flow for grafana-pathfinder-app — bump the version in package.json, draft a CHANGELOG entry (via the `changelog` skill), run `npm run check` and `npm run build`, then print the exact `git tag` command for the user to execute. Never creates or pushes the tag itself; tagging is a one-way door the user owns.
Draft a CHANGELOG.md entry from merged PRs since the last release tag. Categorizes by conventional-commit prefix (Added / Fixed / Chore / Security / Changed / Removed), rewrites PR titles into sentence-case narrative bullets with PR refs, and commits to the current branch without pushing. Use when preparing a release, or call this skill from `/release-prep`.
Detect translation gaps across the 21 locales under `src/locales/`. For keys present in `en-US` but missing from another locale, add the key with an empty string value (matching the runtime fallback to the en-US default). Emit a gap report (filled / empty / stale counts per locale + the list of newly stubbed keys). Never invents translations; translators fill the empty stubs later.
| name | review |
| description | Routed PR review orchestrator. Load for `/review` command or any PR review task. |
Conduct a Principal Engineer level review in six phases.
Always read:
docs/design/CONCERNS.mdDo not maintain a separate hardcoded subsystem concern list if the concern registry already defines it.
Before routing specific concerns, classify the overall shape of the PR using the classes defined in docs/design/CONCERNS.md.
At minimum, consider:
product-runtimecontracts-and-schemasinfra-build-citests-onlydocs-onlymixedClassification exists to improve routing efficiency, not to reduce safety. If uncertain, classify as mixed.
Route using trigger_paths and trigger_keywords from the routing table in docs/design/CONCERNS.md. Apply the routing defaults defined there. Never route on paths alone.
Produce: activated_concerns, activation_reason, risk_signals, likely_one_way_doors, reviewers_to_run, coverage_confidence.
Always consider these concerns:
securitycorrectness-and-reliabilitytesting-and-verificationreversibility-and-one-way-doorcross-cutting-architectureDepending on change classification, some always-on concerns may be satisfied by the synthesizer instead of a separate early reviewer, but they still must be considered.
Never suppress:
reversibility-and-one-way-doorDo not suppress security for workflow, publish, release, token, permission, URL, or trust-boundary changes.
Do not suppress testing-and-verification for executable changes, including CI and build system changes.
Run additional reviewers when activated by the routing table in docs/design/CONCERNS.md.
Prefer a small reviewer set over speculative breadth.
Each reviewer should receive only:
docs/design/CONCERNS.mdDo not give each reviewer the full repository or unrelated subsystem docs.
Prefer changed functions, nearby symbols, and directly related tests over whole-file or whole-directory reads.
When launching a subsystem reviewer, instruct it to follow this exact reasoning order:
purpose and review_questions.reviewed_clean or not_applicable.Additional instructions for subsystem reviewers:
Every reviewer emits the schema defined in docs/design/PR_REVIEW.md (Reviewer output schema), including the severity, confidence, and reversibility values.
After concern-specific reviewers finish, run one final cross-cutting reviewer that:
This reviewer is required even if all subsystem reviewers are clean.
The synthesizer must:
docs/design/CONCERNS.md when the same unowned area appears important enough to deserve subsystem-aware reviewReport findings ordered by severity, then confidence.
Each finding should include:
If all activated concerns return no_findings, say so explicitly and mention any residual confidence gaps or testing gaps.
If coverage_confidence is not high, include a short coverage note such as:
Coverage note: this PR appears to center on an area that is only lightly modeled by
docs/design/CONCERNS.md. I reviewed it with general concerns and adjacent subsystem logic, but review confidence is reduced there. If this area is important long-term, consider refining or adding a concern entry.
After synthesis, invoke .cursor/skills/prevent-doc-drift/SKILL.md in review mode to detect whether this PR introduces new subsystems, scripts, skills, docs, plugin routes, feature flags, or architecture changes that require updates to agent guidance (AGENTS.md, CLAUDE.md, .cursor/rules/).
If the skill emits a "Doc-drift updates recommended" section, include it verbatim in the review output. The PR author can apply the diffs themselves or invoke prevent-doc-drift in apply mode to commit them on the same branch.
The doc-drift check is non-blocking — guidance drift does not block merge, but unfixed drift accumulates as tech debt future reviewers and agents will pay for.
The unified detection table (R1-R21, F1-F6, QC1-QC7), Go backend table (G1-G7), comment prefixes, and disposition matrix all live in docs/design/PR_REVIEW.md. Apply those checks during subsystem review under the correctness-and-reliability, security, and go-backend concerns, and use the prefix and disposition tables when reporting.