Ambiguous tools
Descriptions that are empty, vague, overlapping, or missing the words that distinguish neighboring tools.
Static analysis for agent language
LintLang catches ambiguous tools, missing limits, conflicting directives, and schema mismatches in AGENTS.md, prompts, configuration, and Python source—before a model runs.
$ uvx lintlang scan AGENTS.md
REVIEW — 2 MEDIUM
H1.6 tool:search_docs ↔ tool:search_guides
Descriptions do not state how these tools differ.Descriptions that are empty, vague, overlapping, or missing the words that distinguish neighboring tools.
Retry loops, tool-using instructions, and workflows that omit limits, stop conditions, or progress checks.
Tool descriptions that disagree with schemas, conflicting output requirements, and malformed message roles.
Prompt text and uncalibrated thresholds extracted from Python source without executing the application.
uvx lintlang scan AGENTS.mdFix findings or record why the language is intentional.
lintlang scan AGENTS.md --fail-on failA 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
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 ↗$ lintlang scan AGENTS.md \
--format sarif \
--fail-on fail \
> lintlang.sarifThese signals establish public ecosystem evidence, not customers, users, endorsement, detector accuracy on external projects, or proof of production fitness.
The boundary
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
$ uvx lintlang scan AGENTS.md