命令行优化Skill command-optimization

命令行优化技能专注于设计、创建和优化命令行界面,提升开发效率与用户体验。核心功能包括命令设计模式、参数解析、任务自动化、错误处理及文档编写。适用于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 工具
- 改进命令可用性
- 标准化命令模式