# What Are the Available Ponytail Skills? A Complete Guide to Built-In Modes

> Explore the six built-in Ponytail skills including review help gain debt and audit. Discover what each Ponytail skill offers in this comprehensive guide.

- Repository: [DietrichGebert/ponytail](https://github.com/DietrichGebert/ponytail)
- Tags: api-reference
- Published: 2026-09-06

---

**Ponytail ships with six built-in skills—ponytail, ponytail-review, ponytail-help, ponytail-gain, ponytail-debt, and ponytail-audit—each defined in a Markdown-based [`SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/SKILL.md) file under the `skills/` directory.**

Ponytail skills are **Markdown-based plugins** that control how the assistant behaves. When the system starts, [`ponytail/__init__.py`](https://github.com/DietrichGebert/ponytail/blob/main/ponytail/__init__.py) automatically scans the `skills/` folder, locates every sub-directory containing a [`SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/SKILL.md) file, and registers it with the Hermes plugin system (lines 196-200). This architecture makes extending Ponytail as simple as adding a new directory with a skill definition.

## How Ponytail Skills Work

The **skill registration loop** in [`ponytail/__init__.py`](https://github.com/DietrichGebert/ponytail/blob/main/ponytail/__init__.py) handles discovery dynamically:

```python

# From ponytail/__init__.py (lines 196-200)

# The system walks SKILLS_DIR and registers each SKILL.md found

from pathlib import Path
SKILLS_DIR = ROOT / "skills"

for skill_path in SKILLS_DIR.iterdir():
    if skill_path.is_dir() and (skill_path / "SKILL.md").exists():
        # Register with Hermes plugin system

        register_skill(skill_path.name, skill_path / "SKILL.md")

```

Each [`SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/SKILL.md) contains:
- **Front-matter** with `name`, `description`, and optional `argument-hint`
- **Body content** explaining ladder rules, intensity levels, and usage guidance

## Complete List of Built-In Ponytail Skills

### ponytail — Core Lazy Developer Mode

The **foundational skill** that establishes the "lazy senior developer" philosophy. It enforces a strict priority ladder: **YAGNI → stdlib → one-liner → minimal code**. Located at [`skills/ponytail/SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/skills/ponytail/SKILL.md), this skill controls how aggressively the assistant applies brevity principles.

```python

# Example: activating core ponytail with intensity level

from ponytail import ctx

ctx.execute("/ponytail ultra")  # YAGNI-extreme mode

ctx.execute("/ponytail lite")   # minimal changes only

```

### ponytail-review — Code Review Mode

**Purpose:** Guides the assistant to perform code reviews with brevity-focused, high-impact feedback.

Source: [`skills/ponytail-review/SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/skills/ponytail-review/SKILL.md)

This skill loads the review-specific ruleset, ensuring feedback follows the lazy-first hierarchy rather than over-engineered suggestions.

```python

# Programmatically load the review skill description

from ponytail import ctx

review_md = ctx.load_skill("ponytail-review")
print(review_md[:200])  # Preview skill definition

```

### ponytail-help — Documentation & Reference

**Purpose:** Provides usage hints, quick-reference documentation, and system guidance for Ponytail itself.

Source: [`skills/ponytail-help/SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/skills/ponytail-help/SKILL.md)

Use this skill when you need to understand available commands, intensity levels, or how to structure skill invocations.

### ponytail-gain — Improvement-Oriented Mode

**Purpose:** Directs the assistant toward **gain-type improvements**—performance optimizations, feature additions, or capability extensions—while maintaining the lazy-first philosophy.

Source: [`skills/ponytail-gain/SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/skills/ponytail-gain/SKILL.md)

Unlike the core mode which primarily restricts, `ponytail-gain` identifies genuine value-adds that justify deviating from pure minimalism.

### ponytail-debt — Technical Debt Reduction

**Purpose:** Focuses specifically on **identifying and reducing technical debt** using minimal-code approaches.

Source: [`skills/ponytail-debt/SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/skills/ponytail-debt/SKILL.md)

This skill applies the YAGNI ladder to refactoring decisions, preventing "debt reduction" from becoming over-engineering in disguise.

### ponytail-audit — Consistency & Compliance Mode

**Purpose:** Provides **audit capabilities** for checking consistency, security, and code-style compliance under lazy senior dev constraints.

Source: [`skills/ponytail-audit/SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/skills/ponytail-audit/SKILL.md)

The audit skill evaluates codebases without violating the core minimalism principles—no 50-page audit reports when a three-bullet summary suffices.

## Adding Custom Ponytail Skills

The registration system in [`ponytail/__init__.py`](https://github.com/DietrichGebert/ponytail/blob/main/ponytail/__init__.py) **automatically discovers new skills**. To extend Ponytail:

1. Create a new sub-directory under `skills/`
2. Add a [`SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/SKILL.md) file with proper front-matter
3. Restart the system—the skill appears as `ponytail:<skill-name>`

No code changes required. The Hermes integration handles command routing automatically.

## Skill Intensity Levels

All core Ponytail skills support **intensity modifiers** that control strictness:

| Level | Behavior |
|-------|----------|
| `lite` | Minimal changes, maximum preservation |
| *(default)* | Balanced application of YAGNI ladder |
| `ultra` | YAGNI-extreme, aggressive minimalism |

Pass these as arguments: `/ponytail-review ultra` or programmatically via `ctx.execute()`.

## Summary

- **Six built-in skills**: ponytail, ponytail-review, ponytail-help, ponytail-gain, ponytail-debt, ponytail-audit
- **Discovery mechanism**: [`ponytail/__init__.py`](https://github.com/DietrichGebert/ponytail/blob/main/ponytail/__init__.py) scans `skills/` for [`SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/SKILL.md) files (lines 196-200)
- **Architecture**: Markdown-based definitions with Hermes plugin registration
- **Extensibility**: Drop-in skill creation with automatic command exposure
- **Intensity control**: `lite`, default, and `ultra` modes adjust YAGNI strictness

## Frequently Asked Questions

### How do I check which Ponytail skills are available on my system?

The `ponytail-help` skill lists all registered skills. Programmatically, enumerate `SKILLS_DIR` in [`ponytail/__init__.py`](https://github.com/DietrichGebert/ponytail/blob/main/ponytail/__init__.py) or call `ctx.list_skills()` if exposed by your Hermes wrapper. Each skill directory containing [`SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/SKILL.md) is automatically registered at startup.

### Can I use multiple Ponytail skills simultaneously?

Yes. Skills compose through sequential commands. Execute `/ponytail-review` followed by `/ponytail-debt` to apply both review and debt-reduction lenses. The `ctx.execute()` method processes each skill's [`SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/SKILL.md) into the active prompt context.

### What makes a valid [`SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/SKILL.md) file for Ponytail?

Valid files require YAML front-matter with `name` and `description` fields, plus Markdown body content defining behavior. Optional `argument-hint` specifies accepted parameters like intensity levels. Place the file in `skills/<skill-name>/SKILL.md`—the registration loop handles the rest.

### How do I override or customize a built-in skill?

Copy the existing [`SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/SKILL.md) from `skills/<skill-name>/` to a new directory with your modified version, or edit in place. The registration system uses the first match found per directory scan order. For persistent customizations, create namespaced variants like [`skills/my-ponytail/SKILL.md`](https://github.com/DietrichGebert/ponytail/blob/main/skills/my-ponytail/SKILL.md).