Skill v1.0.0
currentAutomated scan100/100version: "1.0.0" name: ai-prompt description: "Use when optimizing prompts, skill descriptions, or agent instructions for clarity, specificity, and behavioral effectiveness." effort: high argument-hint: "<text>|--skill <name>"
Prompt
Purpose
Prompt optimization and creation. Improves prompts, skill descriptions, and agent instructions using proven techniques: explicit over implicit, examples over rules, structured formatting, and positive framing. Can auto-enhance prompts for other skills or manually optimize user-provided text.
Trigger
- Command:
/ai-prompt "<text>"(optimize text) or/ai-prompt --skill <name>(optimize a skill's description) - Context: writing a new prompt, improving an existing skill's description, crafting agent instructions.
When to Use
- Writing or refining skill
descriptionfields (CSO optimization) - Crafting system prompts for AI integrations
- Improving agent instruction clarity
- Before publishing any prompt-based artifact
Optimization Techniques
Apply these in order of impact:
1. Be Explicit Over Implicit
| Before | After | |
|---|---|---|
| "Handle errors properly" | "Wrap database calls in try/except, log the exception with stack trace, return a structured error response with HTTP 500" | |
| "Follow best practices" | "Apply guard clauses for early return, extract methods over 20 lines, name variables by intent not type" |
2. Show, Do Not Tell
Replace rules with examples. One concrete example is worth five abstract instructions.
Bad: "Use descriptive names"Good: "Name variables by what they represent:- `user_count` not `n`- `is_valid` not `flag`- `retry_delay_seconds` not `delay`"
3. Structure with XML Tags or Markdown
Use clear structural markers for different sections. Group related instructions. Use tables for multi-dimensional comparisons.
4. Explain WHY for Each Rule
Rules without rationale get ignored or misapplied. Every constraint should include its motivation.
Bad: "Max 3 retries"Good: "Max 3 retries (beyond 3, the underlying issue is systemic, not transient -- escalate instead of retrying)"
5. Positive Framing
State what TO do, not what NOT to do. The brain processes positive instructions faster.
Bad: "Don't use generic error messages"Good: "Include the specific operation, input value, and expected format in every error message"
6. CSO Optimization (for skill descriptions)
The description field is a search query match surface. Optimize for triggering conditions, not capability summaries.
Pattern: "Use when [specific situation + observable trigger]"
Bad: "Database migration planning tool"Good: "Use when planning database schema changes, assessing migration locking impact, or designing rollback procedures"
7. Cialdini Principles (for discipline-enforcing skills)
For skills that enforce process (guard, verify, commit):
- Authority: cite specific standards and their rationale
- Consistency: reference past decisions and established patterns
- Social proof: "teams that skip this step spend 3x longer debugging"
Procedure
Optimizing text
- Analyze -- identify which techniques are missing from the input.
- Apply -- rewrite applying all relevant techniques.
- Compare -- present before/after with annotations explaining each change.
- Validate -- check the optimized version is not longer than necessary (concise beats comprehensive).
Optimizing a skill description
- Read skill -- load
.claude/skills/ai-{name}/SKILL.md. - Extract current description -- from frontmatter.
- CSO-optimize -- rewrite using triggering-condition pattern.
- Present -- show before/after for approval.
- Apply -- update the frontmatter if approved.
Quick Reference
/ai-prompt "check if the code follows our standards" # optimize this text/ai-prompt --skill guard # optimize guard's description/ai-prompt --skill commit # optimize commit's description
Common Mistakes
| Mistake | Fix | |
|---|---|---|
| Optimizing for length (making it longer = better) | Concise and specific beats long and vague | |
| Adding hedging language ("try to", "if possible") | Be direct: state the expected behavior | |
| Removing context while shortening | Keep the WHY, remove the fluff |
$ARGUMENTS