Skip to content
Back to skills

Caddy Enroll

BSecurity

Enroll a skill into Caddy's index so it can be surfaced when the right prompt arrives. Use when a new skill is created, copied in, or when a skill needs updated triggers. Usage — "/caddy-enroll <path to SKILL.md>".

  • 18 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
ai-agentsgobash

Security analysis

B88/100
  • criticalPipes output to a shell interpreter

Pro shows the line behind each finding and how to fix it

Scanned September 5, 2026

npx -y skills add wrg32786/aigent-os --skill caddy-enroll --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Caddy Enroll?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Caddy Enroll
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/wrg32786-caddy-enroll/badge)](https://www.skillsdirectory.com/skills/wrg32786-caddy-enroll)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: caddy-enroll
description: Enroll a skill into Caddy's index so it can be surfaced when the right prompt arrives. Use when a new skill is created, copied in, or when a skill needs updated triggers. Usage — "/caddy-enroll <path to SKILL.md>".
user-invocable: true
---

# /caddy-enroll

Enroll a skill into Caddy's `skill-index.json` so prompts matching the skill's triggers surface it as a hint.

## When to Use

- A new skill was created (often by `/skills-builder`) and needs to join the index
- A skill was copied in from outside (cloned plugin, downloaded skill)
- An existing skill's triggers need refreshing after its SKILL.md changed
- User says "enroll this skill" / "add this to Caddy" / "update Caddy for /X"

## When NOT to Use

- The skill is already indexed with correct triggers (check `.claude/skill-index.json` first)
- The skill has no SKILL.md / no description / no clear use case (fix the skill first, enroll after)

## Arguments

`$1` = path to the skill's SKILL.md or .md file. If omitted, ask which skill.

## Protocol

### Step 1: Read the target skill

Read the full SKILL.md at the given path. Parse:
- **name** — from the `name:` frontmatter field, or the filename stem
- **description** — from the `description:` frontmatter field, or first heading/line

### Step 2: Extract structured metadata

Produce this five-field structure:

```
- what: <one-line what it does>
- triggers: <comma-separated keywords/intents a prompt matcher could catch — 6-12 items, mix multi-word phrases and single keywords>
- use_cases: <3-5 concrete "when user says X, use this">
- anti_cases: <1-3 "do NOT use when...">
- related: <comma-separated related skills from the existing index>
```

**Trigger quality rules:**
- Multi-word phrases score 3x — prefer them for specific intents
- Single words only for unambiguous terms
- Avoid stopwords and generic terms ("help", "check", "run", "fix" alone)
- Aim for prompts a user would actually type — not jargon from the skill's own docs

**Anti-case quality:**
- Name the sibling skill that SHOULD be used instead
- Name any confidentiality or scope boundaries

### Step 3: Append to skill-index.json

Read `.claude/skill-index.json` (relative to AIGENT_ROOT).

If a skill with this `name` already exists: update its `triggers` and `why` — don't clobber triggers the user added manually.

If it's new: append a new entry with `{name, triggers, why}`.

Validate the file is still valid JSON before writing.

### Step 4: Test the enrollment

Run:
```bash
echo '{"prompt":"<test prompt that should trigger this skill>"}' | bash $AIGENT_ROOT/daemons/caddy.sh
```

Confirm the `[CADDY] /<name> - <why>` hint surfaces. If not, tune the triggers and retry.

### Step 5: Confirm

Report:
- Skill name and path
- Trigger count + short list
- Test prompt used + whether it surfaced

## Output Format

```
Enrolled: /<skill-name>
Triggers: <count> (<short list>)
Test: "<prompt>" → [CADDY] /<name> ✓
```

If the test failed or triggers need work:
```
Enrolled with warning: triggers need tuning
Test: "<prompt>" → no match
Suggested fix: add trigger "<candidate>"
```

## Why This Exists

Every skill the framework can execute must be enrolled here. Skipping enrollment = skill sits in the golf bag unlabeled. Caddy can't hand it to the AIgent if it's not indexed.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.