Design and create Agent Skills using natural English patterns. Use when building new skills, planning skill architecture, or writing skill content.
Create effective Agent Skills using natural English patterns that LLMs naturally understand from training data.
Use this skill when:
Do not use when:
Leverage natural English patterns that LLMs recognize from training data (documentation, rules, policies, procedures). No custom syntax. No interpreter. Just structured patterns.
LLMs are trained on these natural patterns:
| Pattern | Example | Training Source | |---------|---------|-----------------| | Imperative | "Do X", "Require Y" | Documentation, instructions | | Conditional | "If X, then Y" | Rules, policies, procedures | | Prohibition | "Never X", "Block Y" | Security policies, warnings | | Requirement | "Must X", "X is required" | Compliance, regulations | | State declaration | "In mode X", "State Y" | Documentation, manuals | | Ordered list | "1. X, 2. Y" | Procedures, tutorials |
Skills can be created in two locations:
~/.aider-desk/skills/X) - Available across all projectsPROJECTDIR/.aider-desk/skills/X) - Available only for the current projectUse project skills when the functionality is specific to a single project or codebase. Use global skills for reusable, domain-agnostic capabilities.
Skills load in 3 levels:
Key: Keep Levels 1 & 2 lean. Move details to Level 3.
---
name: skill-name
description: What this skill does
mode: planning | implementation | verification
---
# Skill Name
One-sentence purpose.
Why: Frontmatter is standard metadata. Headers are standard document structure.
## When to Use
Use this skill when:
- [condition 1]
- [condition 2]
- [condition 3]
Do not use when:
- [condition 4]
- [condition 5]
Why: "When to use" and "Do not use" are natural patterns LLMs recognize.
## Rules
### Rule: Rule Name
**When:** [condition]
**Then:** [action]
**Example:**
User says: "X" Agent does: "Y"
### Rule: Another Rule
**If:** [condition]
**Then:** [action]
**Never:** [forbidden action]
Why: "When/Then" and "If/Then" are natural conditional patterns. "Never" is a natural prohibition pattern.
Rule ordering matters. Rules are evaluated top-to-bottom. First matching rule wins.
When: Evaluating rules
Then: Check conditions in order, stop at first match
Never: Continue evaluating after a match
Why: Makes skill behavior predictable and deterministic
Example:
## Rules
### Rule: Handle specific case first
**When:** User says "proceed" AND tasks.md exists
**Then:** Execute implementation
### Rule: Handle general case
**When:** User says "proceed"
**Then:** Ask what to implement
In this example, if tasks.md exists, the specific rule matches first. The general rule is never evaluated.
## Mode: [mode_name]
**In this mode:**
- Can: [action 1], [action 2], [action 3]
- Cannot: [action 4], [action 5]
- Must: [requirement 1], [requirement 2]
- Must not: [prohibition 1], [prohibition 2]
**Transition to:** [next_mode]
**When:** [condition]
Why: "Can/Cannot" and "Must/Must not" are natural patterns LLMs recognize from documentation about permissions and requirements.
## Process
1. [Step 1]
2. [Step 2]
3. [Step 3]
**Between step 2 and 3:**
- If [condition], do [action]
- If [other condition], do [other action]
Why: Numbered lists are natural for procedures. "If/then" between steps is natural for conditional logic.
## Preconditions
Before using this skill, verify:
- [condition 1]
- [condition 2]
- [condition 3]
If any precondition fails:
- Do not proceed
- Handle by: [action]
Why: "Preconditions" and "before/after" are natural patterns from procedure documentation.
## Postconditions
After completing this skill, verify:
- [condition 1]
- [condition 2]
- [condition 3]
**Success metrics:**
- [metric 1]
- [metric 2]
## Common Situations
**Situation:** [description]
**Pattern:**
- Check: [condition 1]
- If true: [action 1]
- If false: [action 2]
**Situation:** [other description]
**Pattern:**
- When: [condition]
- Then: [action]
Use these natural forms:
✅ When X happens, do Y
✅ If X is true, then do Y
✅ In case of X, do Y
✅ On X, do Y
❌ IF X THEN Y (too code-like)
✅ Never do X
✅ Block X action
✅ Forbid X
✅ X is not allowed
❌ FORBID X (too formal/code-like)
✅ Must do X
✅ Require X
✅ X is mandatory
✅ X is required
❌ REQUIRE X (too code-like)
✅ Do X
✅ Execute X
✅ Perform X
✅ Complete X
❌ EXECUTE X (too code-like)
## Section Name
Content here.
### Subsection
Sub-content.
LLMs recognize headers as structural elements.
- Item 1
- Item 2
- Item 3
1. Step 1
2. Step 2
3. Step 3
LLMs recognize bullets and numbers as lists.
**Example:**
User says: "X" Agent does: "Y"
LLMs recognize code blocks as examples.
**Required:** This is critical
**Optional:** This is optional
**Never:** Do not do this
LLMs recognize bold text as emphasis.
❌ General rule before specific rule
❌ Overlapping conditions without clear priority
❌ Rules that can never match due to ordering
Correct:
## Rules
### Rule: Specific case
**When:** User says "proceed" AND tasks.md exists
**Then:** Execute tasks
### Rule: General case
**When:** User says "proceed"
**Then:** Ask what to implement
Wrong:
## Rules
### Rule: General case (WRONG - comes first!)
**When:** User says "proceed"
**Then:** Ask what to implement
### Rule: Specific case (NEVER MATCHES!)
**When:** User says "proceed" AND tasks.md exists
**Then:** Execute tasks
❌ SET x = value
❌ FOR item IN list
❌ GOTO label
❌ CALL tool "name"
These are not natural English patterns.
❌ IF condition THEN
IF other condition THEN
action
END IF
END IF
LLMs don't recognize this naturally from training.
❌ FUNCTION, RETURN, WHILE, BREAK
❌ END IF, END FOR, END WHILE
❌ DECLARE, EXECUTE, INVOKE (as keywords)
These are programming language keywords, not natural English.
❌ First you need to check if there's a PRD, and if there isn't one,
you should create it using skill-name. After that's done, you can
move on to creating a plan.
This is conversational, not logical structure.
When: Creating frontmatter
Then: Keep under 27 tokens for name, description, mode
Why: Metadata loads first, must be lean
When: Writing rules
Then: Most specific rules first, general rules last
Never: Put general rules before specific ones
Why: First matching rule wins, ordering determines behavior
When: Writing SKILL.md body
Then: Keep core instructions under 680 tokens
Why: Instructions load second, must remain concise
When: Content exceeds token limits or becomes complex
Then: Move to references/, scripts/, or assets/
Never: Bloat Level 1 or 2
When: Writing skill logic
Then: Use natural English patterns from training data
Never: Use custom syntax or programming keywords
When: Structuring skill content
Then: Use standard sections: When to Use, Rules, Process, Preconditions
Never: Mix sections or skip required structure
Between steps 4 and 5:
Before using this skill, verify:
If any precondition fails:
After completing this skill, verify:
Success metrics:
Situation: Creating first skill
Pattern:
Situation: Skill becomes too large
Pattern:
Situation: Complex conditional logic
Pattern:
The LLM understands these patterns natively. It doesn't need a "VM" or interpreter. The skill file itself is the specification, written in natural patterns the LLM already knows.
The skill file IS the logic. No interpreter. No VM. Just natural patterns LLMs understand.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer