# Scan your agent setup

Run LintLang from your project root to check the instructions and configuration that shape your agent’s behavior. Start locally, fix a finding, then bring the same check into your workflow.

## 1. Scan the project

With [uv](https://docs.astral.sh/uv/getting-started/installation/) installed, open a terminal in your project and run:

```sh
uvx --from lintlang==0.8.0 lintlang scan --discover .
```

You need Python 3.10+. The command downloads LintLang if needed; the scan itself runs locally, with no model calls. Prefer a persistent command? See [installation](/docs/install).

Discovery finds recognized agent instructions throughout the project, including `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `SKILL.md`, agent YAML/JSON files, and Copilot instructions.

To include a configuration file with a different name, add it explicitly:

```sh
uvx --from lintlang==0.8.0 lintlang scan config.yaml --discover .
```

Use a real path in your project. Editor-specific files such as Cursor rules also need an explicit path. [What gets scanned](/docs/inputs) explains discovery, directory scans, and individual files.

## 2. Read a finding

Each finding gives you a **rule code**, **severity**, **source location**, and **suggested repair**. For example, H1.1 points to a tool that has no description: the agent can see its name and parameters, but lacks guidance about when to choose it.

Open the indicated file, make the instruction or schema more specific, and run the scan again. Use the `Inspected` line to confirm which content was checked.

| Result | What to do next |
| --- | --- |
| FAIL | Start with the HIGH or CRITICAL findings. |
| REVIEW | Review the MEDIUM findings in context. |
| PASS | No MEDIUM-or-higher findings remain; LOW/INFO can still appear. |
| SKIPPED or ERROR | Check the path and reported inspection coverage. |

Want a small example you can reproduce without a project? [Fix your first finding](/docs/first-finding) walks through a tool description before and after repair.

## 3. Keep the check in your workflow

Local scans report findings without failing the command by default. Add an explicit threshold when you want a blocking check:

```sh
uvx --from lintlang==0.8.0 lintlang scan --discover . --fail-on fail
```

This exits nonzero for HIGH or CRITICAL findings. Use `--fail-on review` to include MEDIUM findings. Input errors also return a nonzero exit code.

<div class="link-grid">
<a class="link-card" href="/integrations"><strong>Use your existing tools →</strong><span>Set up GitHub, GitLab, Cursor, Claude Code, or another integration.</span></a>
<a class="link-card" href="/rules"><strong>Understand a rule →</strong><span>Find the trigger, a focused example, and a practical repair.</span></a>
</div>

