{"id":"eda1bfbe-a03d-4b70-ba8b-73803cf24087","shortId":"T6NNRc","kind":"skill","title":"ai-native-cli","tagline":"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.","description":"# Agent-Friendly CLI Spec v0.1\n\nWhen building or modifying CLI tools, follow these rules to make them safe and\nreliable for AI agents to use.\n\n## Overview\n\nA comprehensive design specification for building AI-native CLI tools. It defines\n98 rules across three certification levels (Agent-Friendly, Agent-Ready, Agent-Native)\nwith prioritized requirements (P0/P1/P2). The spec covers structured JSON output,\nerror handling, input contracts, safety guardrails, exit codes, self-description,\nand a feedback loop via a built-in issue system.\n\n## When to Use This Skill\n\n- Use when building a new CLI tool that AI agents will invoke\n- Use when retrofitting an existing CLI to be agent-friendly\n- Use when designing command-line interfaces for automation pipelines\n- Use when auditing a CLI tool's compliance with agent-safety standards\n\n## Core Philosophy\n\n1. **Agent-first** -- default output is JSON; human-friendly is opt-in via `--human`\n2. **Agent is untrusted** -- validate all input at the same level as a public API\n3. **Fail-Closed** -- when validation logic itself errors, deny by default\n4. **Verifiable** -- every rule is written so it can be automatically checked\n\n## Layer Model\n\nThis spec uses two orthogonal axes:\n\n- **Layer** answers rollout scope: `core`, `recommended`, `ecosystem`\n- **Priority** answers severity: `P0`, `P1`, `P2`\n\nUse layers for migration and certification:\n\n- **core** -- execution contract: JSON, errors, exit codes, stdout/stderr, safety\n- **recommended** -- better machine UX: self-description, explicit modes, richer schemas\n- **ecosystem** -- agent-native integration: `agent/`, `skills`, `issue`, inline context\n\nCertification maps to layers:\n\n- **Agent-Friendly** -- all `core` rules pass\n- **Agent-Ready** -- all `core` + `recommended` rules pass\n- **Agent-Native** -- all layers pass\n\n## How It Works\n\n### Step 1: Output Mode\n\nDefault is agent mode (JSON). Explicit flags to switch:\n\n```bash\n$ mycli list              # default = JSON output (agent mode)\n$ mycli list --human      # human-friendly: colored, tables, formatted\n$ mycli list --agent      # explicit agent mode (override config if needed)\n```\n\n- **Default (no flag)** -- JSON to stdout. Agent never needs to add a flag.\n- **--human** -- human-friendly format (colors, tables, progress bars)\n- **--agent** -- explicit JSON mode (useful when env/config overrides default)\n\n### Step 2: agent/ Directory Convention\n\nEvery CLI tool MUST have an `agent/` directory at its project root. This is the\ntool's identity and behavior contract for AI agents.\n\n```\nagent/\n  brief.md          # One paragraph: who am I, what can I do\n  rules/            # Behavior constraints (auto-registered)\n    trigger.md      # When should an agent use this tool\n    workflow.md     # Step-by-step usage flow\n    writeback.md    # How to write feedback back\n  skills/           # Extended capabilities (auto-registered)\n    getting-started.md\n```\n\n### Step 3: Four Levels of Self-Description\n\n1. **--brief** (business card, injected into agent config)\n2. **Every Command Response** (always-on context: data + rules + skills + issue)\n3. **--help** (full self-description: brief + commands + rules + skills + issue)\n4. **skills \\<name\\>** (on-demand deep dive into a specific skill)\n\n## Certification Requirements\n\nEach level includes all rules from the previous level.\nPriority tag `[P0]`=agent breaks without it, `[P1]`=agent works but poorly, `[P2]`=nice to have.\n\n### Level 1: Agent-Friendly (core -- 20 rules)\n\nGoal: CLI is a stable, callable API. Agent can invoke, parse, and handle errors.\n\n**Output** -- default is JSON, stable schema\n- `[P0]` O1: Default output is JSON. No `--json` flag needed\n- `[P0]` O2: JSON MUST pass `jq .` validation\n- `[P0]` O3: JSON schema MUST NOT change within same version\n\n**Error** -- structured, to stderr, never interactive\n- `[P0]` E1: Errors -> `{\"error\":true, \"code\":\"...\", \"message\":\"...\", \"suggestion\":\"...\"}` to stderr\n- `[P0]` E4: Error has machine-readable `code` (e.g. `MISSING_REQUIRED`)\n- `[P0]` E5: Error has human-readable `message`\n- `[P0]` E7: On error, NEVER enter interactive mode -- exit immediately\n- `[P0]` E8: Error codes are API contracts -- MUST NOT rename across versions\n\n**Exit Code** -- predictable failure signals\n- `[P0]` X3: Parameter/usage errors MUST exit 2\n- `[P0]` X9: Failures MUST exit non-zero -- never exit 0 then report error in stdout\n\n**Composability** -- clean pipe semantics\n- `[P0]` C1: stdout is for data ONLY\n- `[P0]` C2: logs, progress, warnings go to stderr ONLY\n\n**Input** -- fail fast on bad input\n- `[P1]` I4: Missing required param -> structured error, never interactive prompt\n- `[P1]` I5: Type mismatch -> exit 2 + structured error\n\n**Safety** -- protect against agent mistakes\n- `[P1]` S1: Destructive ops require `--yes` confirmation\n- `[P1]` S4: Reject `../../` path traversal, control chars\n\n**Guardrails** -- runtime input protection\n- `[P1]` G1: Unknown flags rejected with exit 2\n- `[P1]` G2: Detect API key / token patterns in args, reject execution\n- `[P1]` G3: Reject sensitive file paths (*.env, *.key, *.pem)\n- `[P1]` G8: Reject shell metacharacters in arguments (; | && $())\n\n### Level 2: Agent-Ready (+ recommended -- 59 rules)\n\nGoal: CLI is self-describing, well-named, and pipe-friendly. Agent discovers capabilities and chains commands without trial and error.\n\n**Self-Description** -- agent discovers what CLI can do\n- `[P1]` D1: `--help` outputs structured JSON with `commands[]`\n- `[P1]` D3: Schema has required fields (help, commands)\n- `[P1]` D4: All parameters have type declarations\n- `[P1]` D7: Parameters annotated as required/optional\n- `[P1]` D9: Every command has a description\n- `[P1]` D11: `--help` outputs JSON with help, rules, skills, commands\n- `[P1]` D15: `--brief` outputs `agent/brief.md` content\n- `[P1]` D16: Default JSON (agent mode), `--human` for human-friendly\n- `[P2]` D2/D5/D6/D8/D10: per-command help, enums, defaults, output schema, version\n\n**Input** -- unambiguous calling convention\n- `[P1]` I1: All flags use `--long-name` format\n- `[P1]` I2: No positional argument ambiguity\n- `[P2]` I3/I6/I7: --json-input, boolean --no-X, array params\n\n**Error**\n- `[P1]` E6: Error includes `suggestion` field\n- `[P2]` E2/E3: errors to stderr, error JSON valid\n\n**Safety**\n- `[P1]` S8: `--sanitize` flag for external input\n- `[P2]` S2/S3/S5/S6/S7: default deny, --dry-run, no auto-update, destructive marking\n\n**Exit Code**\n- `[P1]` X1: 0 = success\n- `[P2]` X2/X4-X8: 1=general, 10=auth, 11=permission, 20=not-found, 30=conflict\n\n**Composability**\n- `[P1]` C6: No interactive prompts in pipe mode\n- `[P2]` C3/C4/C5/C7: pipe-friendly, --quiet, pipe chain, idempotency\n\n**Naming** -- predictable flag conventions\n- `[P1]` N4: Reserved flags (--agent, --human, --brief, --help, --version, --yes, --dry-run, --quiet, --fields)\n- `[P2]` N1/N2/N3/N5/N6: consistent naming, kebab-case, max 3 levels, --version semver\n\n**Guardrails**\n- `[P1]` I8/I9: no implicit state, non-interactive auth\n- `[P1]` G6/G9: precondition checks, fail-closed\n- `[P2]` G4/G5/G7: permission levels, PII redaction, batch limits\n\n#### Reserved Flags\n\n| Flag | Semantics | Notes |\n|------|-----------|-------|\n| `--agent` | JSON output (default) | Explicit override |\n| `--human` | Human-friendly output | Colors, tables, formatted |\n| `--brief` | One-paragraph identity | For sync into agent config |\n| `--help` | Full self-description JSON | Brief + commands + rules + skills + issue |\n| `--version` | Semver version string | |\n| `--yes` | Confirm destructive ops | Required for delete/destroy |\n| `--dry-run` | Preview without executing | |\n| `--quiet` | Suppress stderr output | |\n| `--fields` | Filter output fields | Save tokens |\n\n### Level 3: Agent-Native (+ ecosystem -- 19 rules)\n\nGoal: 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.\n\n**Agent Directory** -- tool identity and behavior contract\n- `[P1]` D12: `agent/brief.md` exists\n- `[P1]` D13: `agent/rules/` has trigger.md, workflow.md, writeback.md\n- `[P1]` D17: agent/rules/*.md have YAML frontmatter (name, description)\n- `[P1]` D18: agent/skills/*.md have YAML frontmatter (name, description)\n- `[P2]` D14: `agent/skills/` directory + `skills` subcommand\n\n**Response Structure** -- inline context on every call\n- `[P1]` R1: Every response includes `rules[]` (full content from agent/rules/)\n- `[P1]` R2: Every response includes `skills[]` (name + description + command)\n- `[P1]` R3: Every response includes `issue` (feedback guide)\n\n**Meta** -- project-level integration\n- `[P2]` M1: AGENTS.md at project root\n- `[P2]` M2: Optional MCP tool schema export\n- `[P2]` M3: CHANGELOG.md marks breaking changes\n\n**Feedback** -- built-in issue system\n- `[P2]` F1: `issue` subcommand (create/list/show)\n- `[P2]` F2: Structured submission with version/context/exit_code\n- `[P2]` F3: Categories: bug / requirement / suggestion / bad-output\n- `[P2]` F4: Issues stored locally, no external service dependency\n- `[P2]` F5: `issue list` / `issue show <id>` queryable\n- `[P2]` F6: Issues have status tracking (open/in-progress/resolved/closed)\n- `[P2]` F7: Issue JSON has all required fields (id, type, status, message, created_at, updated_at)\n- `[P2]` F8: All issues have status field\n\n## Examples\n\n### Example 1: JSON Output (Agent Mode)\n\n```bash\n$ mycli list\n{\"result\": [{\"id\": 1, \"title\": \"Buy milk\", \"status\": \"todo\"}], \"rules\": [...], \"skills\": [...], \"issue\": \"...\"}\n```\n\n### Example 2: Structured Error\n\n```json\n{\n  \"error\": true,\n  \"code\": \"AUTH_EXPIRED\",\n  \"message\": \"Access token expired 2 hours ago\",\n  \"suggestion\": \"Run 'mycli auth refresh' to get a new token\"\n}\n```\n\n### Example 3: Exit Code Table\n\n```\n0   success         10  auth failed       20  resource not found\n1   general error   11  permission denied 30  conflict/precondition\n2   param/usage error\n```\n\n## Quick Implementation Checklist\n\nImplement by layer -- each phase gets you the next certification level.\n\n**Phase 1: Agent-Friendly (core)**\n1. Default output is JSON -- no `--json` flag needed\n2. Error handler: `{ error, code, message, suggestion }` to stderr\n3. Exit codes: 0 success, 2 param error, 1 general\n4. stdout = data only, stderr = logs only\n5. Missing param -> structured error (never interactive)\n6. `--yes` guard on destructive operations\n7. Guardrails: reject secrets, path traversal, shell metacharacters\n\n**Phase 2: Agent-Ready (+ recommended)**\n8. `--help` returns structured JSON (help, commands[], rules[], skills[])\n9. `--brief` reads and outputs `agent/brief.md` content\n10. `--human` flag switches to human-friendly format\n11. Reserved flags: --agent, --version, --dry-run, --quiet, --fields\n12. Exit codes: 20 not found, 30 conflict, 10 auth, 11 permission\n\n**Phase 3: Agent-Native (+ ecosystem)**\n13. Create `agent/` directory: `brief.md`, `rules/trigger.md`, `rules/workflow.md`, `rules/writeback.md`\n14. Every command response appends: rules[] + skills[] + issue\n15. `skills` subcommand: list all / show one with full content\n16. `issue` subcommand for feedback (create/list/show/close/transition)\n17. AGENTS.md at project root\n\n## Best Practices\n\n- Do: Default to JSON output so agents never need to add flags\n- Do: Include `suggestion` field in every error response\n- Do: Use the three-level certification model for incremental adoption\n- Do: Keep `agent/brief.md` to one paragraph for token efficiency\n- Don't: Enter interactive mode on errors -- always exit immediately\n- Don't: Change JSON schema or error codes within the same version\n- Don't: Put logs or progress info on stdout -- use stderr only\n- Don't: Accept unknown flags silently -- reject with exit code 2\n\n## Common Pitfalls\n\n- **Problem:** CLI outputs human-readable text by default, breaking agent parsing\n  **Solution:** Make JSON the default output format; add `--human` flag for human-friendly mode\n\n- **Problem:** Errors reported in stdout with exit code 0\n  **Solution:** Always exit non-zero on failure and write structured error JSON to stderr\n\n- **Problem:** CLI prompts for missing input interactively\n  **Solution:** Return structured error with suggestion field and exit immediately\n\n## Related Skills\n\n- `@cli-best-practices` - General CLI design patterns (this skill focuses specifically on AI agent compatibility)\n\n## Additional Resources\n\n- [Agent CLI Spec Repository](https://github.com/ChaosRealmsAI/agent-cli-spec)\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["native","cli","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-ai-native-cli","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/ai-native-cli","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34964 github stars · SKILL.md body (12,777 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-25T00:50:24.709Z","embedding":null,"createdAt":"2026-04-18T21:30:43.579Z","updatedAt":"2026-04-25T00:50:24.709Z","lastSeenAt":"2026-04-25T00:50:24.709Z","tsv":"'/..':740 '/chaosrealmsai/agent-cli-spec)':1760 '0':675,968,1385,1446,1701 '1':177,319,471,542,972,1334,1344,1394,1420,1425,1451 '10':974,1387,1503,1530 '11':976,1397,1512,1532 '12':1522 '13':1540 '14':1548 '15':1556 '16':1566 '17':1572 '19':1131 '2':194,390,479,664,722,756,785,1354,1367,1402,1434,1448,1482,1663 '20':547,978,1390,1525 '3':209,464,491,1029,1126,1381,1443,1535 '30':982,1400,1528 '4':221,502,1453 '5':1460 '59':790 '6':1467 '7':1473 '8':1487 '9':1496 '98':8,77 'accept':1655 'access':1364 'across':79,651 'add':368,1589,1685 'addit':1752 'adopt':1609 'agent':16,33,38,60,84,87,90,138,150,172,179,195,282,285,295,302,310,324,337,350,352,364,380,391,400,417,418,439,477,528,533,544,556,728,787,805,818,880,1010,1063,1085,1128,1144,1160,1337,1422,1484,1515,1537,1542,1585,1676,1750,1754 'agent-first':178 'agent-friend':37,83,149,294,543,1421 'agent-n':89,281,309,1127,1536 'agent-readi':86,301,786,1483 'agent-safeti':171 'agent/brief.md':874,1169,1501,1612 'agent/rules':1173,1180,1218 'agent/skills':1189,1198 'agents.md':1243,1573 'ago':1369 'ai':2,15,59,71,137,416,1749 'ai-nat':70 'ai-native-c':1 'alway':484,1626,1703 'always-on':483 'ambigu':916 'annot':850 'answer':242,249 'api':208,555,646,760 'append':1552 'arg':765 'argument':783,915 'array':926 'ask':1794 'audit':164 'auth':975,1042,1361,1373,1388,1531 'auto':433,460,960 'auto-regist':432,459 'auto-upd':959 'autom':160 'automat':231 'axe':240 'back':455 'bad':705,1284 'bad-output':1283 'bar':379 'bash':331,1339 'batch':1056 'behavior':413,430,1137,1165 'best':1577,1738 'better':270 'boolean':922 'boundari':1802 'break':529,1258,1675 'brief':472,497,872,1012,1077,1093,1497 'brief.md':419,1544 'bug':1280 'build':11,44,69,131 'built':120,1262 'built-in':119,1261 'busi':473 'buy':1346 'c1':686 'c2':693 'c3/c4/c5/c7':994 'c6':986 'call':900,1208 'callabl':554 'capabl':458,807 'card':474 'case':1027 'categori':1279 'certif':81,259,290,514,1417,1605 'chain':809,1000 'chang':592,1259,1631 'changelog.md':1256 'char':744 'check':232,1046 'checklist':1407 'clarif':1796 'clean':682 'clear':1769 'cli':4,12,40,47,73,134,146,166,395,550,793,821,1134,1667,1718,1737,1741,1755 'cli-best-practic':1736 'close':212,1049,1157 'closed-loop':1156 'code':31,109,266,607,619,644,654,965,1360,1383,1438,1445,1524,1636,1662,1700 'collabor':1159 'color':345,376,1074 'command':156,481,498,810,831,839,856,869,891,1094,1227,1493,1550 'command-lin':155 'common':1664 'compat':1751 'complianc':169 'compos':681,984 'comprehens':65 'config':355,478,1086 'confirm':736,1103 'conflict':983,1529 'conflict/precondition':1401 'consist':1023 'constraint':431 'content':875,1216,1502,1565 'context':289,486,1205 'contract':27,105,262,414,647,1138,1166 'control':743 'convent':393,901,1005 'core':175,245,260,298,305,546,1424 'cover':20,98 'creat':1321,1541 'create/list/show':1270 'create/list/show/close/transition':1571 'criteria':1805 'd1':825 'd11':861 'd12':1168 'd13':1172 'd14':1197 'd15':871 'd16':877 'd17':1179 'd18':1188 'd2/d5/d6/d8/d10':888 'd3':833 'd4':841 'd7':848 'd9':854 'data':487,690,1455 'declar':846 'deep':508 'default':181,220,322,334,358,388,564,571,878,894,953,1066,1426,1580,1674,1682 'defin':76 'delete/destroy':1108 'demand':507 'deni':218,954,1399 'depend':1294 'describ':797,1773 'descript':36,112,275,470,496,817,859,1091,1186,1195,1226 'design':5,66,154,1742 'destruct':732,962,1104,1471 'detect':759 'directori':392,401,1161,1199,1543 'discov':806,819 'dive':509 'dri':956,1017,1110,1518 'dry-run':955,1016,1109,1517 'e.g':620 'e1':603 'e2/e3':936 'e4':613 'e5':624 'e6':930 'e7':632 'e8':642 'ecosystem':247,280,1130,1539 'effici':1618 'enter':636,1621 'enum':893 'env':774 'env/config':386 'environ':1785 'environment-specif':1784 'error':24,102,217,264,562,596,604,605,614,625,634,643,661,678,713,724,814,928,931,937,940,1356,1358,1396,1404,1435,1437,1450,1464,1597,1625,1635,1694,1713,1727 'everi':223,394,480,855,1207,1211,1221,1230,1549,1596 'exampl':1332,1333,1353,1380 'execut':261,767,1114 'exist':145,1170 'exit':30,108,265,639,653,663,669,674,721,755,964,1382,1444,1523,1627,1661,1699,1704,1732 'expert':1790 'expir':1362,1366 'explicit':276,327,351,381,1067 'export':1253 'extend':457,1149 'extern':949,1292 'f1':1267 'f2':1272 'f3':1278 'f4':1287 'f5':1296 'f6':1303 'f7':1310 'f8':1326 'fail':211,702,1048,1389 'fail-clos':210,1047 'failur':656,667,1709 'fast':703 'feedback':115,454,1142,1234,1260,1570 'field':837,934,1020,1119,1122,1316,1331,1521,1594,1730 'file':772 'filter':1120 'first':180 'flag':328,360,370,577,752,905,947,1004,1009,1059,1060,1432,1505,1514,1590,1657,1687 'flow':449 'focus':1746 'follow':49 'format':347,375,910,1076,1511,1684 'found':981,1393,1527 'four':465 'friend':39,85,151,187,296,344,374,545,804,886,997,1072,1423,1510,1691 'frontmatt':1184,1193 'full':493,1088,1155,1215,1564 'g1':750 'g2':758 'g3':769 'g4/g5/g7':1051 'g6/g9':1044 'g8':778 'general':973,1395,1452,1740 'get':1376,1413 'getting-started.md':462 'github.com':1759 'github.com/chaosrealmsai/agent-cli-spec)':1758 'go':697 'goal':549,792,1133 'guard':1469 'guardrail':29,107,745,1033,1474 'guid':1235 'handl':25,103,561 'handler':1436 'help':492,826,838,862,866,892,1013,1087,1488,1492 'hour':1368 'human':186,193,341,343,371,373,628,882,885,1011,1069,1071,1504,1509,1670,1686,1690 'human-friend':185,342,372,884,1070,1508,1689 'human-read':627,1669 'i1':903 'i2':912 'i3/i6/i7':918 'i4':708 'i5':718 'i8/i9':1035 'id':1317,1343 'idempot':1001 'ident':411,1081,1136,1163 'immedi':640,1628,1733 'implement':1406,1408 'implicit':1037 'includ':518,932,1213,1223,1232,1592 'increment':1608 'info':1647 'inject':475 'inlin':288,1204 'input':26,104,200,701,706,747,898,921,950,1722,1799 'integr':284,1240 'interact':601,637,715,988,1041,1466,1622,1723 'interfac':158 'invok':140,558 'issu':122,287,490,501,1097,1233,1264,1268,1288,1297,1299,1304,1311,1328,1352,1555,1567 'jq':584 'json':22,100,184,263,326,335,361,382,566,574,576,581,588,829,864,879,920,941,1064,1092,1312,1335,1357,1429,1431,1491,1582,1632,1680,1714 'json-input':919 'kebab':1026 'kebab-cas':1025 'keep':1611 'key':761,775 'layer':233,241,255,293,313,1410 'learn':1146 'level':82,204,466,517,524,541,784,1030,1053,1125,1239,1418,1604 'limit':1057,1761 'line':157 'list':333,340,349,1298,1341,1559 'local':1290 'log':694,1458,1644 'logic':215 'long':908 'long-nam':907 'loop':116,1143,1158 'm1':1242 'm2':1248 'm3':1255 'machin':271,617 'machine-read':616 'make':53,1679 'map':291 'mark':963,1257 'match':1770 'max':1028 'mcp':1250 'md':1181,1190 'messag':608,630,1320,1363,1439 'meta':1236 'metacharact':781,1480 'migrat':257 'milk':1347 'mismatch':720 'miss':621,709,1461,1721,1807 'mistak':729 'mode':277,321,325,338,353,383,638,881,992,1338,1623,1692 'model':234,1606 'modifi':46 'must':397,582,590,648,662,668 'myc':332,339,348,1340,1372 'n1/n2/n3/n5/n6':1022 'n4':1007 'name':504,800,909,1002,1024,1185,1194,1225 'nativ':3,72,91,283,311,1129,1538 'need':357,366,578,1433,1587 'never':365,600,635,673,714,1465,1586 'new':133,1378 'next':1416 'nice':538 'no-x':923 'non':671,1040,1706 'non-interact':1039 'non-zero':670,1705 'not-found':979 'note':1062 'o1':570 'o2':580 'o3':587 'on-demand':505 'one':420,1079,1562,1614 'one-paragraph':1078 'op':733,1105 'open/in-progress/resolved/closed':1308 'oper':1472 'opt':190 'opt-in':189 'option':1249 'orthogon':239 'output':23,101,182,320,336,563,572,827,863,873,895,1065,1073,1118,1121,1285,1336,1427,1500,1583,1668,1683,1779 'overrid':354,387,1068 'overview':63 'p0':251,527,569,579,586,602,612,623,631,641,658,665,685,692 'p0/p1/p2':95 'p1':252,532,707,717,730,737,749,757,768,777,824,832,840,847,853,860,870,876,902,911,929,944,966,985,1006,1034,1043,1167,1171,1178,1187,1209,1219,1228 'p2':253,537,887,917,935,951,970,993,1021,1050,1196,1241,1247,1254,1266,1271,1277,1286,1295,1302,1309,1325 'paragraph':421,1080,1615 'param':711,927,1449,1462 'param/usage':1403 'paramet':843,849 'parameter/usage':660 'pars':559,1677 'pass':300,308,314,583 'path':741,773,1477 'pattern':763,1743 'pem':776 'per':890 'per-command':889 'permiss':977,1052,1398,1533,1800 'phase':1412,1419,1481,1534 'philosophi':176 'pii':1054 'pipe':683,803,991,996,999 'pipe-friend':802,995 'pipelin':161 'pitfal':1665 'poor':536 'posit':914 'practic':1578,1739 'precondit':1045 'predict':655,1003 'preview':1112 'previous':523 'priorit':93 'prioriti':248,525 'problem':1154,1666,1693,1717 'progress':378,695,1646 'project':404,1238,1245,1575 'project-level':1237 'prompt':716,989,1719 'protect':726,748 'public':207 'put':1643 'queryabl':1301 'quick':1405 'quiet':998,1019,1115,1520 'r1':1210 'r2':1220 'r3':1229 'read':1498 'readabl':618,629,1671 'readi':88,303,788,1485 'recommend':246,269,306,789,1486 'redact':1055 'refresh':1374 'regist':434,461 'reject':739,753,766,770,779,1475,1659 'relat':1734 'reliabl':57 'renam':650 'report':677,1153,1695 'repositori':1757 'requir':94,515,622,710,734,836,1106,1281,1315,1798 'required/optional':852 'reserv':1008,1058,1513 'resourc':1391,1753 'respons':482,1202,1212,1222,1231,1551,1598 'result':1342 'retrofit':143 'return':1489,1725 'review':1791 'richer':278 'rollout':243 'root':405,1246,1576 'rule':9,51,78,224,299,307,429,488,499,520,548,791,867,1095,1132,1214,1350,1494,1553 'rules/trigger.md':1545 'rules/workflow.md':1546 'rules/writeback.md':1547 'run':957,1018,1111,1371,1519 'runtim':746 's1':731 's2/s3/s5/s6/s7':952 's4':738 's8':945 'safe':18,55 'safeti':28,106,173,268,725,943,1801 'sanit':946 'save':1123 'schema':279,568,589,834,896,1252,1633 'scope':244,1772 'secret':1476 'self':35,111,274,469,495,796,816,1090 'self-describ':795 'self-descript':34,110,273,468,494,815,1089 'semant':684,1061 'semver':1032,1099 'sensit':771 'servic':1293 'sever':250 'shell':780,1479 'show':1300,1561 'signal':657 'silent':1658 'skill':128,286,456,489,500,503,513,868,1096,1139,1200,1224,1351,1495,1554,1557,1735,1745,1764 'skill-ai-native-cli' 'solut':1678,1702,1724 'source-sickn33' 'spec':6,41,97,236,1756 'specif':67,512,1747,1786 'stabl':553,567 'standard':174 'state':1038 'status':1306,1319,1330,1348 'stderr':599,611,699,939,1117,1442,1457,1651,1716 'stdout':363,680,687,1454,1649,1697 'stdout/stderr':267 'step':318,389,445,447,463 'step-by-step':444 'stop':1792 'store':1289 'string':1101 'structur':21,99,597,712,723,828,1203,1273,1355,1463,1490,1712,1726 'subcommand':1201,1269,1558,1568 'submiss':1274 'substitut':1782 'success':969,1386,1447,1804 'suggest':609,933,1282,1370,1440,1593,1729 'suppress':1116 'switch':330,1506 'sync':1083 'system':123,1140,1265 'tabl':346,377,1075,1384 'tag':526 'task':1768 'test':1788 'text':1672 'three':80,1603 'three-level':1602 'titl':1345 'todo':1349 'token':762,1124,1365,1379,1617 'tool':13,48,74,135,167,396,409,442,1148,1162,1251 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'track':1307 'travers':742,1478 'treat':1777 'trial':812 'trigger.md':435,1175 'true':606,1359 'two':238 'type':719,845,1318 'unambigu':899 'unknown':751,1656 'untrust':197 'updat':961,1323 'usag':448 'use':19,62,126,129,141,152,162,237,254,384,440,906,1151,1600,1650,1762 'ux':272 'v0.1':42 'valid':198,214,585,942,1787 'verifi':222 'version':595,652,897,1014,1031,1098,1100,1516,1640 'version/context/exit_code':1276 'via':117,192 'warn':696 'well':799 'well-nam':798 'within':593,1637 'without':530,811,1113 'work':317,534 'workflow.md':443,1176 'write':453,1711 'writeback.md':450,1177 'written':226 'x':925 'x1':967 'x2/x4-x8':971 'x3':659 'x9':666 'yaml':1183,1192 'yes':735,1015,1102,1468 'zero':672,1707","prices":[{"id":"1d528f99-b620-4b94-83cf-282034549c91","listingId":"eda1bfbe-a03d-4b70-ba8b-73803cf24087","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:30:43.579Z"}],"sources":[{"listingId":"eda1bfbe-a03d-4b70-ba8b-73803cf24087","source":"github","sourceId":"sickn33/antigravity-awesome-skills/ai-native-cli","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/ai-native-cli","isPrimary":false,"firstSeenAt":"2026-04-18T21:30:43.579Z","lastSeenAt":"2026-04-25T00:50:24.709Z"}],"details":{"listingId":"eda1bfbe-a03d-4b70-ba8b-73803cf24087","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"ai-native-cli","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34964,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"89aea8062d410bbe70a2e3d2208c47975da1c337","skill_md_path":"skills/ai-native-cli/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/ai-native-cli"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"ai-native-cli","description":"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."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/ai-native-cli"},"updatedAt":"2026-04-25T00:50:24.709Z"}}