SuperAPI AI 工具集

cli-developer

编程与开发

查看项目

更新于 10-16 09:07

技能介绍

CLI Developer 是一项用于构建命令行工具的 Claude 技能,适用于构建 CLI 工具、实现参数解析或添加交互式提示的场景。其核心工作流分为五步:

一、分析 UX。识别用户工作流、命令层级与常见任务。在编写代码之前,通过列出所有命令及其预期的 --help 输出来进行验证。

二、设计命令。规划子命令、标志、参数与配置。确认标志命名一致,且未破坏现有签名。

三、实现。使用适合该语言的 CLU 框架进行构建(见参考指南)。在接好命令后,运行 <cli> --help 以验证帮助文本渲染正确,运行 <cli> --version 确认版本输出。

四、打磨。添加补全、帮助文本、错误消息与进度指示。验证颜色输出的 TTY 检测以及 SIGINT 的优雅处理。

五、测试。运行跨平台冒烟测试;基准化启动时间(目标:<50ms)。

参考指南按主题提供详细指引:设计模式(子命令、标志、配置、架构)见 references/design-patterns.md;Node.js CLI(commander、yargs、inquirer、chalk)见 references/node-cli.md;Python CLI(click、typer、argparse、rich)见 references/python-cli.md;Go CLI(cobra、viper、bubbletea)见 references/go-cli.md;UX 模式(进度条、颜色、帮助文本)见 references/ux-patterns.md。

快速上手示例:Node.js 使用 commander,代码为:

#!/usr/bin/env node // npm install commander const { program } = require('commander');

program .name('mytool') .description('Example CLI') .version('1.0.0');

program .command('greet <name>') .description('Greet a user') .option('-l, --loud', 'uppercase the greeting') .action((name, opts) => { const msg = Hello, ${name}!; console.log(opts.loud ? msg.toUpperCase() : msg); });

program.parse();

Python(click/typer)与 Go(cobra)的快速上手示例见 references/python-cli.md 与 references/go-cli.md。

约束方面,MUST DO 包括:保持启动时间低于 50ms;提供清晰可操作的错误消息;支持 --help 与 --version 标志;使用一致的标志命名约定;优雅处理 SIGINT(Ctrl+C);尽早验证用户输入;同时支持交互式与非交互式模式;在 Windows、macOS 与 Linux 上测试。MUST NOT DO 包括:不必要地阻塞于同步 I/O,应改用异步读取或流处理;当输出将被管道传输时不要打印到 stdout,日志/诊断应写入 stderr;输出非 TTY 时不要使用颜色,应用前先检测。提供的跨语言检测代码为:Node.js 使用 const useColor = process.stdout.isTTY; Python 使用 import sys;use_color = sys.stdout.isatty();Go 使用 import "golang.org/x/term";useColor := term.IsTerminal(int(os.Stdout.Fd()))。此外,不要破坏现有命令签名,标志/子命令重命名应视为破坏性变更;不要在 CI/CD 环境中要求交互式输入,应始终通过标志或环境变量提供非交互式回退;不要硬编码路径或平台特定逻辑,应使用 os.homedir() / os.UserHomeDir() / Path.home();不要在没有 shell 补全的情况下发布,上述三个框架均有内置的补全生成功能。

输出模板方面,实现 CLI 功能时应提供:命令结构(主入口点、子命令);配置处理(文件、环境变量、标志);带错误处理的核心实现;如适用则提供 shell 补全脚本;以及关于 UX 决策的简要说明。

知识参考涵盖:CLI 框架(commander、yargs、oclif、click、typer、argparse、cobra、viper)、终端 UI(chalk、inquirer、rich、bubbletea)、测试(快照测试、E2E)、分发(npm、pip、homebrew、releases)、性能优化。该技能由 @jeffallan 维护,其为 Synergetic Solutions 的首席顾问。