CLI command development specialist. Use when creating commands, designing
Scanned 2/12/2026
Install to Claude Code
npx -y skills add majiayu000/claude-skill-registry --skill command-optimization --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Command Optimization?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-command-optimization)More formats (shields.io, HTML) on the badges page.
---
name: command-optimization
description: CLI command development specialist. Use when creating commands, designing
argument parsing, automating tasks, or implementing CLI best practices. Specializes
in command design patterns and user experience.
author: Joseph OBrien
status: unpublished
updated: '2025-12-23'
version: 1.0.1
tag: skill
type: skill
---
# Command Optimization
This skill specializes in creating, designing, and optimizing command-line interfaces. It focuses on command design patterns, argument parsing, task automation, and CLI best practices.
## When to Use This Skill
- When creating new CLI commands
- When designing command interfaces
- When optimizing existing commands
- When implementing argument parsing
- When automating tasks via CLI
- When improving command user experience
## What This Skill Does
1. **Command Design**: Creates well-structured CLI commands
2. **Argument Parsing**: Designs intuitive argument and option structures
3. **Task Automation**: Automates repetitive tasks through commands
4. **User Experience**: Improves command usability and feedback
5. **Error Handling**: Implements robust error handling and validation
6. **Documentation**: Creates clear command documentation and help text
## How to Use
### Create Command
```
Create a command to generate React components
```
```
Design a CLI command for database migrations
```
### Optimize Command
```
Improve the user experience of this command
```
## Command Design Patterns
### Task-Oriented Commands
**Structure:**
- Clear action verb (generate, create, build)
- Target object (component, migration, test)
- Options for customization
- Helpful output and feedback
**Example:**
```bash
# Good: Clear and actionable
npm run generate:component UserProfile
# Bad: Unclear purpose
npm run make UserProfile
```
### Analysis Commands
**Structure:**
- Analysis type (analyze, check, audit)
- Target to analyze
- Output format options
- Actionable recommendations
**Example:**
```bash
# Good: Clear analysis command
npm run analyze:dependencies -- --outdated
# Bad: Vague command
npm run check
```
## Argument Handling
### File/Directory Arguments
**Pattern:**
- Accept single file or directory
- Support glob patterns
- Validate existence
- Handle permissions
**Example:**
```bash
# Single file
lint src/utils.js
# Directory
lint src/
# Glob pattern
lint "src/**/*.js"
```
### Configuration Options
**Common Options:**
- `--config`: Custom configuration file
- `--output`: Output directory or format
- `--verbose`: Detailed logging
- `--dry-run`: Preview without execution
- `--force`: Override safety checks
## Error Handling
### Input Validation
**Check:**
- File/directory existence
- Read/write permissions
- File format validity
- Required dependencies
- Configuration syntax
### Error Messages
**Good Error Messages:**
- Clear description of the problem
- Specific location (file, line)
- Suggested fix
- Context about why it failed
**Example:**
```bash
# Good
Error: Configuration file not found: .eslintrc.json
Run 'npm run init:config' to create it.
# Bad
Error: File not found
```
## Examples
### Example 1: Component Generator Command
**Input**: Create a command to generate React components
**Output**:
```markdown
## Command: generate:component
### Usage
```bash
npm run generate:component ComponentName [options]
```
### Options
- `--path <path>`: Output path (default: src/components)
- `--type <type>`: Component type (functional|class) (default: functional)
- `--with-tests`: Generate test file
- `--with-styles`: Generate stylesheet
### Examples
```bash
# Basic component
npm run generate:component UserCard
# With options
npm run generate:component UserCard --path src/features/users --with-tests --with-styles
```
### Implementation
```javascript
// 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);
```
### Example 2: Database Migration Command
**Input**: Create a database migration command
**Output**:
```markdown
## Command: db:migrate
### Usage
```bash
npm run db:migrate [migration-name] [options]
```
### Options
- `--create <table>`: Create new migration for table
- `--rollback`: Rollback last migration
- `--status`: Show migration status
- `--to <version>`: Migrate to specific version
### Examples
```bash
# 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
```
```
## Reference Files
- **`references/SLASH_COMMAND.template.md`** - Slash command template with frontmatter, dynamic context, and workflow structure
## Best Practices
### Command Design
1. **Clear Names**: Use descriptive, action-oriented names
2. **Consistent Patterns**: Follow project conventions
3. **Helpful Defaults**: Sensible defaults for common use cases
4. **Good Feedback**: Clear output and progress indicators
5. **Error Handling**: Graceful failure with helpful messages
### User Experience
- **Progressive Disclosure**: Show basic usage, advanced options in help
- **Validation**: Validate inputs early with clear errors
- **Confirmation**: Ask for confirmation on destructive operations
- **Dry Run**: Support --dry-run for preview
- **Verbose Mode**: --verbose for detailed output
### Documentation
- **Help Text**: Clear, concise help for each command
- **Examples**: Include practical examples
- **Error Messages**: Explain what went wrong and how to fix
- **README**: Document commands in project README
## Related Use Cases
- Creating project-specific commands
- Automating development tasks
- Building CLI tools
- Improving command usability
- Standardizing command patterns
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!