What Are "Skills" in LLMs
Context-defined modular capabilities
Skills are encapsulated capabilities that you define for the model. Unlike one-off instructions, a skill is a persistent capability that can be activated, combined, and reused in different contexts.
Command vs. Skill
❌ Command
"Translate this text into English"
One action, one result, discarded
✅ Skill
"[SKILL: Translator] You are a professional translator..."
Persistent, reusable capability
Anatomy of a Skill
## SKILL: code_reviewer
### CAPABILITY
Analyze source code and identify issues
### INPUTS
- code: string (code to review)
- language: string (language)
### OUTPUTS
- issues: list of problems found
- suggestions: suggested improvements
### BEHAVIOR
- Focus on security, performance, and readability
- Cite the specific line containing the issues
Prompt as a Skill Definition
Structuring prompts that define capabilities
Skill Template
Unique identifier and clear limits on scope
Specialized knowledge required
Expected inputs and guaranteed outputs
Limits and Prohibited Behaviors
Reusable and Combinable Skills
Composition and modularity
Composition Patterns
🔗 Chaining
Output of one skill → input of another
Translator → Summarizer → Formatter
🔀 Parallel
Multiple skills in the same input
[Analyzer + Critic + Fact-Checker]
📦 Nested
Skill that uses other skills internally
Editor(Translator(text))
🔄 Conditional
Skill selected based on context
if(technical) → Expert else → Simplifier
Domain-Specific Skills
Expertise areas
Code Skills
- • Reviewer
- • Debugger
- • Refactorer
- • Documenter
Writing Skills
- • Editor
- • Copywriter
- • Summarizer
- • Translator
Analysis Skills
- • Data Analyst
- • Researcher
- • Fact-Checker
- • Comparator
Context-Based Skill Activation and Deactivation
Dynamic Capability Control
Activation Mechanisms
🎯 Explicit Activation
[ACTIVATE: code_reviewer]
🔍 Context-Triggered
Automatically activates when it detects code in the input
⛔ Explicit Deactivation
[DEACTIVATE: translator] // reply in Portuguese
Skills Versioning
Evolution and change control
Semantic Versioning for Skills
skill: code_reviewer@2.1.0
# MAJOR.MINOR.PATCH
2 = breaking changes to the interface
1 = new compatible capabilities
0 = fixes with no behavior changes
Changelog Example
v2.1.0 - Added TypeScript support
v2.0.0 - Change to output format (breaking)
v1.3.1 - Fix: false positives in arrow functions