skills/ai-native-cli/SKILL.md
Design spec with 98 rules for building CLI tools that AI agents can safely use. Covers structured JSON output, error handling, input contracts, safety guardrails, exit codes, and agent self-description.
npx skillsauth add Regtransfers/agency-agents-mcp ai-native-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
@ Agent-Friendly CLI Spec v0.1
When building or modifying CLI tools, follow these rules to make them safe and reliable for AI agents to use.
@ Overview
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.
@ When to Use This Skill
@ Core Philosophy
@ Layer Model
This spec uses two orthogonal axes:
Use layers for migration and certification:
Certification maps to layers:
@ How It Works
@ Step 1: Output Mode
Default 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)
@ Step 2: agent/ Directory Convention
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.md
@ Step 3: Four Levels of Self-Description
@ Certification Requirements
Each level includes all rules from the previous level. Priority tag [P0]=agent breaks without it, [P1]=agent works but poorly, [P2]=nice to have.
@ Level 1: Agent-Friendly (core -- 20 rules)
Goal: CLI is a stable, callable API. Agent can invoke, parse, and handle errors.
Output -- default is JSON, stable schema
Error -- structured, to stderr, never interactive
Exit Code -- predictable failure signals
Composability -- clean pipe semantics
Input -- fail fast on bad input
Safety -- protect against agent mistakes
Guardrails -- runtime input protection
@ Level 2: Agent-Ready (+ recommended -- 59 rules)
Goal: CLI is self-describing, well-named, and pipe-friendly. Agent discovers capabilities and chains commands without trial and error.
Self-Description -- agent discovers what CLI can do
Input -- unambiguous calling convention
Error
Safety
Exit Code
Composability
Naming -- predictable flag conventions
Guardrails
@ Reserved Flags
Flag; Semantics; Notes
--agent; JSON output (default); Explicit override --human; Human-friendly output; Colors, tables, formatted --brief; One-paragraph identity; For sync into agent config --help; Full self-description JSON; Brief + commands + rules + skills + issue --version; Semver version string --yes; Confirm destructive ops; Required for delete/destroy --dry-run; Preview without executing --quiet; Suppress stderr output --fields; Filter output fields; Save tokens
@ Level 3: Agent-Native (+ ecosystem -- 19 rules)
Goal: CLI has identity, behavior contract, skill system, and feedback loop. Agent can learn the tool, extend its use, and report problems -- full closed-loop collaboration.
Agent Directory -- tool identity and behavior contract
Response Structure -- inline context on every call
Meta -- project-level integration
Feedback -- built-in issue system
@ Examples
@ Example 1: JSON Output (Agent Mode)
$ mycli list
{"result": [{"id": 1, "title": "Buy milk", "status": "todo"}], "rules": [...], "skills": [...], "issue": "..."}
@ Example 2: Structured Error
{
"error": true,
"code": "AUTH_EXPIRED",
"message": "Access token expired 2 hours ago",
"suggestion": "Run 'mycli auth refresh' to get a new token"
}
@ Example 3: Exit Code Table
0 success 10 auth failed 20 resource not found
1 general error 11 permission denied 30 conflict/precondition
2 param/usage error
@ Quick Implementation Checklist
Implement by layer -- each phase gets you the next certification level.
Phase 1: Agent-Friendly (core)
Phase 2: Agent-Ready (+ recommended) 8. --help returns structured JSON (help, commands[], rules[], skills[]) 9. --brief reads and outputs agent/brief.md content 10. --human flag switches to human-friendly format 11. Reserved flags: --agent, --version, --dry-run, --quiet, --fields 12. Exit codes: 20 not found, 30 conflict, 10 auth, 11 permission
Phase 3: Agent-Native (+ ecosystem) 13. Create agent/ directory: brief.md, rules/trigger.md, rules/workflow.md, rules/writeback.md 14. Every command response appends: rules[] + skills[] + issue 15. skills subcommand: list all / show one with full content 16. issue subcommand for feedback (create/list/show/close/transition) 17. AGENTS.md at project root
@ Best Practices
@ Common Pitfalls
Problem: CLI outputs human-readable text by default, breaking agent parsing Solution: Make JSON the default output format; add --human flag for human-friendly mode
Problem: Errors reported in stdout with exit code 0 Solution: Always exit non-zero on failure and write structured error JSON to stderr
Problem: CLI prompts for missing input interactively Solution: Return structured error with suggestion field and exit immediately
@ Related Skills
@ Additional Resources
@ Limitations
tools
Build AI agents that interact with computers like humans do - viewing screens, moving cursors, clicking buttons, and typing text. Covers Anthropic's Computer Use, OpenAI's Operator/CUA, and open-source alternatives.
testing
Generate structured PR descriptions from diffs, add review checklists, risk assessments, and test coverage summaries. Use when the user says "write a PR description", "improve this PR", "summarize my changes", "PR review", "pull request", or asks to document a diff for reviewers.
tools
Use when working with comprehensive review full review
development
You are an expert in creating competitor comparison and alternative pages. Your goal is to build pages that rank for competitive search terms, provide genuine value to evaluators, and position your product effectively.