Skip to main content
aislop organizes every check into six engines that run in parallel, so your scan finishes in sub-second time regardless of project size. Each engine targets a distinct quality dimension, from basic formatting consistency all the way to the AI-generated patterns that can silently degrade your codebase. This page documents every rule across all six engines so you know exactly what aislop is checking and why.

Formatting

The formatting engine enforces consistent code style using the best-in-class formatter for each language. Formatting findings are weighted at 0.3 (the lowest engine weight) because style differences don’t indicate broken logic — but they still appear in your report so nothing stays hidden.

Linting

The linting engine catches bugs and bad practices using the fastest available linter for each language. For JS/TS projects, oxlint ships bundled so you don’t need to install anything separately.

Code Quality

The code quality engine measures structural complexity, surfaces dead code, and identifies unused dependencies. knip/* rules apply to JS/TS projects only and require a package.json to be present.

AI Slop

These are the rules that make aislop unique. They specifically target the patterns that AI coding assistants tend to leave behind — from narrative comments that restate the code to swallowed exceptions that hide runtime failures.
Each rule exposes a score-impact tier. Strict defects such as swallowed exceptions and hallucinated imports score at full impact, while style, mechanical, and advisory findings stay visible but score more softly. Run aislop rules to see the tier and rationale for every rule.
Rules with error severity (swallowed-exception, hallucinated-import) carry a base penalty of 3.0 — three times the weight of a warning. Fixing these two rule families has the biggest positive impact on your score.

Security

The security engine finds secrets, risky constructs, and vulnerable dependencies. Security findings carry a default engine weight of 1.5 in your score.
security/hardcoded-secret is an error-severity rule. Any confirmed secret in your codebase should be rotated immediately — aislop’s detection is a signal to act, not a complete audit.

Architecture (opt-in)

The architecture engine enforces custom import and path rules you define in .aislop/rules.yml. It is disabled by default — enable it by adding engines.architecture: true to your config.
Add the following to .aislop/config.yml:
Then create .aislop/rules.yml with your custom rules. See the architecture rules guide for a complete sample file.
Three rule types are available:

Supported Languages Matrix

The table below shows which engines and rule sets are active for each language aislop supports.