skill-creator · v1.0 · 2026-05-07 · sha256 c022f3995beebd47

skill-creator v1.0A

Immutable. This exact content is served forever at /api/v1/blob/c022f3995beebd47.

---
name: skill-creator
description: "Create AI agent skills with valid frontmatter. Trigger: new skills, agent instructions, or documenting AI usage patterns."
license: Apache-2.0
metadata:
  author: gentleman-programming
  version: "1.0"
---

## When to Create a Skill

Create a skill when:
- A pattern is used repeatedly and AI needs guidance
- Project-specific conventions differ from generic best practices
- Complex workflows need step-by-step instructions
- Decision trees help AI choose the right approach

**Don't create a skill when:**
- Documentation already exists (create a reference instead)
- Pattern is trivial or self-explanatory
- It's a one-off task

---

## Skill Structure

```
skills/{skill-name}/
├── SKILL.md              # Required - main skill file
├── assets/               # Optional - templates, schemas, examples
│   ├── template.py
│   └── schema.json
└── references/           # Optional - links to local docs
    └── docs.md           # Points to docs/developer-guide/*.mdx
```

---

## SKILL.md Template

```markdown
---
name: {skill-name}
description: "{What this skill does}. Trigger: {essential trigger words users or agents will say}."
license: Apache-2.0
metadata:
  author: gentleman-programming
  version: "1.0"
---

## When to Use

{Bullet points of when to use this skill}

## Critical Patterns

{The most important rules - what AI MUST know}

## Code Examples

{Minimal, focused examples}

## Commands

```bash
{Common commands}
```

## Resources

- **Templates**: See [assets/](assets/) for {description}
- **Documentation**: See [references/](references/) for local docs
```

---

## Naming Conventions

| Type | Pattern | Examples |
|------|---------|----------|
| Generic skill | `{technology}` | `pytest`, `playwright`, `typescript` |
| Project-specific | `{project}-{component}` | `myapp-api`, `myapp-ui` |
| Testing skill | `{project}-test-{component}` | `myapp-test-sdk`, `myapp-test-api` |
| Workflow skill | `{action}-{target}` | `skill-creator`, `jira-task` |

---

## Decision: assets/ vs references/

```
Need code templates?        → assets/
Need JSON schemas?          → assets/
Need example configs?       → assets/
Link to existing docs?      → references/
Link to external guides?    → references/ (with local path)
```

**Key Rule**: `references/` should point to LOCAL files, not web URLs.

---

## Frontmatter Fields

| Field | Required | Description |
|-------|----------|-------------|
| `name` | Yes | Skill identifier (lowercase, hyphens) |
| `description` | Yes | Single-line, quoted YAML-safe string with what + `Trigger:` |
| `license` | Yes | Always `Apache-2.0` |
| `metadata.author` | Yes | `gentleman-programming` |
| `metadata.version` | Yes | Semantic version as string |

### Description Rules

The `description` field is the skill-loading budget. Treat it as mandatory metadata, not prose.

- MUST be one physical line in frontmatter; never use `>` or `|` block scalars.
- MUST be YAML-safe: wrap the whole value in quotes and avoid unescaped matching quotes inside it.
- MUST include `Trigger:` and preserve the essential trigger words users or agents will actually say.
- SHOULD be <=160 chars; this is preferred for Claude Code skill-list budget.
- MUST be <=250 chars if a rare skill genuinely needs extra trigger coverage.
- MUST NOT add `Keywords`; put concise trigger keywords in `description` instead.

Good:

```yaml
description: "Create Jira tasks in the team format. Trigger: Jira task, ticket, issue, or task creation."
```

Bad:

```yaml
description: >
  Create Jira tasks in the team format.
  Trigger: Jira task, ticket, issue, or task creation.
Keywords: jira, task
```

---

## Content Guidelines

### DO
- Start with the most critical patterns
- Use tables for decision trees
- Keep code examples minimal and focused
- Include Commands section with copy-paste commands
- Keep frontmatter descriptions concise with essential trigger keywords

### DON'T
- Add Keywords section (agent searches frontmatter, not body)
- Use multiline, unquoted, or block-scalar frontmatter descriptions
- Duplicate content from existing docs (reference instead)
- Include lengthy explanations (link to docs)
- Add troubleshooting sections (keep focused)
- Use web URLs in references (use local paths)

---

## Registering the Skill

After creating the skill, add it to `AGENTS.md`:

```markdown
| `{skill-name}` | {Description} | [SKILL.md](skills/{skill-name}/SKILL.md) |
```

---

## Checklist Before Creating

- [ ] Skill doesn't already exist (check `skills/`)
- [ ] Pattern is reusable (not one-off)
- [ ] Name follows conventions
- [ ] Frontmatter is complete (description is quoted, one-line, YAML-safe, includes `Trigger:`)
- [ ] Description is ideally <=160 chars and never >250 chars
- [ ] Description preserves essential trigger words; no `Keywords` section added
- [ ] Critical patterns are clear
- [ ] Code examples are minimal
- [ ] Commands section exists
- [ ] Added to AGENTS.md

## Resources

- **Templates**: See [assets/](assets/) for SKILL.md template