ai-native-cli — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ai-native-cli (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
When building or modifying CLI tools, follow these rules to make them safe and reliable for AI agents to use.
A comprehensive design specification for building AI-native CLI tools. It defines 98 rules across three certification levels (Agent-Friendly, Agent-Ready, Agent-Native) with prioritized requirements (P0/P1/P2). The spec covers structured JSON output, error handling, input contracts, safety guardrails, exit codes, self-description, and a feedback loop via a built-in issue system.
--humanThis spec uses two orthogonal axes:
core, recommended, ecosystemP0, P1, P2Use layers for migration and certification:
agent/, skills, issue, inline contextCertification maps to layers:
core rules passcore + recommended rules passDefault is agent mode (JSON). Explicit flags to switch:
$ mycli list # default = JSON output (agent mode)
$ mycli list --human # human-friendly: colored, tables, formatted
$ mycli list --agent # explicit agent mode (override config if needed)Every CLI tool MUST have an agent/ directory at its project root. This is the tool's identity and behavior contract for AI agents.
agent/
brief.md # One paragraph: who am I, what can I do
rules/ # Behavior constraints (auto-registered)
trigger.md # When should an agent use this tool
workflow.md # Step-by-step usage flow
writeback.md # How to write feedback back
skills/ # Extended capabilities (auto-registered)
getting-started.mdEach level includes all rules from the previous level. Priority tag [P0]=agent breaks without it, [P1]=agent works but poorly, [P2]=nice to have.
Goal: CLI is a stable, callable API. Agent can invoke, parse, and handle errors.
Output -- default is JSON, stable schema
[P0] O1: Default output is JSON. No --json flag needed[P0] O2: JSON MUST pass jq . validation[P0] O3: JSON schema MUST NOT change within same versionError -- structured, to stderr, never interactive
[P0] E1: Errors -> {"error":true, "code":"...", "message":"...", "suggestion":"..."} to stderr[P0] E4: Error has machine-readable code (e.g. MISSING_REQUIRED)[P0] E5: Error has human-readable message[P0] E7: On error, NEVER enter interactive mode -- exit immediately[P0] E8: Error codes are API contracts -- MUST NOT rename across versionsExit Code -- predictable failure signals
[P0] X3: Parameter/usage errors MUST exit 2[P0] X9: Failures MUST exit non-zero -- never exit 0 then report error in stdoutComposability -- clean pipe semantics
[P0] C1: stdout is for data ONLY[P0] C2: logs, progress, warnings go to stderr ONLYInput -- fail fast on bad input
[P1] I4: Missing required param -> structured error, never interactive prompt[P1] I5: Type mismatch -> exit 2 + structured errorSafety -- protect against agent mistakes
[P1] S1: Destructive ops require --yes confirmation[P1] S4: Reject ../../ path traversal, control charsGuardrails -- runtime input protection
[P1] G1: Unknown flags rejected with exit 2[P1] G2: Detect API key / token pat~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.