Skip to content

Create Your First Skill

AgentOps is built out of skills. A good first contribution is not "make a huge framework." It is "teach the system one reusable intent."

This guide shows the smallest current path to adding a new skill without tripping the repo gates.

Before You Start

Pick a skill idea that is:

  • Narrow: one clear job, not an entire workflow
  • Reusable: something you would invoke more than once
  • Observable: it should produce an artifact, decision, or validation step someone can check

Good first-skill ideas:

  • A focused validator for one common failure mode
  • A domain-specific research or triage helper
  • A contribution helper for one external tool or service
  • A narrow knowledge-management skill that transforms one artifact type into another

Avoid first-skill ideas that:

  • duplicate an existing skill in docs/SKILLS.md
  • require a big new runtime abstraction
  • mix discovery, implementation, and release into one entrypoint

The Minimum Shape

Create a directory:

Bash
mkdir -p skills/your-skill-name

Then create skills/your-skill-name/SKILL.md using the current frontmatter contract:

Markdown
---
name: your-skill-name
description: 'What this skill does. Triggers: "trigger phrase", "other phrase".'
skill_api_version: 1
context:
  window: fork
  intent:
    mode: task
  sections:
    exclude: [HISTORY]
  intel_scope: topic
metadata:
  tier: execution
---

# your-skill-name

## Purpose

What this skill is for and what problem it solves.

## When to Use

- Trigger condition one
- Trigger condition two

## Inputs

- What the user should provide
- Any repo or runtime assumptions

## Instructions

1. The first concrete step.
2. The main execution flow.
3. The validation or closeout step.

## Output

- What artifact, decision, or side effect this skill should produce

## Examples

```text
Example prompt or invocation
Text Only
Use [templates/skill.template.md](templates/skill.template.md) as a starting point if you want a copyable scaffold.

## Pick The Right Tier

Most first contributions should use one of these:

- `execution`: a focused task skill
- `session`: onboarding, status, or recovery help
- `knowledge`: transforms or traces knowledge artifacts
- `product`: product, docs, or release oriented
- `contribute`: contribution-specific workflow support

See [SKILL-API.md](SKILL-API.md) for the full frontmatter contract and [../skills/SKILL-TIERS.md](https://github.com/boshu2/agentops/blob/main/skills/SKILL-TIERS.md) for the full taxonomy.

## Keep The Entry Point Lean

Your `SKILL.md` should be the operator surface, not the whole encyclopedia.

If the skill needs more detail, add:

- `references/*.md` for deeper guidance
- `scripts/*.sh` for helper logic or validation
- `schemas/*.json` only when downstream tooling consumes a structured contract

If you add files under `references/`, make sure `SKILL.md` links to them. CI fails when reference files exist but are not linked.

## Common CI Footguns

These are the most common ways first skill PRs fail:

- Missing or stale frontmatter
- New references not linked from `SKILL.md`
- Adding a skill directory without syncing counts
- Leaving `TODO` or `FIXME` text in `SKILL.md`
- Adding symlinks anywhere in the repo

This repo is strict because skills are shipped artifacts, not informal notes.

## Validate Before You Open A PR

Run the current local checks:

```bash
# Required for any skill change
bash skills/heal-skill/scripts/heal.sh --strict

# Required when docs or skill counts change
bash tests/docs/validate-doc-release.sh

# If you added or removed a skill directory
scripts/sync-skill-counts.sh

# Recommended fast gate before push
scripts/pre-push-gate.sh --fast

If your change affects Codex behavior or the checked-in Codex bundle, also run:

Bash
bash scripts/audit-codex-parity.sh --skill your-skill-name
bash scripts/validate-codex-generated-artifacts.sh --scope worktree

Where To Look For Good Examples

Start from a simple, high-signal skill rather than the biggest orchestration layer.

Useful examples:

Opening The PR

Explain four things clearly:

  • the user intent the skill handles
  • why an existing skill was not enough
  • what artifact or outcome it produces
  • what checks you ran locally

Useful supporting docs: