253 lines
4.6 KiB
Markdown
253 lines
4.6 KiB
Markdown
# Arguments Reference
|
|
|
|
Official documentation examples for using arguments in slash commands.
|
|
|
|
## $ARGUMENTS - All Arguments
|
|
|
|
**Source**: Official Claude Code documentation
|
|
|
|
Captures all arguments as a single concatenated string.
|
|
|
|
### Basic Example
|
|
|
|
**Command file**: `.claude/commands/fix-issue.md`
|
|
```markdown
|
|
---
|
|
description: Fix issue following coding standards
|
|
---
|
|
|
|
Fix issue #$ARGUMENTS following our coding standards
|
|
```
|
|
|
|
**Usage**:
|
|
```
|
|
/fix-issue 123 high-priority
|
|
```
|
|
|
|
**Claude receives**:
|
|
```
|
|
Fix issue #123 high-priority following our coding standards
|
|
```
|
|
|
|
### Multi-Step Workflow Example
|
|
|
|
**Command file**: `.claude/commands/fix-issue.md`
|
|
```markdown
|
|
---
|
|
description: Fix issue following coding standards
|
|
---
|
|
|
|
Fix issue #$ARGUMENTS. Follow these steps:
|
|
|
|
1. Understand the issue described in the ticket
|
|
2. Locate the relevant code in our codebase
|
|
3. Implement a solution that addresses the root cause
|
|
4. Add appropriate tests
|
|
5. Prepare a concise PR description
|
|
```
|
|
|
|
**Usage**:
|
|
```
|
|
/fix-issue 456
|
|
```
|
|
|
|
**Claude receives the full prompt** with "456" replacing $ARGUMENTS.
|
|
|
|
## Positional Arguments - $1, $2, $3
|
|
|
|
**Source**: Official Claude Code documentation
|
|
|
|
Access specific arguments individually.
|
|
|
|
### Example
|
|
|
|
**Command file**: `.claude/commands/review-pr.md`
|
|
```markdown
|
|
---
|
|
description: Review PR with priority and assignee
|
|
---
|
|
|
|
Review PR #$1 with priority $2 and assign to $3
|
|
```
|
|
|
|
**Usage**:
|
|
```
|
|
/review-pr 456 high alice
|
|
```
|
|
|
|
**Claude receives**:
|
|
```
|
|
Review PR #456 with priority high and assign to alice
|
|
```
|
|
|
|
- `$1` becomes `456`
|
|
- `$2` becomes `high`
|
|
- `$3` becomes `alice`
|
|
|
|
## Argument Patterns from Official Docs
|
|
|
|
### Pattern 1: File Reference with Argument
|
|
|
|
**Command**:
|
|
```markdown
|
|
---
|
|
description: Optimize code performance
|
|
---
|
|
|
|
Analyze the performance of this code and suggest three specific optimizations:
|
|
|
|
@ $ARGUMENTS
|
|
```
|
|
|
|
**Usage**:
|
|
```
|
|
/optimize src/utils/helpers.js
|
|
```
|
|
|
|
References the file specified in the argument.
|
|
|
|
### Pattern 2: Issue Tracking
|
|
|
|
**Command**:
|
|
```markdown
|
|
---
|
|
description: Find and fix issue
|
|
---
|
|
|
|
Find and fix issue #$ARGUMENTS.
|
|
|
|
Follow these steps:
|
|
1. Understand the issue described in the ticket
|
|
2. Locate the relevant code in our codebase
|
|
3. Implement a solution that addresses the root cause
|
|
4. Add appropriate tests
|
|
5. Prepare a concise PR description
|
|
```
|
|
|
|
**Usage**:
|
|
```
|
|
/fix-issue 789
|
|
```
|
|
|
|
### Pattern 3: Code Review with Context
|
|
|
|
**Command**:
|
|
```markdown
|
|
---
|
|
description: Review PR with context
|
|
---
|
|
|
|
Review PR #$1 with priority $2 and assign to $3
|
|
|
|
Context from git:
|
|
- Changes: ! `gh pr diff $1`
|
|
- Status: ! `gh pr view $1 --json state`
|
|
```
|
|
|
|
**Usage**:
|
|
```
|
|
/review-pr 123 critical bob
|
|
```
|
|
|
|
Combines positional arguments with dynamic bash execution.
|
|
|
|
## Best Practices
|
|
|
|
### Use $ARGUMENTS for Simple Commands
|
|
|
|
When you just need to pass a value through:
|
|
```markdown
|
|
Fix issue #$ARGUMENTS
|
|
Optimize @ $ARGUMENTS
|
|
Summarize $ARGUMENTS
|
|
```
|
|
|
|
### Use Positional Arguments for Structure
|
|
|
|
When different arguments have different meanings:
|
|
```markdown
|
|
Review PR #$1 with priority $2 and assign to $3
|
|
Deploy $1 to $2 environment with tag $3
|
|
```
|
|
|
|
### Provide Clear Descriptions
|
|
|
|
Help users understand what arguments are expected:
|
|
```yaml
|
|
# Good
|
|
description: Fix issue following coding standards (usage: /fix-issue <issue-number>)
|
|
|
|
# Better - if using argument-hint field
|
|
description: Fix issue following coding standards
|
|
argument-hint: <issue-number> [priority]
|
|
```
|
|
|
|
## Empty Arguments
|
|
|
|
Commands work with or without arguments:
|
|
|
|
**Command**:
|
|
```markdown
|
|
---
|
|
description: Analyze code for issues
|
|
---
|
|
|
|
Analyze this code for issues: $ARGUMENTS
|
|
|
|
If no specific file provided, analyze the current context.
|
|
```
|
|
|
|
**Usage 1**: `/analyze src/app.js`
|
|
**Usage 2**: `/analyze` (analyzes current conversation context)
|
|
|
|
## Combining with Other Features
|
|
|
|
### Arguments + Dynamic Context
|
|
|
|
```markdown
|
|
---
|
|
description: Review changes for issue
|
|
---
|
|
|
|
Issue #$ARGUMENTS
|
|
|
|
Recent changes:
|
|
- Status: ! `git status`
|
|
- Diff: ! `git diff`
|
|
|
|
Review the changes related to this issue.
|
|
```
|
|
|
|
### Arguments + File References
|
|
|
|
```markdown
|
|
---
|
|
description: Compare files
|
|
---
|
|
|
|
Compare @ $1 with @ $2 and highlight key differences.
|
|
```
|
|
|
|
**Usage**: `/compare src/old.js src/new.js`
|
|
|
|
### Arguments + Tool Restrictions
|
|
|
|
```markdown
|
|
---
|
|
description: Commit changes for issue
|
|
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
|
|
---
|
|
|
|
Create commit for issue #$ARGUMENTS
|
|
|
|
Status: ! `git status`
|
|
Changes: ! `git diff HEAD`
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Arguments are whitespace-separated by default
|
|
- Quote arguments containing spaces: `/command "argument with spaces"`
|
|
- Arguments are passed as-is (no special parsing)
|
|
- Empty arguments are replaced with empty string
|