Rules
28 rules to catch what AI coding assistants get wrong.
Hallucinated Imports 2
Security 6
no-exposed-env
ProDisallow exposing process.env variables to client-side code
no-hardcoded-secrets
FreeDisallow hardcoded API keys and tokens from known providers in string literals
no-insecure-defaults
ProDetect insecure default configurations commonly introduced by AI coding assistants: wildcard CORS, disabled CSRF, HTTP URLs, disabled TLS.
no-placeholder-credentials
FreeDisallow placeholder credential strings commonly left by AI assistants
no-raw-sql
ProDisallow raw SQL strings; prefer query builders or ORMs
no-sql-concat
ProDisallow SQL string concatenation with dynamic values (potential SQL injection)
Dead Code 5
no-dead-branches
ProDisallow if/ternary/while statements with literal conditions that create dead branches
no-empty-implementations
FreeDisallow empty or stub function implementations left by AI assistants
no-todo-placeholders
FreeDisallow TODO/FIXME/HACK comments left as if work is complete
no-unreachable-catch
ProDisallow try/catch blocks where the try body contains no code that can throw
no-unused-parameters
ProFlag function parameters that are declared but never used
AI Behavior 5
no-fake-async
FreeDisallow async functions that have no await expression
no-fake-error-handling
FreeDisallow empty catch blocks and catches that only log without handling
no-hedging-comments
ProDisallow AI-style hedging comments that tell the user to finish the job
no-prompt-artifacts
FreeDisallow AI prompt artifacts (conversational text) in code
no-stale-jsdoc
ProFlag JSDoc @param names that do not match actual function parameters
Complexity 5
cognitive-complexity
ProEnforce a maximum cognitive complexity per function to catch AI-generated tangled logic
cyclomatic-complexity
ProEnforce a maximum cyclomatic complexity per function to catch AI-generated complex branching
maintainability-index
ProFlag functions with low maintainability index (MI) based on Halstead volume, cyclomatic complexity, and lines of code
max-depth
ProEnforce a maximum nesting depth to catch AI-generated deeply nested code
no-duplicate-string
ProFlag string literals duplicated too many times to catch AI copy-paste patterns