mcpField
C
create-cli

create-cli

github.com/jakenuts开发2143 次安装16 周前更新
代码仓库

关于 create-cli

create-cli 是一项帮助设计命令行界面的技能,面向人类用户和脚本使用场景。它依据 CLI 指南整理命令结构、输入输出、安全规则和配置等实现规格。

主要功能

  1. 01按 CLI 指南设计命令界面
  2. 02梳理命令树与参数规格
  3. 03定义输入输出及错误处理
  4. 04规划配置优先级与环境变量
  5. 05纳入交互与破坏性操作安全规则
  6. 06提供常见调用示例

适用场景

  1. 01为新命令行工具制定规格
  2. 02设计适用于脚本的输出契约
  3. 03明确交互提示与危险操作确认
  4. 04规划配置来源及优先级

安装

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

$npx skills add https://github.com/jakenuts/agent-skills --skill create-cli

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

附带文件references/cli-guidelines.md

详细介绍

创建命令行界面

设计命令行界面(语法 + 行为),以人为本,便于脚本使用。

首先执行

快速澄清

先提问;如果用户不确定,则采用最合理的默认设置继续:

  • 命令名称 + 一句话用途。
  • 主要用户:人、脚本,还是两者兼有。
  • 输入来源:参数还是标准输入;文件还是 URL;机密信息(绝不通过标志传入)。
  • 输出约定:人类可读文本、--json、--plain、退出代码。
  • 交互方式:是否允许提示?是否需要 --no-input?破坏性操作是否需要确认?
  • 配置模型:标志/环境变量/配置文件;优先级;XDG 与仓库本地配置的选择。
  • 平台/运行时限制:macOS/Linux/Windows;单个二进制文件还是运行时环境。

交付内容(输出内容)

设计命令行界面时,请提供一份精简规范,供用户实现:

  • 命令树 + USAGE 语法。
  • 参数/标志表(类型、默认值、必选/可选、示例)。
  • 子命令语义(各自的作用;是否幂等;状态变更)。
  • 输出规则:标准输出与标准错误;TTY 检测;--json/--plain;--quiet/--verbose。
  • 错误与退出代码映射(主要失败情形)。
  • 安全规则:--dry-run、确认、--force、--no-input。
  • 配置/环境变量规则与优先级(标志 > 环境变量 > 项目配置 > 用户配置 > 系统配置)。
  • Shell 补全方案(如适用):安装/易发现性;生成命令或内置脚本。
  • 5–10 个调用示例(常见流程;包括管道/标准输入示例)。

默认约定(除非用户另有说明)

  • -h/--help 始终显示帮助,并忽略其他参数。
  • --version 将版本输出到标准输出。
  • 主要数据输出到标准输出;诊断信息/错误输出到标准错误。
  • 添加 --json 以供机器处理;考虑添加 --plain,输出稳定的逐行文本。
  • 仅当标准输入为 TTY 时才显示提示;--no-input 禁用提示。
  • 破坏性操作:交互模式下要求确认;非交互模式下要求 --force 或显式指定 --confirm=...。
  • 遵循 NO_COLOR、TERM=dumb;提供 --no-color。
  • 处理 Ctrl-C:快速退出;清理时间有上限;尽可能采用崩溃即退出的设计。

模板(复制到你的回答中)

命令行界面规范框架

填写以下部分,删除不相关内容:

  1. 名称:mycmd
  2. 一句话说明:...
  3. USAGE:
    • mycmd [global flags] <subcommand> [args]
  4. 子命令:
    • mycmd init ...
    • mycmd run ...
  5. 全局标志:
    • -h, --help
    • --version
    • -q, --quiet / -v, --verbose(明确具体行为)
    • --json / --plain(如适用)
  6. 输入/输出约定:
    • 标准输出:
    • 标准错误:
  7. 退出代码:
    • 0 成功
    • 1 常规失败
    • 2 用法无效(解析/验证错误)
    • (仅在确有用处时添加命令专属代码)
  8. 环境变量/配置:
    • 环境变量:
    • 配置文件路径 + 优先级:
  9. 示例:
    • …

备注

  • 只有在用户提出要求时,才建议特定语言的解析库;否则请保持语言无关。
  • 如果用户的请求是“设计参数”,不要偏离主题去讨论实现。

评论

支持 Markdown