Skills: Teaching AI How to Think
Lazy-loaded expertise for efficient, reliable agents
The Problem
===
You have two bad options:
**Option A: Stuff everything into the system prompt**
- 🪣 20,000+ tokens of instructions, always loaded
- 🔇 Context pollution degrades *all* tasks
- 💸 You pay for expertise you're not using
**Option B: Wing it**
- 🎲 Agent improvises on critical tasks
- 🔀 Inconsistent results every time
- 😬 "Creative" solutions in production
Neither is acceptable.
===
What is a Skill?
===
```mermaid +render +width:100%
graph TD
S["🎯 Skill"] --> MD["📋 SKILL.md
Instructions, rules, edge cases"]
S --> SC["⚙️ scripts/
Helper scripts"]
S --> TM["📄 templates/
Output templates"]
S --> AS["📦 assets/
Supporting files"]
style MD fill:#4a9eff,stroke:#333,color:#fff
style S fill:#ff6b6b,stroke:#333,color:#fff
style SC fill:#51cf66,stroke:#333,color:#fff
style TM fill:#51cf66,stroke:#333,color:#fff
style AS fill:#51cf66,stroke:#333,color:#fff
```
**SKILL.md is the brain. Everything else is optional.**
Lazy Loading
===
How it works: scan descriptions → load on demand → unload when done
```mermaid +render +width:100%
graph LR
subgraph BEFORE["❌ Without Skills"]
direction TB
BP["System Prompt
20,000+ tokens"]
BP --> W1["Weather SOPs"]
BP --> W2["Security SOPs"]
BP --> W3["Deploy SOPs"]
BP --> W4["Testing SOPs"]
BP --> W5["... everything else"]
end
subgraph AFTER["✅ With Skills"]
direction TB
AP["System Prompt
~500 tokens
(descriptions only)"]
AP -->|"task matches"| L1["Load: Weather
+2,000 tokens"]
end
style BEFORE fill:#ffcccc,stroke:#cc0000
style AFTER fill:#ccffcc,stroke:#00cc00
style BP fill:#ff6b6b,stroke:#333,color:#fff
style AP fill:#51cf66,stroke:#333,color:#fff
style L1 fill:#4a9eff,stroke:#333,color:#fff
```
**10 skills × 2,000 tokens = 20,000 always loaded → ~500 base + 2,000 on demand**
SOPs = Reliability
===
The SKILL.md **is** the standard operating procedure.
**Without Skill** 🎲
> "Check if my server is secure"
- Runs random checks from training data
- Misses half the important ones
- Suggests changes that conflict with your infra
**With Skill** 📋
> "Check if my server is secure"
- Loads healthcheck SKILL.md
- Follows structured audit checklist
- Firewall → SSH → Updates → Services
- Prioritised report with specific fixes
**Runbook vs. "figure it out"**
Skills vs. Tools vs. System Prompts
===
| Layer | Answers | Example |
|---|---|---|
| **Tools** | What *can* I do? | Read files, search web, send messages |
| **System Prompt** | Who *am* I? | Helpful, concise, safety-conscious |
| **Skills** | *How* do I do X well? | Step-by-step server security audit |
```mermaid +render +width:100%
graph LR
T["🔧 Tools
Capability"] --> A["🤖 Agent"]
SP["🧠 System Prompt
Identity"] --> A
SK["🎯 Skills
Expertise"] --> A
style T fill:#ff6b6b,stroke:#333,color:#fff
style SP fill:#ffd93d,stroke:#333,color:#000
style SK fill:#4a9eff,stroke:#333,color:#fff
style A fill:#51cf66,stroke:#333,color:#fff
```
Tools without skills = workshop full of power tools, no training
Real-World Examples
===
* **Weather Skill** ☀️ — Simple. ~50 lines. Query APIs, format forecasts, handle locations. Loaded when someone asks "what's the weather?"
* **Healthcheck Skill** 🔒 — Structured security audit playbook. Firewall, SSH, updates, service exposure. Prioritised findings with specific remediations.
* **SecureTransport Flow Engineering** 🔐 — Deep domain expertise. File transfer flows, PGP encryption, SFTP patterns, error log locations, testing harnesses. Months of tribal knowledge, instantly available.
* **Skill Creator** 🏗️ — A meta-skill: a skill for *building skills*. Encodes the structure, best practices, and packaging conventions.
The Bigger Picture
===
**Expertise Preservation** 🧠
- Skills capture tribal knowledge
- Your best engineer writes it once
- Every agent benefits, forever
- People leave. Skills persist.
**Composability** 🧩
- Modular: share, version, stack
- Discoverable skill catalogues
- ClawHub: a marketplace of expertise
- Community flywheel: solve → share → improve
```mermaid +render +width:100%
graph LR
E["👩💻 Expert writes skill"] --> P["📦 Published to ClawHub"]
P --> U["🤖 Agents everywhere use it"]
U --> F["🔄 Community improves it"]
F --> P
style E fill:#ff6b6b,stroke:#333,color:#fff
style P fill:#4a9eff,stroke:#333,color:#fff
style U fill:#51cf66,stroke:#333,color:#fff
style F fill:#ffd93d,stroke:#333,color:#000
```
Skills = Efficiency + Reliability
Load expertise on demand. Follow SOPs, not guesswork.
Capture knowledge. Scale it. Share it.
🎯