/optimize-prompt Command
Metadata
name: optimize-prompt
version: 1.0.0
category: orchestration
status: active
priority: P0
derived_from: Claude Operating Preferences v6.0
Description
Optimize prompts for Claude Opus 4.5 by replacing aggressive language that may cause overtriggering. Converts imperatives like "MUST", "ALWAYS", "NEVER" to gentler alternatives that produce better results with Opus 4.5.
Usage
# Optimize a prompt string
/optimize-prompt "You MUST ALWAYS follow these rules EXACTLY"
# Optimize from file
/optimize-prompt --file prompts/system-prompt.txt
# Optimize with thinking-disabled mode
/optimize-prompt --no-thinking "Think carefully about each step"
# Show optimization report
/optimize-prompt --report "CRITICAL: NEVER skip validation"
# Batch optimize directory
/optimize-prompt --batch prompts/
# Preview changes without applying
/optimize-prompt --dry-run --file system-prompt.md
Arguments
| Argument | Type | Default | Description |
|---|---|---|---|
prompt | string | - | Prompt text to optimize (positional) |
--file | path | - | Read prompt from file |
--no-thinking | flag | false | Also replace "think" words (for when thinking is disabled) |
--report | flag | false | Show detailed optimization report |
--batch | path | - | Optimize all .md/.txt files in directory |
--dry-run | flag | false | Preview changes without modifying files |
--output | path | - | Write optimized prompt to file |
Replacement Rules
Aggressive Language
| Original | Replacement | Reason |
|---|---|---|
| MUST | Please | Imperative too strong |
| ALWAYS | Prefer to | Absolute may overtrigger |
| NEVER | Avoid | Absolute may overtrigger |
| CRITICAL | Important | Too urgent |
| ABSOLUTELY | (removed) | Unnecessary emphasis |
| REQUIRED | Recommended | Softer obligation |
| MANDATORY | Suggested | Softer obligation |
| VERY IMPORTANT | Note | Less urgent |
| EXTREMELY | Quite | Softer emphasis |
| ESSENTIAL | Helpful | Less demanding |
| CRUCIAL | Useful | Less demanding |
Thinking Words (when --no-thinking)
| Original | Replacement |
|---|---|
| think about | consider |
| think through | work through |
| think carefully | review carefully |
| think step by step | proceed step by step |
Output Examples
Basic Optimization
$ /optimize-prompt "You MUST ALWAYS validate input. NEVER trust user data."
Original:
You MUST ALWAYS validate input. NEVER trust user data.
Optimized:
You Please Prefer to validate input. Avoid trust user data.
Changes: 3 replacements made
With Report
$ /optimize-prompt --report "CRITICAL: You MUST NEVER skip the validation step. This is EXTREMELY IMPORTANT!"
Optimization Report
-------------------
Original length: 72 characters
Optimized length: 62 characters
Reduction: 13.9%
Changes Made:
1. CRITICAL → Important (Aggressive language)
2. MUST → Please (Imperative too strong)
3. NEVER → Avoid (Absolute may overtrigger)
4. EXTREMELY → Quite (Softer emphasis)
5. IMPORTANT → helpful (Less demanding)
Original:
CRITICAL: You MUST NEVER skip the validation step. This is EXTREMELY IMPORTANT!
Optimized:
Important: You Please Avoid skip the validation step. This is Quite helpful!
File Processing
$ /optimize-prompt --file system-prompt.md --dry-run
Processing: system-prompt.md
Lines: 45
Size: 2.3KB
Would make 12 replacements:
- Line 3: MUST → Please
- Line 7: ALWAYS → Prefer to
- Line 12: NEVER → Avoid
- Line 15: CRITICAL → Important
...
Use without --dry-run to apply changes.
System Prompt
When this command is invoked:
- Parse input - Get prompt from argument, file, or stdin
- Apply replacements - Use Opus45PromptOptimizer patterns
- If --no-thinking - Also replace "think" words
- If --report - Generate detailed change report
- Output result - Print optimized prompt or write to file
Implementation
#!/usr/bin/env python3
"""optimize-prompt command implementation"""
import argparse
import re
from pathlib import Path
AGGRESSIVE_REPLACEMENTS = {
"MUST": "Please",
"ALWAYS": "Prefer to",
"NEVER": "Avoid",
"CRITICAL": "Important",
"ABSOLUTELY": "",
"REQUIRED": "Recommended",
"MANDATORY": "Suggested",
"VERY IMPORTANT": "Note",
"EXTREMELY": "Quite",
"ESSENTIAL": "Helpful",
"CRUCIAL": "Useful",
}
THINK_REPLACEMENTS = {
"think about": "consider",
"think through": "work through",
"think carefully": "review carefully",
"think step by step": "proceed step by step",
}
def optimize_prompt(text: str, no_thinking: bool = False) -> tuple[str, list]:
"""Optimize prompt and return (result, changes)"""
result = text
changes = []
for original, replacement in AGGRESSIVE_REPLACEMENTS.items():
pattern = re.compile(re.escape(original), re.IGNORECASE)
if pattern.search(result):
changes.append((original, replacement, "Aggressive language"))
result = pattern.sub(replacement, result)
if no_thinking:
for original, replacement in THINK_REPLACEMENTS.items():
pattern = re.compile(re.escape(original), re.IGNORECASE)
if pattern.search(result):
changes.append((original, replacement, "Thinking word"))
result = pattern.sub(replacement, result)
# Remove excessive exclamation marks
if re.search(r'!{2,}', result):
changes.append(("!!", "!", "Excessive punctuation"))
result = re.sub(r'!{2,}', '!', result)
return result.strip(), changes
def print_report(original: str, optimized: str, changes: list):
"""Print detailed optimization report"""
print("\nOptimization Report")
print("-" * 40)
print(f"Original length: {len(original)} characters")
print(f"Optimized length: {len(optimized)} characters")
reduction = (1 - len(optimized) / len(original)) * 100 if original else 0
print(f"Reduction: {reduction:.1f}%")
print(f"\nChanges Made ({len(changes)}):")
for i, (orig, repl, reason) in enumerate(changes, 1):
print(f" {i}. {orig} → {repl} ({reason})")
print(f"\nOriginal:\n{original}")
print(f"\nOptimized:\n{optimized}")
def main():
parser = argparse.ArgumentParser(description="Optimize prompts for Opus 4.5")
parser.add_argument("prompt", nargs="?", help="Prompt to optimize")
parser.add_argument("--file", type=Path, help="Read from file")
parser.add_argument("--no-thinking", action="store_true")
parser.add_argument("--report", action="store_true")
parser.add_argument("--batch", type=Path)
parser.add_argument("--dry-run", action="store_true")
parser.add_argument("--output", type=Path)
args = parser.parse_args()
# Get input text
if args.file:
text = args.file.read_text()
elif args.prompt:
text = args.prompt
else:
print("Error: Provide prompt or --file")
return
# Optimize
optimized, changes = optimize_prompt(text, args.no_thinking)
# Output
if args.report:
print_report(text, optimized, changes)
else:
print(optimized)
if args.output and not args.dry_run:
args.output.write_text(optimized)
print(f"\nWritten to: {args.output}")
if __name__ == "__main__":
main()
Related Components
skills/opus-optimization/- Core optimization patternsagents/prompt-optimizer-opus45.md- Agent for batch optimizationscripts/prompt-optimizer.py- Batch processing script
Action Policy
<default_behavior> This command optimizes prompts automatically. Proceeds with:
- Text replacement based on rules
- Report generation
- File output if specified
Provides before/after comparison. </default_behavior>
Success Output
When optimize-prompt completes:
✅ COMMAND COMPLETE: /optimize-prompt
Input: <source>
Replacements: <N>
Output: <optimized text or file>
Reduction: <N>%
Completion Checklist
Before marking complete:
- Input parsed
- Replacements applied
- Report generated (if --report)
- Output written (if --output)
Failure Indicators
This command has FAILED if:
- ❌ No input provided
- ❌ File not found
- ❌ Write failed
- ❌ Invalid options
When NOT to Use
Do NOT use when:
- Prompt already optimized
- Need aggressive language
- Non-Opus target model
Anti-Patterns (Avoid)
| Anti-Pattern | Problem | Solution |
|---|---|---|
| Over-optimize | Loses emphasis | Review output |
| Skip --report | Miss changes | Use --report first |
| Ignore context | Wrong replacements | Check semantic fit |
Principles
This command embodies:
- #3 Complete Execution - Full optimization
- #6 Clear, Understandable - Clear report
- #9 Based on Facts - Rule-based changes
Full Standard: CODITECT-STANDARD-AUTOMATION.md