Check your CLI

agentnative is the reference linter for this standard. It scores any CLI tool against the seven principles and tells you, by check ID, where it passes and where it falls short.

Install

cargo install agentnative

Or with cargo-binstall for a prebuilt binary:

cargo binstall agentnative

Run it

# Against the current project (cargo workspace, binary, or source tree)
agentnative check .

# Against a compiled binary directly
agentnative check ./target/release/mycli

# Agent-friendly output
agentnative check . --output json

# Narrow to one principle
agentnative check . --principle 3

Read the output

P1 — Non-Interactive by Default
  [PASS] Non-interactive by default (p1-non-interactive)
  [PASS] No interactive prompt dependencies (p1-non-interactive-source)

P3 — Progressive Help
  [PASS] Help flag produces useful output (p3-help)
  [WARN] after_help section missing on subcommand (p3-after-help)

P4 — Fail Fast with Actionable Errors
  [FAIL] `process::exit` found outside main (p4-process-exit)
  [PASS] Rejects invalid arguments (p4-bad-args)

30 checks: 20 pass, 8 warn, 1 fail, 1 skip, 0 error

Each line ends with a stable check ID (p4-process-exit, p1-non-interactive, etc.). Cite those IDs in issues, commits, and agent output; they do not change between versions.

Three check layers

Pass --binary to skip source analysis, --source to skip behavioral. Most projects want the default, which is "run everything."

What a score means

A [PASS] is a requirement met, not a compliment. A [WARN] is a SHOULD the tool doesn't satisfy; ignoring it is a choice, not a bug. A [FAIL] is a MUST the tool doesn't satisfy; agents will hit the edge it describes and the tool will surprise them. Nothing here is a vanity metric — the checks map one-to-one to the requirements on the principles page.

Source: github.com/brettdavies/agentnative.