Best for
- Reviewing a PR (own or someone else's)
- Self-reviewing local changes before creating a PR
- Responding to review feedback on your PR
event4u-app/agent-config/src/skills/code-review/SKILL.md
Use when the user says "review this", "check my code", or wants feedback on changes. Reviews for correctness, quality, security, and coding standards.
Decision brief
Reviews for correctness, quality, security, and coding standards.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/code-review"Inspect the Agent Skill "code-review" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/code-review/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Understand the goal — what is this change trying to achieve? 2. Detect the change-type + depth — route to the right checklist and pick the review depth (below). 3. Architecture — does the approach make sense? Right layer? Right pattern? 4. Correctness — does it actually work?…
1. Understand the goal — what is this change trying to achieve? 2. Detect the change-type + depth — route to the right checklist and pick the review depth (below). 3. Architecture — does the approach make sense? Right layer? Right pattern? 4. Correctness — does it actually work?…
Pick depth from diff size, override upward on risk:
Re-review scoping — on a follow-up push, scope to the changed lines
gh api repos/{owner}/{repo}/pulls/comments/{commentid}/replies \ -f body="Fixed in latest commit."
Permission review
The documentation asks the agent to read local files, directories, or repositories.
the diff's file paths, then read the matching file:Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 97/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 7 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use this skill when:
Per-domain checklists live in checklists/, loaded on demand — a review
carries only the depth the change needs (progressive disclosure; a dependency
bump does not pay for the backend security table). Detect the change-type from
the diff's file paths, then read the matching file:
| Change-type | File-pattern signal (any match) | Checklist |
|---|---|---|
| dependency (expedited) | ONLY composer.json/*.lock, package.json/lockfiles, pyproject.toml, go.mod/go.sum, Cargo.toml/*.lock | checklists/dependency.md |
| migration / database | **/migrations/**, **/*migration*, schema files, query-heavy data-access code | checklists/database.md |
| frontend / UI | *.tsx, *.jsx, *.vue, *.blade.php, *.css, components/**, resources/views/** | checklists/frontend.md |
| infra / IaC / CI | *.tf, Dockerfile*, k8s/**, *.yaml under .github/workflows/, Pulumi/Ansible | checklists/infra.md |
| test-only | ONLY tests/**, *.test.*, *.spec.*, *Test.php | checklists/test-only.md |
| docs-only | ONLY *.md, docs/** | checklists/docs.md |
| backend / default | anything else (server-side logic) | checklists/backend.md |
A diff spanning several types loads each matching checklist; a mixed diff is never downgraded to the expedited path (a lockfile bump plus code is backend
checklists/*.md file MUST be reachable from a row above.Framework-specific conventions defer to the carve-outs: PHP / Laravel →
laravel, laravel-validation,
eloquent, pest-testing,
blade-ui, php-coder;
Symfony → symfony-workflow; Next.js / TS →
nextjs-patterns, react-shadcn-ui.
❓ until satisfiedSome changes are unverifiable from source; when a gate fires the verdict is
❓, not approval — ask for the missing evidence:
❓ (rendered result unverifiable from source).❓ (behaviour coverage unconfirmable).❓.Pick depth from diff size, override upward on risk:
| Diff / surface size | Depth | What it means |
|---|---|---|
| SMALL (single file / few lines) | DEEP | Read every line; trace each branch. |
| MEDIUM (a feature, several files) | FOCUSED | Deep on changed logic + its callers; skim the rest. |
| LARGE (sweeping / many files) | SURGICAL | Deep on the risk-bearing files; explicitly bound the rest as un-deep-reviewed. |
Risk triggers force HIGH depth regardless of diff size: auth / crypto,
external calls / SSRF, removal of a validation or authz check, money /
tenant-boundary code. blast-radius-analyzer
is one input to sizing; the depth policy + coverage-honesty line are this
skill's addition. Every review ends with a Coverage & confidence line
(deep-reviewed vs skimmed/bounded-out files + confidence) — silent partial
coverage reads as full coverage.
fix-pr-comments
reply rounds apply.parallelizable: files; council lenses), give each an independently
shuffled file order (deterministic seed per session, logged for replay) so
a fixed order does not correlate their blind spots. Single-reviewer → no shuffle.quality.local_auto_run: true: run the project's quality pipeline (see the stack carve-out for the exact commands — PHP: quality-tools) and tests via the project's runner (make test, npm test, pytest, go test ./..., or the project's wrapper script). Under the default (false / missing): skip both — remote CI on the PR is the gate.git diff origin/main..HEAD.Constraint: understand each comment fully before touching code, verify it against codebase reality, and implement one item at a time (test each). Restate anything ambiguous in your own words — or ask. Push back with technical reasoning when a suggestion is unsound for this codebase rather than complying reflexively.
If any item is unclear, STOP — do not implement anything yet. Items may be related; partial understanding leads to wrong implementation.
Internal team feedback (trusted colleagues):
External / Copilot / bot feedback (less context):
Push back when:
How: Use technical reasoning, not defensiveness. Reference working tests/code.
Constraint: clarify anything unclear before implementing, fix one item at a time (test each), and reply in each review thread — not as a top-level PR comment. Triage first (blocking → simple → complex) so blockers land first; gh pr view --comments lists the threads.
# Reply to a specific review comment thread
gh api repos/{owner}/{repo}/pulls/comments/{comment_id}/replies \
-f body="Fixed in latest commit."
After completing a review, run
judge-artifact-completeness
with rubric pr-review-score to verify evidence-fit, risk/blast-radius
coverage, and migration/rollback completeness. Invoke when the review is
high-risk or the user asks for a completeness check — not by default.
Validate, then emit these parts in order:
YES / NOT-SURE (❓, a metadata gate fired or coverage bounded) / NO, plus Tier-1 blocker/suggestion counts.Full template, governance-conflict scan (status-aware over docs/decisions/,
incl. draft ADRs; guarded git blame reviewer hint), and the security-class
deep-verify path → checklists/producing-the-review.md.
Tally-vs-reasoned boundary. Finding-level review uses reasoned validation (each finding stands on its own traced reason); option-level decisions use the council stance tally (
ai-council). Never cross-apply — no resolving a bug finding by counting votes, no resolving a design option by reasoned-validating one take. Mirrored inai-councilso the boundary is grep-checkable from both sides.
Group related findings; skip what the linter / type-checker already catches.
Before creating a PR or presenting code changes, run the adversarial-review skill.
Focus on the "Code changes / Refactoring" attack questions.
Alternatives
roomkit-live/roomkit
Review Python code for bugs, security issues, and style problems
affaan-m/ECC
Turn ambiguous or high-impact product and engineering changes into scoped, verifiable acceptance criteria before or alongside implementation. Use when a user asks to clarify a feature, define acceptance criteria, de-risk a security/data/migration/integration change, prepare implementation requirements for another agent, or make a complex request testable. Do not trigger for trivial edits, straightforward fixes, active debugging, code review, or implementation requests whose acceptance conditions
JasonColapietro/suede-creator-skills
Umbrella workflow for 67 public skills: Full Send, copy, design, code review, SEO, launch packaging, MCP QA, iOS and Android app shipping, and creator workflows. Loads the full public skill pack.
event4u-app/agent-config
Use when working with Git — branch naming, commit messages, PR creation, rebasing, or the code review process — even when the user says 'push this' or 'merge the branch' without naming Git.