# lintlang

Static linter for AI agent configs, tool descriptions, and system prompts.

Use this repo when you need to:
- lint agent configuration language before runtime
- flag shipped patterns for vague tool descriptions, missing constraints, schema mismatches, and role confusion
- run a zero-LLM quality gate in CI over YAML, JSON, prompt text, or Python source files
- scan `.py` files for embedded prompts and uncalibrated thresholds (P1/P2 detectors)
- preflight one present instruction plus explicit typed context before a host sends it

Primary CLI:
- `lintlang scan <file-or-dir>`
- `lintlang scan <path> --format json`
- `lintlang patterns`
- `printf '%s' 'Is it true that X?' | lintlang preflight - --format json`

Outputs:
- ERROR, PASS, REVIEW, or FAIL scan outcomes
- structural findings with pattern IDs `H1` to `H7`, `P1`, and `P2`
- optional JSON output for CI pipelines
- separate preflight states `ALLOW`, `NOTICE`, `HOLD`, `UNAVAILABLE`, and `ERROR`
- exact preflight spans, stable `PF001`-`PF005` IDs, and source-bound optional corrections

Do not use this repo as:
- a runtime agent evaluator
- an LLM-based prompt judge
- proof that an agent is behaviorally safe
- a truth oracle, personalized history miner, silent rewrite layer, or provider sender

Key success condition:
- the same input files produce the same verdict and structural findings with no network or model calls
- the same preflight request produces byte-stable redacted output; unavailable coverage never becomes clean

## About Hermes Labs

Hermes Labs is an independent AI-reliability lab building open-source tools that catch silent failure modes in production AI. More at [hermes-labs.ai](https://hermes-labs.ai).
