template-skill

skill Template for creating new skills in gptme-contrib. Use this as a starting point when creating your own skills. skills/template-skill View on GitHub

Template Skill

This is a minimal skill template demonstrating the basic structure of a gptme skill.

Overview

Skills are enhanced lessons that bundle:

Basic Structure

Every skill needs:

  1. SKILL.md - This file with YAML frontmatter + Markdown content
  2. Supporting files (optional) - Scripts, templates, or resources

YAML Frontmatter

Required fields:

Optional fields:

Optional exchange fields (for publishing to a skill registry):

Markdown Content

The markdown body can include:

Creating Your Own Skill

  1. Copy this template-skill directory
  2. Rename to your-skill-name
  3. Update SKILL.md frontmatter (especially name and description)
  4. Write your skill instructions in markdown
  5. Add any supporting scripts or resources
  6. Test with gptme

Example: Minimal Skill

---
type: skill
name: my-skill
description: Brief description of what the skill does
status: active
match:
  keywords: [keyword1, keyword2]
scripts: []
dependencies: []
---

# My Skill

Instructions for using this skill...

Example: Skill with Scripts

---
type: skill
name: data-analysis
description: Data analysis workflows with pandas and visualization
status: active
match:
  keywords: [data analysis, pandas, visualization]
scripts:
  - helpers.py
  - plot_utils.py
dependencies:
  - pandas
  - matplotlib
---

# Data Analysis Skill

Use this skill for data analysis tasks...

## Bundled Scripts

- `helpers.py`: Common data manipulation functions
- `plot_utils.py`: Visualization utilities

## Usage

```python
# Import bundled helpers
from helpers import load_data, clean_data
from plot_utils import plot_distribution

# Analyze data
df = load_data("data.csv")
df = clean_data(df)
plot_distribution(df["column"])
## Example: Publishable Skill

```yaml
---
name: postgres-query-optimizer
description: Analyze and rewrite slow PostgreSQL queries using EXPLAIN ANALYZE output
status: active
match:
  keywords: [postgres, sql, query, explain, slow query]
exchange:
  version: "1.0.0"
  author: TimeToBuildBob
  license: MIT
  category: data-engineering
  dependencies:
    skills: []
    tools: [shell]
    packages: []
  quality:
    usage_count: 0
    success_rate: null
    loo_delta: null
  provenance:
    source_repo: TimeToBuildBob/bob
    source_path: skills/postgres-query-optimizer
---

Integration with Lessons

Skills complement lessons:

Example:

Publishing and Exchange

The exchange: block makes a skill discoverable and installable across the fleet. When all agents share a registry (e.g. gptme-contrib/skills/registry.json), any agent can find skills by category or dependency and install them with one command.

Exchange fields are optional — a skill works fine without them. Add them when you want the skill to be findable by other agents or to track quality signals over time.

Quality fields (usage_count, success_rate, loo_delta) are filled automatically by gptme-sessions telemetry and lesson-loo-analysis.py — you don't need to fill them in by hand.

Related