Initial commit
This commit is contained in:
200
commands/create-command.md
Normal file
200
commands/create-command.md
Normal file
@@ -0,0 +1,200 @@
|
||||
---
|
||||
argument-hint: "[category/name] [--update] or leave empty for interactive creation"
|
||||
description: "Extract and save current session workflow as a reusable slash command"
|
||||
allowed-tools: [Write, Edit, Glob, Read, Bash, AskUserQuestion]
|
||||
---
|
||||
|
||||
Extract and save the current or most recent session workflow as a reusable slash command file. Supports creating new commands, updating existing ones, and interactive guided creation.
|
||||
|
||||
## Usage Examples
|
||||
|
||||
- `git/draft-pr` - Create new command from recent workflow
|
||||
- `git/commit-push --update` - Update existing command with improvements
|
||||
- Leave empty - Interactive mode with guided questions
|
||||
|
||||
## Command Creation Process
|
||||
|
||||
1. **Determine Mode**:
|
||||
- If `--update` flag: Update existing command
|
||||
- If command name provided: Auto mode - analyze recent workflow
|
||||
- If no arguments: Interactive mode - ask guided questions
|
||||
|
||||
2. **Analyze Workflow**: Extract recent session patterns, tool usage, and command sequences
|
||||
|
||||
3. **Generate Command File**:
|
||||
- Create at `~/.claude/commands/category/name.md`
|
||||
- Add YAML frontmatter with argument-hint, description, allowed-tools
|
||||
- Write implementation steps consolidating workflow actions
|
||||
- Include usage examples and notes
|
||||
|
||||
4. **Update Mode** (when using `--update`):
|
||||
- Read existing command file
|
||||
- Preserve metadata unless workflow significantly changed
|
||||
- Merge or enhance implementation steps
|
||||
- Add newly used tools to allowed-tools list
|
||||
|
||||
## Naming & Location
|
||||
|
||||
**Format**: `category/name` → command file path
|
||||
|
||||
**Personal Commands**: `~/.claude/commands/category/name.md`
|
||||
- Available across all projects
|
||||
- For individual workflows
|
||||
|
||||
**Project Commands**: `./.claude/commands/category/name.md`
|
||||
- Shared with team via git
|
||||
- For project-specific workflows
|
||||
|
||||
**Examples**:
|
||||
- `git/draft-pr` → `~/.claude/commands/git/draft-pr.md` (personal)
|
||||
- `docker/build` → `./.claude/commands/docker/build.md` (project)
|
||||
- `jira/clone-issue` → `~/.claude/commands/jira/clone-issue.md` (personal)
|
||||
|
||||
**Auto-detection** (interactive mode with no name):
|
||||
- Git operations → `git/workflow`
|
||||
- Node/npm → `node/workflow`
|
||||
- Docker → `docker/workflow`
|
||||
- Test operations → `test/workflow`
|
||||
- Jira → `jira/workflow`
|
||||
- AWS → `aws/workflow`
|
||||
|
||||
## Command File Structure
|
||||
|
||||
```markdown
|
||||
---
|
||||
argument-hint: [describe expected arguments and defaults]
|
||||
description: Brief action-oriented description
|
||||
allowed-tools: [Bash, Read, Write, Edit, etc.]
|
||||
---
|
||||
|
||||
Brief description of command purpose and when to use it.
|
||||
|
||||
## Implementation Steps
|
||||
|
||||
1. **Major Action**: Description of what to do (consolidate related actions)
|
||||
2. **Next Step**: Clear actionable instruction
|
||||
3. **Final Step**: Verification or cleanup
|
||||
|
||||
## Usage Examples
|
||||
|
||||
- `/category/name arg1` - Example scenario
|
||||
- `/category/name --flag` - Another scenario
|
||||
|
||||
## Notes
|
||||
- Prerequisites or dependencies
|
||||
- Related commands
|
||||
- Important considerations
|
||||
```
|
||||
|
||||
## Interactive Questions
|
||||
|
||||
When in interactive mode, ask:
|
||||
|
||||
1. **Purpose**: What should this command do?
|
||||
- Automate git operations
|
||||
- Run tests or builds
|
||||
- Manage external services (Jira, AWS, Docker)
|
||||
- Code generation or scaffolding
|
||||
|
||||
2. **Scope**: Where should this command be available?
|
||||
- Personal use only (save to ~/.claude/commands/)
|
||||
- Share with team (save to ./.claude/commands/ for git tracking)
|
||||
|
||||
3. **Tools**: Which tools are needed? (multi-select)
|
||||
- File operations (Read, Write, Edit, Glob)
|
||||
- Shell commands (Bash)
|
||||
- User interaction (AskUserQuestion)
|
||||
- All tools (no restrictions)
|
||||
|
||||
4. **Arguments**: How should arguments be handled?
|
||||
- All as single value
|
||||
- Multiple positional arguments
|
||||
- With default values
|
||||
- No arguments needed
|
||||
|
||||
## Workflow Extraction
|
||||
|
||||
When analyzing recent workflow:
|
||||
|
||||
1. **Track Tool Usage**: Identify frequently used tools
|
||||
2. **Find Patterns**: Detect repeated action sequences
|
||||
3. **Extract Commands**: Capture successful bash commands and operations
|
||||
4. **Consolidate Steps**: Group micro-actions into major steps (avoid excessive detail)
|
||||
5. **Infer Metadata**: Set appropriate allowed-tools based on actual usage
|
||||
|
||||
## Update Mode Details
|
||||
|
||||
When updating with `--update` flag:
|
||||
|
||||
1. Preserve original description and argument-hint unless workflow changed significantly
|
||||
2. Merge new steps with existing implementation steps
|
||||
3. Add new tools to allowed-tools if used in recent workflow
|
||||
4. Enhance usage examples with recent successful executions
|
||||
5. Update notes with lessons learned or edge cases discovered
|
||||
|
||||
## Output Format
|
||||
|
||||
After creation:
|
||||
|
||||
```text
|
||||
✅ Command created: /category/name
|
||||
Location: ~/.claude/commands/category/name.md
|
||||
Tools: [list of allowed-tools]
|
||||
|
||||
🔍 Usage: /category/name [arguments]
|
||||
```
|
||||
|
||||
After update:
|
||||
|
||||
```text
|
||||
✅ Command updated: /category/name
|
||||
Location: ~/.claude/commands/category/name.md
|
||||
|
||||
🔄 Changes:
|
||||
- [Summary of what changed]
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
**Description**:
|
||||
|
||||
- Start with action verb (e.g., "Create", "Run", "Update")
|
||||
- Keep under 100 characters
|
||||
- Be specific and clear
|
||||
|
||||
**Implementation Steps**:
|
||||
|
||||
- Consolidate related actions (avoid micro-steps)
|
||||
- Use descriptive step names
|
||||
- Mention argument usage naturally in descriptions
|
||||
- Include verification or error handling
|
||||
|
||||
**Allowed Tools**:
|
||||
|
||||
- Only list tools actually needed
|
||||
- Omit for unrestricted access
|
||||
- Use minimal set for security
|
||||
|
||||
## Examples
|
||||
|
||||
```bash
|
||||
# Interactive creation
|
||||
/claude:create-command
|
||||
|
||||
# Create from recent git workflow
|
||||
/claude:create-command git/sync-upstream
|
||||
|
||||
# Update existing command with improvements
|
||||
/claude:create-command git/commit-push --update
|
||||
|
||||
# Create project-specific test command
|
||||
/claude:create-command test/e2e-debug
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Commands expand to full prompts when invoked
|
||||
- Keep focused on one specific workflow
|
||||
- Test thoroughly before sharing with team
|
||||
- Use `--update` to refine based on real usage
|
||||
- Commands run in current working directory context
|
||||
Reference in New Issue
Block a user