CR-Node — Diff-Scoped Node.js Review
Review scope: PR diff + directly affected files only.
Follow the review criteria defined in rules/node.md.
Step 1 — Detect project context
Read package.json and check for:
expressdependency → enable Express-specific middleware checksfastify→ enable Fastify plugin checkskoa→ enable Koa middleware checkstypescriptortsconfig.json→ skip checks covered by TS compilerprisma,@prisma/client→ enable Prisma-specific query checkssequelize→ enable Sequelize raw query checkstypeorm→ enable TypeORM query builder checksmongoose→ enable Mongoose-specific checks
Step 2 — Get PR context
Run these commands sequentially (no nested substitution):
gh pr view --json number,title,body,baseRefName,headRefName,url— store thebaseRefNamevaluegit diff <baseRefName>...HEAD— using the baseRefName from step 1git diff --name-only <baseRefName>...HEAD— changed files list
Step 3 — Expand affected scope
For each changed file, identify direct consumers (files that import/require from it) to catch breakage from interface changes. Only expand one level deep — do not crawl the entire dependency graph.
Step 4 — Run review passes
Apply all 7 review passes and filtering rules from the criteria file against the diff and affected files.
Step 5 — Output findings
Collect all findings with this format per issue:
### [SEVERITY] Pass N — file:line
**Issue:** one-line description
**Why:** reason you're confident this is a real issue
**Fix:** suggested code change
If no issues found: "✅ No issues found — all 7 review passes came back clean."
Show the user the findings.
Step 6 — Autofix
Follow the autofix workflow defined in rules/autofix.md.
Local mode: present the three options (create findings file as
cr-node-findings.md, fix step by step, fix all)CI mode: post findings as PR comments with
/fixand/fix-allreply instructionsDo not flag issues that are clearly intentional based on git blame context.
Run everything autonomously without asking to confirm each step (except the autofix choice in local mode).
Source: enpitech/ai-tools — distributed by TomeVault.