关于 create-cli
create-cli 是一项帮助设计命令行界面的技能,面向人类用户和脚本使用场景。它依据 CLI 指南整理命令结构、输入输出、安全规则和配置等实现规格。
主要功能
- 01按 CLI 指南设计命令界面
- 02梳理命令树与参数规格
- 03定义输入输出及错误处理
- 04规划配置优先级与环境变量
- 05纳入交互与破坏性操作安全规则
- 06提供常见调用示例
适用场景
- 01为新命令行工具制定规格
- 02设计适用于脚本的输出契约
- 03明确交互提示与危险操作确认
- 04规划配置来源及优先级
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jakenuts/ agent-skills --skill create-cli安装后在 Claude Code 中输入/create-cli确认已加载。
附带文件references/cli-guidelines.md
详细介绍
创建命令行界面
设计命令行界面(语法 + 行为),以人为本,便于脚本使用。
首先执行
- 阅读
references/cli-guidelines.md,并将其作为默认评估准则。 - 上游/完整指南:https://clig.dev/(提议修改:https://github.com/cli-guidelines/cli-guidelines)
- 只提出确定界面所需的最少澄清问题。
快速澄清
先提问;如果用户不确定,则采用最合理的默认设置继续:
- 命令名称 + 一句话用途。
- 主要用户:人、脚本,还是两者兼有。
- 输入来源:参数还是标准输入;文件还是 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:快速退出;清理时间有上限;尽可能采用崩溃即退出的设计。
模板(复制到你的回答中)
命令行界面规范框架
填写以下部分,删除不相关内容:
- 名称:
mycmd - 一句话说明:
... - USAGE:
mycmd [global flags] <subcommand> [args]
- 子命令:
mycmd init ...mycmd run ...
- 全局标志:
-h, --help--version-q, --quiet/-v, --verbose(明确具体行为)--json/--plain(如适用)
- 输入/输出约定:
- 标准输出:
- 标准错误:
- 退出代码:
0成功1常规失败2用法无效(解析/验证错误)- (仅在确有用处时添加命令专属代码)
- 环境变量/配置:
- 环境变量:
- 配置文件路径 + 优先级:
- 示例:
- …
备注
- 只有在用户提出要求时,才建议特定语言的解析库;否则请保持语言无关。
- 如果用户的请求是“设计参数”,不要偏离主题去讨论实现。
评论
支持 Markdown