SuperAPI AI 工具集

command-optimization

编程与开发

查看项目

更新于 10-13 17:19

技能介绍

用途

Command Optimization 是一个 CLI 命令开发专项技能,围绕命令设计模式、参数解析、任务自动化和 CLI 最佳实践展开。它适用于创建新 CLI 命令、设计命令接口、优化现有命令、实现参数解析、通过 CLI 自动化任务以及改进命令用户体验。

主要能力

  • 命令设计:创建结构良好的 CLI 命令。
  • 参数解析:设计直观的参数与选项结构。
  • 任务自动化:通过命令自动化重复性任务。
  • 用户体验:改善命令可用性与反馈。
  • 错误处理:实现健壮的错误处理与校验。
  • 文档:生成清晰的命令文档与帮助文本。

使用方式

资料给出的触发式用法示例包括:

  • 创建命令:如“Create a command to generate React components”“Design a CLI command for database migrations”。
  • 优化命令:如“Improve the user experience of this command”。

命令设计模式

任务导向命令

结构包括:清晰的动作动词(generate、create、build)、目标对象(component、migration、test)、用于定制的选项、有帮助的输出与反馈。

示例对比:

# Good: Clear and actionable
npm run generate:component UserProfile

# Bad: Unclear purpose
npm run make UserProfile

分析类命令

结构包括:分析类型(analyze、check、audit)、被分析目标、输出格式选项、可执行的建议。

示例对比:

# Good: Clear analysis command
npm run analyze:dependencies -- --outdated

# Bad: Vague command
npm run check

参数处理

文件/目录参数

模式:接受单个文件或目录、支持 glob 模式、校验存在性、处理权限。

示例:

# Single file
lint src/utils.js

# Directory
lint src/

# Glob pattern
lint "src/**/*.js"

配置选项

常见选项:

  • --config:自定义配置文件
  • --output:输出目录或格式
  • --verbose:详细日志
  • --dry-run:仅预览不执行
  • --force:覆盖安全检查

错误处理

输入校验

检查内容包括:文件/目录存在性、读写权限、文件格式有效性、所需依赖、配置语法。

错误信息

好的错误信息应包含:问题的清晰描述、具体位置(文件、行)、建议的修复方式、失败原因的背景。

示例:

# Good
Error: Configuration file not found: .eslintrc.json
  Run 'npm run init:config' to create it.

# Bad
Error: File not found

示例

示例 1:组件生成命令

输入:创建一个生成 React 组件的命令。

输出:

命令名:generate:component

用法:

npm run generate:component ComponentName [options]

选项:

  • --path <path>:输出路径(默认:src/components)
  • --type <type>:组件类型(functional|class)(默认:functional)
  • --with-tests:生成测试文件
  • --with-styles:生成样式表

示例:

# Basic component
npm run generate:component UserCard

# With options
npm run generate:component UserCard --path src/features/users --with-tests --with-styles

实现片段:

// scripts/generate-component.js
const componentName = process.argv[2];
const options = parseArgs(process.argv.slice(3));

if (!componentName) {
  console.error('Error: Component name required');
  console.log('Usage: npm run generate:component <Name>');
  process.exit(1);
}

generateComponent(componentName, options);

示例 2:数据库迁移命令

输入:创建一个数据库迁移命令。

输出:

命令名:db:migrate

用法:

npm run db:migrate [migration-name] [options]

选项:

  • --create <table>:为表创建新迁移
  • --rollback:回滚上一次迁移
  • --status:显示迁移状态
  • --to <version>:迁移到指定版本

示例:

# Create migration
npm run db:migrate --create users

# Run migrations
npm run db:migrate

# Check status
npm run db:migrate --status

# Rollback
npm run db:migrate --rollback

参考文件

  • references/SLASH_COMMAND.template.md:带 frontmatter、动态上下文和工作流结构的斜杠命令模板。

最佳实践

命令设计

  1. 清晰的命名:使用描述性、面向动作的名称。
  2. 一致的风格:遵循项目约定。
  3. 有用的默认值:为常见用例设置合理默认。
  4. 良好的反馈:清晰的输出和进度指示。
  5. 错误处理:优雅失败并提供有帮助的信息。

用户体验

  • 渐进式披露:展示基本用法,在帮助中提供高级选项。
  • 校验:尽早校验输入并给出清晰错误。
  • 确认:破坏性操作需请求确认。
  • 试运行:支持 --dry-run 预览。
  • 详细模式:--verbose 输出详细信息。

文档

  • 帮助文本:为每个命令提供清晰简洁的帮助。
  • 示例:包含实用示例。
  • 错误信息:说明出错原因及修复方式。
  • README:在项目 README 中记录命令。

相关使用场景

  • 创建项目专用命令
  • 自动化开发任务
  • 构建 CLI 工具
  • 改善命令可用性
  • 统一命令模式

限制

资料未说明该技能的收费、价格、支持平台、具体安装步骤或量化效果,这些信息暂未提供。