# Add Skill

> Create or improve agent skills. Load when creating SKILL.md files, writing skill descriptions, or structuring skill content for OpenCode or Claude. Use when this capability is needed.

- Skill: `tomevault-io/add-skill-5` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/add-skill-5`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/add-skill-5/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/add-skill-5

---


# Creating Agent Skills

Skills extend agent capabilities with domain-specific knowledge. Use skills for procedural knowledge the agent lacks, not concepts it already understands.

If guidance is project-specific or one-off, use `INSTRUCTIONS.md` or inline context instead.

Create new skills under `/Users/nicholasgriffin/Documents/GitHub/machine-setup/ai-tooling/skills`.

## Structure

### Required Frontmatter

Every `SKILL.md` must start with YAML frontmatter on line 1:

```yaml
---
name: my-skill-name
description: What this skill does and when to use it. Third-person.
---
```

Field requirements:
- `name`: lowercase, hyphens only, max 64 chars, no reserved words ("anthropic", "claude")
- `description`: max 1024 chars, specific triggers + capabilities

### File Organisation

```
skill-name/
├── SKILL.md              # Required. Under 200 lines.
└── references/           # Optional. For detailed content.
    ├── api.md
    └── examples.md
```

Use `references/` when `SKILL.md` exceeds 200 lines. Keep references one level deep and avoid nested references.

## Writing Descriptions

The description determines when the skill activates. Include both what it does and when to use it.

Always use third-person (the description is injected into the system prompt):

| Quality | Example |
|---------|---------|
| Good | `Manages GitLab MRs and pipelines via glab CLI. Load before running glab commands.` |
| Good | `Analyses web performance with Chrome DevTools MCP. Use when auditing page load or Lighthouse scores.` |
| Bad | `I help you with GitLab operations.` |
| Bad | `Useful for various tasks.` |

Include key terms users might mention: tool names, file extensions, and specific operations.

## Content Guidelines

### Match Specificity to Task Fragility

High freedom (multiple valid approaches):
```markdown
Review code for potential bugs, readability, and adherence to project conventions.
```

Medium freedom (preferred pattern with variation):
```markdown
Use pdfplumber for text extraction. For scanned PDFs requiring OCR, use pdf2image instead.
```

Low freedom (fragile operations):
```markdown
Run exactly: `python scripts/migrate.py --verify --backup`
Do not modify flags.
```

### Writing Style

- Use imperative form: "Use X" not "You should use X"
- Assume competence; skip explanations of concepts the agent knows
- Use one term consistently: pick "endpoint" or "route", not both
- Avoid time-sensitive content

### Quick Reference Tables

For CLIs and APIs, provide lookup tables:

```markdown
| Task | Command |
|------|---------|
| Check status | `glab ci status` |
| View logs | `glab ci trace <job>` |
| Retry job | `glab ci retry <job>` |
```

## Common Patterns

### Prerequisite Verification

Check requirements before proceeding:

```markdown
## FIRST: Verify Installation

Run this before any commands. If it fails, stop; this skill does not apply.

\`\`\`bash
glab --version
\`\`\`
```

### Workflow Checklists

For multi-step tasks, provide a copyable checklist:

```markdown
## Workflow

Copy this checklist to track progress:

\`\`\`
- [ ] Step 1: Analyse input
- [ ] Step 2: Validate mapping
- [ ] Step 3: Apply changes
- [ ] Step 4: Verify output
\`\`\`
```

### Concrete Examples

Show input/output pairs instead of abstract descriptions:

```markdown
**Input**: Added user authentication with JWT tokens
**Output**:
\`\`\`
feat(auth): implement JWT-based authentication
\`\`\`
```

## Anti-patterns

- Verbose explanations: do not explain what PDFs are or how libraries work
- Multiple options without defaults: recommend one approach, mention alternatives briefly
- Vague descriptions: "Helps with documents" will not activate correctly
- Deeply nested references: `SKILL.md` → file.md → another.md breaks navigation
- Magic constants: document why values were chosen, or let the agent decide

## Checklist

Before finalising a skill:

- [ ] Frontmatter starts on line 1 with `---`
- [ ] `name` is lowercase with hyphens only
- [ ] `description` includes triggers and capabilities (third-person)
- [ ] `SKILL.md` is under 200 lines (use `references/` if larger)
- [ ] References are one level deep from `SKILL.md`
- [ ] Imperative form throughout ("Use X" not "You should")
- [ ] Quick reference table for any CLI/API commands
- [ ] Prerequisite verification if the skill depends on tools or config
- [ ] No time-sensitive information
- [ ] Tested with representative tasks

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/nicholasgriffintn) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

