Skip to content
LintLang 0.4.0 · Python 3.10+ · Apache-2.0Local · deterministic · zero LLM

Static analysis for agent language

Lint the instructions your agents execute.

LintLang catches ambiguous tools, missing limits, conflicting directives, and schema mismatches in AGENTS.md, prompts, configuration, and Python source—before a model runs.

Run onceno install
$ uvx lintlang scan AGENTS.md

REVIEW — 2 MEDIUM

H1.6 tool:search_docs ↔ tool:search_guides
Descriptions do not state how these tools differ.
Inputs
Text · YAML · JSON · Python
Files, directories, or stdin
Outcomes
PASS · REVIEW · FAIL · ERROR
Nonblocking by default
CI formats
Terminal · JSON · SARIF 2.1.0
Stable rule IDs and honest locations
Runtime
PyYAML only
No model, API, telemetry, or network call
01

Ambiguous tools

Descriptions that are empty, vague, overlapping, or missing the words that distinguish neighboring tools.

02

Missing constraints

Retry loops, tool-using instructions, and workflows that omit limits, stop conditions, or progress checks.

03

Contract mismatches

Tool descriptions that disagree with schemas, conflicting output requirements, and malformed message roles.

04

Embedded prompts

Prompt text and uncalibrated thresholds extracted from Python source without executing the application.

1Run onceuvx lintlang scan AGENTS.md
2Review the baseline

Fix findings or record why the language is intentional.

3Gate deliberatelylintlang scan AGENTS.md --fail-on fail

A normal scan reports findings without failing the process. --fail-on failblocks only HIGH and CRITICAL findings; --fail-on review also blocks MEDIUM findings. Missing or malformed requested inputs remain errors either way.

GitHub Code Scanning

Put instruction findings beside code findings.

Version 0.4.0 emits deterministic SARIF 2.1.0 with stable LintLang rule IDs, repository-relative paths, and evidence-supported line spans where the parser can justify them. Structured inputs remain file-level rather than inventing precision.

Copy the least-privilege workflow
Generate SARIF0.4.0
$ lintlang scan AGENTS.md \
    --format sarif \
    --fail-on fail \
    > lintlang.sarif

The boundary

Static analysis can narrow risk. It cannot certify an agent.

LintLang does not run models, evaluate runtime behavior, prove semantic correctness, or establish that an agent is safe in production.

Use it before prompt tests, guardrails, and production monitoring—not instead of them.

See where static linting fits in the stack →

Start with one real instruction file

Catch the defect while it is still just text.

$ uvx lintlang scan AGENTS.md