Reviewing Code Core
Use this skill when
- reviewing a PR, diff, branch, or local changes
- auditing a repository for shipped bugs or hidden implementation gaps
- validating that release notes, changelog bullets, docs, and comments match what the code actually ships
- detecting LLM-generated code smells, fake abstractions, placeholders, and unwired functionality
Review stance
Treat code as plausible until verified, not correct until disproven.
Treat docs, release notes, PR text, comments, docstrings, examples, and tests as claims or hints, not proof.
Never emit a defect without exact file and line support.
Never approve changes without stating what was checked.
Workflow
Phase 0 — Reconstruct intent
Extract intended behavior from:
- diff and changed files
- tests
- docs and README edits
- release notes and changelog bullets
- PR description or task brief
- changed exports, routes, commands, config keys, migrations, schemas, and handlers
Convert prose and scattered signals into atomic obligations.
Phase 1 — Summarize actual behavior
Independently summarize what the code actually does.
Do not compare yet.
Phase 2 — Compare obligations vs implementation
For each obligation, classify:
- SUPPORTED
- PARTIALLY_SUPPORTED
- UNSUPPORTED
- CONTRADICTED
- STEALTH_CHANGE
For database-backed API changes, additionally verify:
- Response model fields are returned by the underlying SQL SELECT (check model definition against every query path that populates it)
- Frontend API types match backend serialization (do not assume backend int = frontend number; verify the actual API contract)
Phase 3 — Run the substance gate
Check for:
- placeholders, TODOs, stubs, no-ops
- unwired functionality
- fake wrappers and dead abstractions
- duplicate generated logic
- tests that assert existence instead of behavior
- comments, release notes, or docstrings that overstate what exists
- polished scaffolding around missing behavior
- for renamed routes, paths, or public models, confirm the consumer coupling surface: router import only (compatible) vs. model/path import (breaking)
Phase 4 — Run AI-slop checks
Check for:
- happy-path-only logic
- off-by-one and boundary failures
- stale API usage
- context rot against local file conventions
- unnecessary async or fake abstractions
- generated duplication
- requirement-conflicting plausible implementations
Phase 5 — Emit verdict
Use exact file/line evidence only.
Classify severity first.
Only then propose fixes.
Severity rules
- CRITICAL — security/supply-chain issue, broken shipped feature, data-loss risk, unsupported shipped claim in a production path, or missing auth/validation at a critical boundary
- HIGH — real bug under normal conditions, stealth shipped behavior, materially unsupported docs/release claim, or serious test blind spot on critical behavior
- MEDIUM — bounded correctness or maintainability issue with plausible impact
- LOW — localized quality issue or drift
- INFO — useful note or coverage caveat
AI-specific pattern names
Use these labels when relevant:
- mapping-hallucination
- naming-hallucination
- resource-hallucination
- logic-hallucination
- claim-hallucination
- phantom-dependency
- stale-api
- context-rot
- happy-path-only
- unwired-functionality
Approval rules
Do not approve if any of the following are true:
- a claimed feature lacks structural proof
- a new dependency is unverified
- a critical trust boundary lacks validation
- a route, command, export, schema, or handler is unwired
- the review cannot cite exact file/line support
If approving, explicitly list:
- files reviewed
- obligations checked
- claims validated
- dependencies validated
- trust boundaries inspected
- tests or commands used as evidence
Output format
VERDICT: APPROVED | REJECTED
RISK: CRITICAL | HIGH | MEDIUM | LOW
ISSUES:
- [severity] file:line — issue
FIXES:
- [priority order remediation]
1---2name: reviewing-code-core3description: Evidence-first code review for correctness bugs, AI-generated code smells, unsupported claims, unwired functionality, dependency hallucinations, and release-to-code mismatches.4---56# Reviewing Code Core78## Use this skill when9- reviewing a PR, diff, branch, or local changes10- auditing a repository for shipped bugs or hidden implementation gaps11- validating that release notes, changelog bullets, docs, and comments match what the code actually ships12- detecting LLM-generated code smells, fake abstractions, placeholders, and unwired functionality1314## Review stance15Treat code as plausible until verified, not correct until disproven.16Treat docs, release notes, PR text, comments, docstrings, examples, and tests as claims or hints, not proof.1718Never emit a defect without exact file and line support.19Never approve changes without stating what was checked.2021## Workflow2223### Phase 0 — Reconstruct intent24Extract intended behavior from:25- diff and changed files26- tests27- docs and README edits28- release notes and changelog bullets29- PR description or task brief30- changed exports, routes, commands, config keys, migrations, schemas, and handlers3132Convert prose and scattered signals into atomic obligations.3334### Phase 1 — Summarize actual behavior35Independently summarize what the code actually does.36Do not compare yet.3738### Phase 2 — Compare obligations vs implementation39For each obligation, classify:40- SUPPORTED41- PARTIALLY_SUPPORTED42- UNSUPPORTED43- CONTRADICTED44- STEALTH_CHANGE4546For database-backed API changes, additionally verify:47- Response model fields are returned by the underlying SQL SELECT (check model definition against every query path that populates it)48- Frontend API types match backend serialization (do not assume backend int = frontend number; verify the actual API contract)4950### Phase 3 — Run the substance gate51Check for:52- placeholders, TODOs, stubs, no-ops53- unwired functionality54- fake wrappers and dead abstractions55- duplicate generated logic56- tests that assert existence instead of behavior57- comments, release notes, or docstrings that overstate what exists58- polished scaffolding around missing behavior59- for renamed routes, paths, or public models, confirm the consumer coupling surface: router import only (compatible) vs. model/path import (breaking)6061### Phase 4 — Run AI-slop checks62Check for:63- happy-path-only logic64- off-by-one and boundary failures65- stale API usage66- context rot against local file conventions67- unnecessary async or fake abstractions68- generated duplication69- requirement-conflicting plausible implementations7071### Phase 5 — Emit verdict72Use exact file/line evidence only.73Classify severity first.74Only then propose fixes.7576## Severity rules77- CRITICAL — security/supply-chain issue, broken shipped feature, data-loss risk, unsupported shipped claim in a production path, or missing auth/validation at a critical boundary78- HIGH — real bug under normal conditions, stealth shipped behavior, materially unsupported docs/release claim, or serious test blind spot on critical behavior79- MEDIUM — bounded correctness or maintainability issue with plausible impact80- LOW — localized quality issue or drift81- INFO — useful note or coverage caveat8283## AI-specific pattern names84Use these labels when relevant:85- mapping-hallucination86- naming-hallucination87- resource-hallucination88- logic-hallucination89- claim-hallucination90- phantom-dependency91- stale-api92- context-rot93- happy-path-only94- unwired-functionality9596## Approval rules97Do not approve if any of the following are true:98- a claimed feature lacks structural proof99- a new dependency is unverified100- a critical trust boundary lacks validation101- a route, command, export, schema, or handler is unwired102- the review cannot cite exact file/line support103104If approving, explicitly list:105- files reviewed106- obligations checked107- claims validated108- dependencies validated109- trust boundaries inspected110- tests or commands used as evidence111112## Output format113VERDICT: APPROVED | REJECTED114RISK: CRITICAL | HIGH | MEDIUM | LOW115116ISSUES:117- [severity] file:line — issue118119FIXES:120- [priority order remediation]