> ## Documentation Index
> Fetch the complete documentation index at: https://scanaislop-update.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Scan your code for AI slop

> Understand what scanaislop is, the problem it solves, its six analysis engines, supported languages, and the key properties that make it reliable in CI.

<img src="https://mintcdn.com/scanaislop-update/9fJrbo12uu_LbYYP/assets/images/introduction_image.jpg?fit=max&auto=format&n=9fJrbo12uu_LbYYP&q=85&s=c4ac64f161118811d3a4156e4d41432a" alt="Scanaislop documentation overview" className="mt-6 mb-8 rounded-xl border" width="2532" height="1536" data-path="assets/images/introduction_image.jpg" />

## What is scanaislop?

aislop is a quality gate for AI coding agents. It runs six deterministic engines in parallel across eight language targets, reports findings with file and line locations, repairs mechanical issues, and exits with a non-zero code in CI when the score falls below your threshold. There are no LLMs in the runtime path: the score is computed from regex, AST analysis, and standard open-source tooling, so the same code always produces the same result.

## The problem it solves

Every major AI coding agent — Claude Code, Cursor, Codex, OpenCode, Gemini CLI — generates code that satisfies local correctness checks but introduces patterns that degrade long-term maintainability. These patterns are consistent enough across agents and projects to define as rules. aislop encodes more than 50 of them, weighted so high-confidence defects and security findings hit harder than mechanical cleanup. You get one number, one gate, and a clear fix list.

## The six engines

aislop runs six engines on every scan. Each engine targets a different quality dimension and maps to a share of the overall 0–100 score.

<CardGroup cols={2}>
  <Card title="Formatting" icon="paintbrush">
    Code style consistency checked by **Biome** (TypeScript/JavaScript), **ruff** (Python), **gofmt** (Go), **cargo
    fmt** (Rust), **rubocop** (Ruby), and **php-cs-fixer** (PHP).
  </Card>

  <Card title="Linting" icon="triangle-exclamation">
    Language-specific correctness checked by **oxlint** (JS/TS), **ruff** (Python), **golangci-lint** (Go),
    **clippy** (Rust), and **expo-doctor** (Expo/React Native).
  </Card>

  <Card title="Code Quality" icon="gauge-high">
    Complexity and dead code: function and file size limits, deep nesting detection, unused files and dependencies
    via **knip**, and AST-based unused-declaration removal.
  </Card>

  <Card title="AI Slop" icon="robot">
    Patterns specific to AI-generated code: narrative comments, trivial comments, dead patterns, unused imports, `as
                any` casts, `console.log` leftovers, TODO stubs, and generic names.
  </Card>

  <Card title="Security" icon="shield-halved">
    Vulnerabilities and risky code: `eval`, `innerHTML`, SQL and shell injection patterns, and dependency audits via
    **npm audit**, **pip-audit**, **cargo audit**, and **govulncheck**.
  </Card>

  <Card title="Architecture" icon="sitemap">
    Structural rules (opt-in): custom import bans, layering rules, and required patterns configured in
    `.aislop/config.yml`.
  </Card>
</CardGroup>

## Supported languages

aislop analyses eight language targets with full engine coverage. Files in other languages are excluded from scoring rather than partially scored — you always know exactly what the number represents.

| Language            | Target identifier |
| ------------------- | ----------------- |
| TypeScript          | `typescript`      |
| JavaScript          | `javascript`      |
| Expo / React Native | `expo`            |
| Python              | `python`          |
| Go                  | `go`              |
| Rust                | `rust`            |
| Ruby                | `ruby`            |
| PHP                 | `php`             |

<Note>
  If a repository is primarily written in an unsupported language (C, C#, Swift, Kotlin, etc.), aislop withholds the
  score and reports `scoreable: false` rather than printing a number based on a handful of incidental files.
</Note>

## Key differentiators

**Deterministic, no LLM at runtime.** aislop uses regex, AST analysis, and standard open-source tooling — never an API call to a language model. The same code in always produces the same score out. This makes the score reliable enough to enforce as a hard CI gate.

**Sub-second.** All six engines run in parallel. For most projects, a full scan completes in well under a second, making it practical as a pre-commit hook and as a post-edit hook inside your coding agent.

**50+ rules, language-specific.** Rules are tuned per language and weighted by severity. Sloppy patterns that indicate deeper problems (swallowed exceptions, unsafe type casts) carry more weight than style findings.

**Zero-config start.** `npx aislop@latest scan` works on any repository without any configuration. Add `.aislop/config.yml` when you want to tune thresholds, override rule severity, or enable the Architecture engine.

**Local repair agent.** `aislop agent` creates an isolated local worktree, runs safe fixes, streams a Codex, Claude Code, or OpenCode repair session, verifies the result, and leaves the diff for review. `aislop fix` remains the deterministic layer for mechanical cleanup.

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" href="/quickstart">
    Scan your first project in under a minute with a single npx command.
  </Card>

  <Card title="How It Works" icon="gears" href="/concepts/how-it-works">
    Deep dive into the scoring model, engine weights, and rule evaluation order.
  </Card>

  <Card title="Local repair agent" icon="bot" href="/cli/agent">
    Use Codex, Claude Code, or OpenCode while aislop owns scoring and verification.
  </Card>
</CardGroup>
