---
name: skill-creator
description: "Create new skills, modify existing skills, and improve skill quality."
whenToUse: "Jon identifies a new capability gap that should be systematized"
---

# Skill: Skill Creator (Meta-Skill)

## Description
Create new skills for Jon, modify existing skills, and improve skill quality. This is the meta-skill — the skill that makes other skills. Based on Anthropic's skill-creator but adapted for OpenJaw Agent.

## When to Use
- Jon identifies a new capability gap that should be systematized
- User asks to "teach Jon something new" or "add a new skill"
- After completing a novel task that should be repeatable
- When an existing skill needs improvement based on real usage

## Skill Creation Process

### 1. Capture Intent
Understand what the skill should do:
- What task does this skill enable?
- When should it trigger? (what user phrases/contexts)
- What's the expected output?
- What tools/APIs does it need?
- What are the common failure modes?

### 2. Research & Reference
Before writing, gather context:
- Check existing skills for overlap: `file_list("~/.openjaw-agent/skills")` and `file_list("<package>/skills")`
- Search GitHub for similar skills: `web_search("SKILL.md [topic] agent")`
- Check Anthropic's official skills: `web_fetch("https://raw.githubusercontent.com/anthropics/skills/main/skills/[name]/SKILL.md")`
- Review memory for past experiences: `memory_search("[topic]")`

### 3. Write the SKILL.md

#### Required Structure
```markdown
# Skill: [Name]

## Description
[1-2 sentences: What it does. Be "pushy" — list all trigger phrases and contexts
so the skill doesn't under-trigger.]

## When to Use
- [Trigger condition 1]
- [Trigger condition 2]
- [Chinese trigger phrase]
- [English trigger phrase]

## Prerequisites
- [Required tools, libraries, APIs]

## Workflow / Steps
[The core instructions — step by step]

## Important Notes
[Gotchas, edge cases, lessons learned from real usage]

## Output & Delivery
[How to deliver the result to the user]
```

#### Writing Guidelines
- **Be specific, not generic** — include actual code snippets, file paths, API endpoints
- **Include failure modes** — what goes wrong and how to fix it
- **Use real examples** from actual usage with CharZ
- **Include Chinese trigger phrases** — CharZ communicates in both languages
- **Reference other skills** — skills should compose together (e.g., "use email-with-attachment skill to send")
- **Keep it actionable** — every section should help complete the task
- **"Pushy" descriptions** — list many trigger conditions to prevent under-triggering

#### Anti-Patterns to Avoid
- ❌ Generic advice without specific implementation
- ❌ Listing tools without showing how to use them
- ❌ Ignoring the actual environment (Windows, Chinese fonts, Outlook REST API)
- ❌ Not referencing other skills that should compose together
- ❌ Missing error handling / troubleshooting section

### 4. Save & Register
```python
# Save to user skills directory (NOT the bundled skills dir)
file_write("~/.openjaw-agent/skills/{skill-name}.md", content)

# Update memory
memory_append("Added new skill: {name} — {description}")
```

### 5. Test
After creating a skill, ideally test it:
- Try triggering it with a realistic user request
- Verify the steps actually work in the current environment
- Check that referenced tools/APIs are available

### 6. Iterate
Skills should improve based on real usage:
- When a skill fails or produces suboptimal results → update it
- When new tools become available → enhance the skill
- When user gives feedback → incorporate it
- Periodically review skills for staleness

## Skill Quality Checklist
- [ ] Has clear trigger conditions (English + Chinese)
- [ ] Has specific, actionable steps (not just advice)
- [ ] Includes code snippets with real paths/APIs
- [ ] References other composable skills
- [ ] Has troubleshooting / error handling section
- [ ] Has been tested at least once
- [ ] Includes lessons from real usage

## Current Skills Directory
Path: `~/.openjaw-agent/skills/` (user skills — agent-created, persists across updates)

Skills compose together — for example:
- doc-coauthoring → create-pdf-report → email-with-attachment
- deep-research → summarization → internal-comms → email-drafting
- meeting-summarizer → translation → proofreading

## Skill Naming Convention
- Lowercase with hyphens: `skill-name.md`
- Descriptive but concise: `create-pdf-report.md`, not `pdf.md`
- Action-oriented when possible: `email-drafting.md`, not `emails.md`
