write-cli 的用途是在编写或评审命令行工具之前,系统性地做一轮 CLI 设计检查。它把每条规则表述为可直接回答的是/否问题,强调照实回答而非自我辩解。
主要能力围绕几个方面。签名形态:优先使用标志而非位置参数,位置参数最多两个且仅用于最主要、易记的操作(如 cp <src> <dst>);每个标志都有完整长名,-h 对应 --help、-v 对应 --verbose,短名只给肌肉记忆型标志;避免含义混杂的位置参数;参数顺序无关,命令与标志前后皆可。
命名:标志名跨子命令复用,--json 始终表示 JSON 输出;遵循标准标志表(-a/--all、-d/--debug、-f/--force、-h/--help、--json、--no-input、-o/--output、-p/--port、-q/--quiet、-u/--user、--version),偏离需有记录理由;动词集保持一致,如 list、get、create、update、delete。
帮助与发现:三层渐进式披露,cmd 给出简短用法与一个示例,cmd subcmd 给出子命令参数,--help 给出全部;以可复制的示例开头而非选项目录;输入无效时给出纠正建议,如“Did you mean ps?”。
输出:stdout 放数据,stderr 放消息;机器可读输出提供 --json,并可搭配 --jq 或 --filter;--quiet 抑制非必要输出;默认人类可读,提供 --plain 供 grep/awk 使用。
错误:每个错误既说明发生了什么,也说明下一步怎么做;不向用户暴露原始堆栈跟踪,意外错误给出调试日志路径与报告 URL。
安全与可脚本化:不在标志中传密钥,改用 --password-file、环境变量或 stdin;每个交互提示都有对应标志回退;破坏性操作需 --force 或确认,严重破坏需输入资源名;成功退出 0,失败非 0,不同失败模式对应不同退出码。
功能与形式:默认值应适合 90% 用户;跨多个底层操作的动作应合并为一条命令,例如 merge。
限制:资料未说明该工具的具体安装方式、运行环境、收费模式或可用平台,暂未提供。