138 hermes-labs-ai

lintlang Skill

在编写或审查 AI 代理配置、系统提示词或工具定义(JSON/YAML/Python)时使用,在运行前发现含糊的工具描述、缺失的停止条件、schema 与描述不匹配或嵌入的提示词。确定性静态分析,无需 LLM 或网络调用。

安装方式:把技能目录放入 ~/.claude/skills/(Claude Code)或在 claude.ai 设置中启用;也可复制右侧安装命令一键添加。

查看源码

技能指令原文(SKILL.md)

LintLang

LintLang statically analyzes the natural-language instructions that control AI
agents — system prompts, tool descriptions, and configs — catching ambiguous
tools, missing limits, and mixed output formats before they reach an agent
at runtime. It is zero-LLM: deterministic pattern and structural checks only,
no model calls, no telemetry, no network access.

Use it for

  • Linting tool descriptions before agents start choosing between them

(detects pairs like get_user_info / fetch_user_data with no
distinguishing term — check H1.6)

  • Checking prompts and configs for missing stop conditions, unbounded

retries, and schema/description mismatches

  • Running a zero-LLM CI gate over YAML, JSON, prompt text, and Python source
  • Scanning .py files for embedded prompts and uncalibrated thresholds

(detectors P1/P2)

  • Preflighting one present instruction plus explicit typed context before a

host sends it to a model

Do not use it for

  • Runtime evaluation of a live agent
  • Dynamic agent testing or behavioral benchmarking
  • Proving an agent is safe in production
  • Retrieving preferences from history, deciding truth, or rewriting/sending

prompts on the agent's behalf

Quickstart

python -m pip install lintlang
lintlang scan AGENTS.md

Or without installing, via uv:

uvx lintlang scan AGENTS.md

Scan a fixture with a known finding:

uvx lintlang scan samples/bad_tool_descriptions.yaml

Output shape

  • Repository scan outcomes: ERROR, PASS, REVIEW, or FAIL
  • Structural findings by pattern H1 through H7, plus Python pipeline

findings P1 and P2

  • JSON output for CI via --format json
  • Preflight states: ALLOW, NOTICE, HOLD, UNAVAILABLE, or ERROR
  • Preflight evidence uses exact code-point spans and stable PF001-PF005

IDs

Common gotchas

  • LintLang judges structure, not runtime model behavior — a config can pass

every LintLang check and still fail at inference time.

  • Configs can be syntactically valid YAML/JSON while still under-specified

for their intended use; LintLang flags this as REVIEW, not FAIL.

  • Preflight heuristic findings are notice-only; only exact contract/conflict

rules may hold (HOLD).

More

Full docs, CLI reference, and CI integration:
https://github.com/hermes-labs-ai/lintlang