mcpField
C
cli-for-agents

cli-for-agents

github.com/pproenca开发220225 次安装11 周前更新
代码仓库

关于 cli-for-agents

cli-for-agents 为开发者提供面向 AI Agent 和脚本的命令行设计与审查规范。45 条规则涵盖八个类别,从非交互操作到命令结构。

主要功能

  1. 01八类共 45 条规则
  2. 02非交互操作设计指南
  3. 03帮助文本与错误消息规范
  4. 04破坏性操作安全指南
  5. 05输出、重试与命令结构规范

适用场景

  1. 01设计面向 Agent 的新命令行工具
  2. 02审查现有 CLI 的无头操作能力
  3. 03改进帮助文本和错误消息
  4. 04让命令输出便于串接处理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill cli-for-agents

安装后在 Claude Code 中输入/cli-for-agents确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
err-actionable-fix.md
err-exit-fast-on-missing-required.md
err-include-example-invocation.md
err-no-stack-traces-by-default.md
err-non-zero-exit-codes.md
err-stderr-not-stdout.md
help-examples-in-help.md
help-flag-summary.md
help-layered-discovery.md
help-no-flag-required.md
help-per-subcommand.md
help-suggest-next-steps.md
idem-create-or-skip.md
idem-retry-safe.md
idem-stable-identifiers.md
idem-stable-output-on-skip.md
idem-state-reconciliation.md
input-accept-stdin-dash.md
input-env-var-fallback.md
input-flags-over-positional.md
input-no-prompt-fallback.md
input-stdin-for-secrets.md
interact-detect-tty.md
interact-flags-first.md
interact-no-arrow-menus.md
interact-no-hang-on-stdin.md

详细介绍

面向 Agent 的 CLI 设计最佳实践

面向 AI Agent 和脚本的命令行界面设计规范与评审标准,不仅适用于在提示符处输入命令的人类用户。以人为中心的 CLI 常常会阻碍 Agent:交互式提示、开篇文档过长、帮助文本缺少可复制粘贴的示例、错误消息没有修复建议、没有试运行模式。本技能按影响范围排序规则——从“Agent 完全无法使用此 CLI”(严重)到“Agent 需要多查看一次帮助”(中等)。

构建新的 CLI 和评审现有 CLI 是否方便 Agent 使用时,都可使用本技能。

本技能包含 8 个类别的 45 条规则。

适用场景

在以下情况下,请参考这些指南:

  • 为任何子命令编写 --help 文本
  • 设计新的标志、参数或子命令
  • 编写错误消息或设置退出码
  • 添加需要试运行或确认的破坏性操作
  • 在交互式提示和仅使用标志的输入方式之间做出选择
  • 设计成功输出,以便 Agent 能够串联命令
  • 评审现有 CLI 是否出现无头使用方面的回归

按优先级划分的规则类别

优先级类别影响前缀
1非交互式操作严重interact-
2帮助文本设计高help-
3错误消息高err-
4破坏性操作安全性高safe-
5输入处理高input-
6输出格式中高output-
7幂等性与重试中高idem-
8命令结构中struct-

注意:help-examples-in-help 在高优先级的 help- 类别中被评为严重,因为其具体问题——帮助文本没有示例——会让其他所有帮助规则都失去意义。类别标签反映的是平均水平,而非最严重的情况。

快速参考

1. 非交互式操作(严重)
2. 帮助文本设计(高)
3. 错误消息(HIGH)
4. 破坏性操作安全(HIGH)
5. 输入处理(HIGH)
6. 输出格式(MEDIUM-HIGH)
7. 幂等性与重试(MEDIUM-HIGH)
8. 命令结构(中)

使用方法

构建新的 CLI 时

从 CRITICAL 开始,逐项向下检查。前两个类别(interact- 和 help-)不可妥协——如果违反其中任何一条规则,无论其他部分做得多好,Agent 都无法使用该 CLI。完成这两类后,再依次检查 err-、safe- 和 input-——大多数实际使用中的阻碍都出现在这里。output-、idem- 和 struct- 则是锦上添花,能在多次调用中累积效果。

审查现有 CLI 时

按优先级依次检查以下清单:

  1. 非交互路径 — 使用 --no-input 调用每个子命令,或通过 </dev/null 运行,检查哪些命令会挂起
  2. 分层帮助 — mycli --help 是否只列出子命令,还是会输出所有内容?
  3. --help 中的示例 — 每个子命令的帮助信息末尾都应包含可运行的 Examples 部分
  4. 包含调用信息的错误消息 — 每条错误是否都明确告知调用方应添加哪个标志?
  5. stdin/管道支持 — 能否将输出通过管道传入输入?- 是否表示 stdin?
  6. 退出代码 — 用法错误(2)、运行时失败(1)和暂时性失败(69)是否彼此区分?
  7. 试运行 — 每个破坏性命令是否都有 --dry-run(或等效选项)?
  8. 跳过确认 — 每个破坏性命令是否都有 --yes/--force?
  9. 一致的命令结构 — service list、deploy list 和 config list 是否都存在且行为一致?
  10. 结构化成功输出 — deploy 是否会返回供 Agent 后续使用的 deploy_id?
单项规则

阅读各参考文件,了解详细说明和代码示例:

参考文件

文件描述
references/_sections.md类别定义和排序
assets/templates/_template.md新规则模板
metadata.json版本和参考信息

评论

支持 Markdown