命令优化Skill command-optimization

命令优化技能专精于命令行界面(CLI)的开发与设计,专注于创建高效、用户友好的命令工具。核心功能包括:CLI命令设计、参数解析、任务自动化、用户体验优化、错误处理及文档编写。适用于开发人员、DevOps工程师和系统管理员,用于提升命令行工具的效率与易用性。关键词:CLI命令开发、命令行界面优化、参数解析设计、任务自动化、用户体验改进、错误处理最佳实践、命令文档编写、DevOps工具链。

DevOps 0 次安装 0 次浏览 更新于 2/28/2026

name: command-optimization description: CLI命令开发专家。适用于创建命令、设计参数解析、自动化任务或实施CLI最佳实践。专攻命令设计模式和用户体验。 author: Joseph OBrien status: unpublished updated: ‘2025-12-23’ version: 1.0.1 tag: skill type: skill

命令优化

此技能专精于创建、设计和优化命令行界面。它专注于命令设计模式、参数解析、任务自动化和CLI最佳实践。

何时使用此技能

  • 创建新的CLI命令时
  • 设计命令界面时
  • 优化现有命令时
  • 实施参数解析时
  • 通过CLI自动化任务时
  • 改进命令用户体验时

此技能的功能

  1. 命令设计:创建结构良好的CLI命令
  2. 参数解析:设计直观的参数和选项结构
  3. 任务自动化:通过命令自动化重复性任务
  4. 用户体验:改进命令的可用性和反馈
  5. 错误处理:实施稳健的错误处理和验证
  6. 文档编写:创建清晰的命令文档和帮助文本

使用方法

创建命令

创建一个用于生成React组件的命令
为数据库迁移设计一个CLI命令

优化命令

改进此命令的用户体验

命令设计模式

面向任务的命令

结构:

  • 清晰的动作动词(生成、创建、构建)
  • 目标对象(组件、迁移、测试)
  • 用于自定义的选项
  • 有用的输出和反馈

示例:

# 好:清晰且可操作
npm run generate:component UserProfile

# 差:目的不明确
npm run make UserProfile

分析命令

结构:

  • 分析类型(分析、检查、审计)
  • 要分析的目标
  • 输出格式选项
  • 可操作的建议

示例:

# 好:清晰的分析命令
npm run analyze:dependencies -- --outdated

# 差:模糊的命令
npm run check

参数处理

文件/目录参数

模式:

  • 接受单个文件或目录
  • 支持通配符模式
  • 验证存在性
  • 处理权限

示例:

# 单个文件
lint src/utils.js

# 目录
lint src/

# 通配符模式
lint "src/**/*.js"

配置选项

常用选项:

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

错误处理

输入验证

检查:

  • 文件/目录存在性
  • 读/写权限
  • 文件格式有效性
  • 必需的依赖项
  • 配置语法

错误消息

好的错误消息:

  • 问题的清晰描述
  • 具体位置(文件、行)
  • 建议的修复方法
  • 关于失败原因的上下文

示例:

# 好
错误:未找到配置文件:.eslintrc.json
  运行 'npm run init:config' 来创建它。

# 差
错误:未找到文件

示例

示例1:组件生成器命令

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

输出

## 命令:generate:component

### 用法
```bash
npm run generate:component 组件名称 [选项]

选项

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

示例

# 基本组件
npm run generate:component UserCard

# 带选项
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('错误:需要组件名称');
  console.log('用法:npm run generate:component <名称>');
  process.exit(1);
}

generateComponent(componentName, options);

示例2:数据库迁移命令

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

输出

## 命令:db:migrate

### 用法
```bash
npm run db:migrate [迁移名称] [选项]

选项

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

示例

# 创建迁移
npm run db:migrate --create users

# 运行迁移
npm run db:migrate

# 检查状态
npm run db:migrate --status

# 回滚
npm run db:migrate --rollback

## 参考文件

- **`references/SLASH_COMMAND.template.md`** - 包含前端元数据、动态上下文和工作流结构的斜杠命令模板

## 最佳实践

### 命令设计

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

### 用户体验

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

### 文档

- **帮助文本**:为每个命令提供清晰、简洁的帮助
- **示例**:包含实际示例
- **错误消息**:解释出错原因及如何修复
- **README**:在项目README中记录命令

## 相关用例

- 创建特定于项目的命令
- 自动化开发任务
- 构建CLI工具
- 改进命令可用性
- 标准化命令模式