Security-focused review of AI-generated or AI-assisted code. Use when reviewing code produced by AI coding assistants, auditing AI-generated patches, verifying AI-assisted contributions before merge, or when a review needs to account for failure modes specific to AI code generation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/prodsec-skills-ge-core:ai-code-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Security review checklist and methodology for code produced by AI
Security review checklist and methodology for code produced by AI coding assistants (Claude, Copilot, Cursor, Gemini, or any LLM-based tool). AI-generated code has characteristic failure modes that differ from human-written code and require specific review attention.
Assisted-by: or
Generated-by: attributionmodule/skills/differential-review/SKILL.md)module/skills/prompt-injection-mitigation/SKILL.md)module/skills/third-party-model-security/SKILL.md
or module/skills/file-protection/SKILL.md)AI code generation has characteristic error patterns that differ from typical human mistakes. Review for these specifically:
LLMs confidently generate calls to functions, methods, flags, configuration keys, or library features that do not exist. These compile or parse without errors but fail at runtime, or worse, silently do nothing.
Detection:
rg "function_name" — if
it only appears in the new code, it may be hallucinatedSecurity impact: A hallucinated security function (e.g., a
nonexistent sanitize_input() call) provides zero protection
while giving the appearance of safety.
AI generates code that reads naturally and appears correct but contains subtle logical errors — inverted conditions, off-by-one errors, wrong comparison operators, or incorrect state transitions. These are harder to catch than obviously broken code because they pass casual reading.
Detection:
< vs <=, == vs !=,
and vs orSecurity impact: An inverted authorization check
(if user.is_admin instead of if not user.is_admin) grants
access to everyone. The code reads plausibly either way.
AI generates code that follows general best practices but diverges from the specific patterns, idioms, and conventions of the project. This introduces inconsistency that makes the codebase harder to audit and may bypass project-specific security mechanisms.
Detection:
Security impact: Using a generic auth check instead of the project's custom auth decorator may skip logging, rate limiting, or additional validation that the project relies on.
AI often generates a working happy path but handles errors with generic catch-all blocks, swallowed exceptions, or missing cleanup. Error paths are where security vulnerabilities hide.
Detection:
try/catch, except, or error return: does
it handle the error meaningfully or just log and continue?Security impact: A swallowed authentication error may allow an unauthenticated request to proceed. A missing rollback may leave the system in an inconsistent state exploitable by a subsequent request.
AI training data has a cutoff. Generated code may use deprecated APIs, insecure defaults from older library versions, or patterns that were correct in a previous version but are now vulnerable.
Detection:
Security impact: Using a deprecated crypto API with known weaknesses, or relying on a default that changed from insecure to secure (or vice versa) between versions.
AI generates unfinished-work comments, placeholder implementations, commented-out code blocks, or "temporary" workarounds that are intended to be replaced but get committed as-is.
Detection:
todo, fixme, hack,
temporary, xxx markerschangeme,
a secret key assigned development)pass or return None stubsSecurity impact: A placeholder secret, a disabled validation, or a stub authentication function shipped to production.
For each AI-generated or AI-assisted change:
< vs <=, == vs !=)pass, return None, throw new NotImplementedException())For each finding:
| Field | Content |
|---|---|
| Category | Hallucinated API / Plausible-but-wrong / Pattern drift / Incomplete error handling / Stale dependency / Abandoned scaffolding |
| Location | File and line range |
| Finding | What is wrong or risky |
| Evidence | Why you believe it (missing symbol, inverted logic, project pattern not followed) |
| Severity | Critical / High / Medium / Low / Nit |
| Suggestion | Concrete fix |
module/skills/differential-review/SKILL.md — General security-focused code review.
This skill adds AI-specific failure modes on top.module/skills/fp-check/SKILL.md — When an AI-generated security finding is
itself suspect, use fp-check to verify it.module/skills/inconsistency-detection/SKILL.md — AI-generated code that drifts
from project patterns creates exactly the kind of inconsistency
this technique detects.npx claudepluginhub redhatproductsecurity/prodsec-skills --plugin prodsec-skills-ge-coreReviews AI-authored code for characteristic failure modes: plausible-but-wrong logic, hallucinated APIs, over-engineering, dead scaffolding, and silent security shortcuts.
Applies a 4-layer adversarial audit framework to AI-generated code, detecting inefficiencies, logical flaws, and hallucinations. Activates on /ai-audit or code audit requests.
Combines static analysis tools (CodeQL, SonarQube, Semgrep) with AI (Copilot, Claude) to review PRs for security, performance, and maintainability.