Skip to content
Back to skills

Skill Creator

ASecurity

Designs, writes, and reviews Agent Skills for EvoFlux, covering use cases and evaluation scenarios, the SKILL.md frontmatter and description, body structure, progressive disclosure into references/, scripts/, and assets/, and self-validation against the Agent Skills specification. Use when the user asks to create or write a new skill, turn a repeated workflow into a skill, improve or review an existing SKILL.md, or fix a skill that never triggers or triggers too often. Not for installing a th...

  • 11 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 29, 2026
ai-agentspythongoshelltestinggitapidocumentation

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 29, 2026

npx -y skills add evoelsewhere/evoflux --skill skill-creator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skill Creator?

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

Security grade badge for Skill Creator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/evoelsewhere-skill-creator/badge)](https://www.skillsdirectory.com/skills/evoelsewhere-skill-creator)

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: skill-creator
description: Designs, writes, and reviews Agent Skills for EvoFlux, covering use cases and evaluation scenarios, the SKILL.md frontmatter and description, body structure, progressive disclosure into references/, scripts/, and assets/, and self-validation against the Agent Skills specification. Use when the user asks to create or write a new skill, turn a repeated workflow into a skill, improve or review an existing SKILL.md, or fix a skill that never triggers or triggers too often. Not for installing a third-party skill bundle from a URL or archive (read the skill-installer skill) or for editing an agent's configuration.
---

# Skill Creator

A skill is a directory that gives an agent the procedural knowledge for one
kind of task. EvoFlux lists every skill's `name`, `description`, and the
absolute location of its `SKILL.md` in the system prompt; the agent reads
`SKILL.md` with the `read` tool when a task matches, and reads or runs bundled
files only when `SKILL.md` points to them.

```text
my-skill/
├── SKILL.md       required: YAML frontmatter + Markdown instructions
├── references/    optional: documentation read on demand
├── scripts/       optional: executable code, run with the shell tool
└── assets/        optional: templates, data, images used in output
```

Nothing else belongs in a bundle: no `agents/*.yaml`, no `.evoflux.json`, no
`evals/`, no `README.md`, no changelog. There is no mode scope; a skill is
available in both Work and Coding mode.

## Where to create the skill

Create new skills in the user skills directory; its absolute path is stated in
the Skills section of the system prompt. The skill is the direct child
`<user skills directory>/<name>/SKILL.md`. Create it under
`<workspace>/.evoflux/skills/<name>/` only when the user wants it shared with
a repository. Discovery refreshes automatically after the files are written;
no restart is needed.

To install an existing third-party bundle instead of writing one, read the
`skill-installer` skill.

## Workflow

Copy this checklist and track progress:

```text
- [ ] 1. Collect use cases and at least three evaluation scenarios
- [ ] 2. Record baseline behavior without the skill
- [ ] 3. Write the frontmatter
- [ ] 4. Write the minimal body that closes the observed gaps
- [ ] 5. Split detail into references/, scripts/, assets/
- [ ] 6. Self-validate (checklist below)
- [ ] 7. Run the scenarios with the skill, fix, repeat
```

### 1. Collect use cases and evaluation scenarios

Build evaluations before writing extensive documentation. Pin down with the
user, as **Trigger -> Steps -> Result**:

- the outcome the user wants, and the literal phrases they would type;
- the steps in order, the tools and scripts needed, and the domain knowledge
  the agent does not already have;
- adjacent requests that must *not* load the skill.

Write at least three scenarios in this shape:

```json
{
  "skills": ["my-skill"],
  "query": "Extract all text from this PDF file and save it to output.txt",
  "files": ["test-files/document.pdf"],
  "expected_behavior": [
    "Reads the PDF with an appropriate library or command-line tool",
    "Extracts text from every page without skipping any",
    "Saves the text to output.txt in a readable format"
  ]
}
```

Keep scenarios and their test files **outside** the bundle (for example in the
session workspace or the user's repository); never add an `evals/` directory
to the skill. For scenario design, trigger testing, and iteration, read
[references/evaluation.md](references/evaluation.md).

### 2. Record baseline behavior

Run the scenarios without the skill and note what the agent gets wrong, asks
about, or does inefficiently. The skill exists to close those gaps and nothing
more.

### 3. Write the frontmatter

```yaml
---
name: processing-pdfs
description: Extracts text and tables from PDF files, fills PDF forms, and merges documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
---
```

Hard rules:

- `name`: 1-64 characters, lowercase letters, digits, and single hyphens;
  equals the directory name; must not contain `anthropic` or `claude`; no XML
  tags.
- `description`: 1-1,024 characters, third person, states **what** the skill
  does and **when** to use it with concrete trigger terms (file types, phrases
  users say). No XML tags, no "I" or "you". An optional short "Not for ..."
  sentence stops near-miss triggering.
- Optional: `license`, `compatibility` (at most 500 characters of environment
  requirements), `metadata` (string-to-string map), `allowed-tools` (displayed
  only; it does not change EvoFlux permissions).
- EvoFlux keys: `disable-model-invocation: true` hides the skill from the
  catalog so it runs only when the user types `$name` (use it for long,
  interrupting, or side-effectful workflows); `user-invocable: false` removes
  it from the `$` picker.
- Any other key is ignored and reported as a warning.

For every field with examples, the error and warning rules, and description
rewrites, read [references/frontmatter.md](references/frontmatter.md).

### 4. Write the minimal body

The agent is already capable; add only what it does not know. For each
paragraph ask whether the agent needs it and whether it justifies its tokens.

- Match specificity to fragility: prose for judgment-heavy work, exact steps or
  a checklist for fragile sequences, a script for deterministic operations.
- Put must-not-skip rules first. Number steps that must run in order and state
  what each step needs from the previous one.
- Add a feedback loop where quality matters: run the validator, fix, repeat
  until it passes.
- Give one default approach with an escape hatch, not a menu of options.
- Use one term per concept throughout; give concrete input/output examples.
- No time-sensitive statements ("currently", "as of", pinned model names). Put
  superseded behavior in a clearly labeled legacy section if it must stay.
- Refer to other skills by name ("read the `pdf-processing` skill"); do not
  route with `$other-skill` inside a body.

For structural patterns (workflows, feedback loops, templates, examples,
conditional workflows, plan-validate-execute, MCP tool references), read
[references/patterns.md](references/patterns.md).

### 5. Split detail with progressive disclosure

- Keep the `SKILL.md` body under 500 lines and the whole file readable in one
  `read` result (keep it well under 20,000 characters).
- Link every reference file **directly** from `SKILL.md` with a one-line
  condition saying when to read it. Reference files must not depend on further
  links for essential information (one level deep).
- Start any reference file longer than 100 lines with a `## Contents` list of
  its sections.
- Use relative paths with forward slashes (`references/api.md`), never
  backslashes, absolute paths, or `../` escaping the bundle.
- Say whether each script is to be **run** ("Run
  `python scripts/validate.py form.json`") or **read** ("See
  `scripts/validate.py` for the algorithm"). Use one invocation style and
  state required packages (`uv run --with pypdf python scripts/extract.py`).
- Skill directories are read-only to the agent's tools, so scripts must write
  output to the workspace, not into the bundle. The agent derives the absolute
  script path from the `SKILL.md` location.

### 6. Self-validate

Check every item before handing over. Use `shell` or `read` to confirm, do not
assume.

```text
- [ ] Directory name equals frontmatter name; name matches ^[a-z0-9]+(-[a-z0-9]+)*$, <= 64 chars, no anthropic/claude
- [ ] Frontmatter is valid YAML between --- lines; only allowed keys; metadata values are strings
- [ ] description <= 1,024 chars, third person, what + when, no XML tags
- [ ] compatibility (if present) <= 500 chars
- [ ] Body is non-empty, < 500 lines; whole SKILL.md well under 20,000 chars
- [ ] Every relative link resolves to a file inside the bundle; forward slashes only
- [ ] Every reference file is linked from SKILL.md with a when-to-read condition
- [ ] Reference files over 100 lines start with ## Contents
- [ ] No nested SKILL.md, no symlinks, no agents/, evals/, .evoflux.json, README.md
- [ ] Every script runs on a representative input; dependencies are stated
- [ ] No time-sensitive statements, placeholders, or machine-specific paths
```

Count lines and characters with the shell (for example `wc -lc SKILL.md`)
rather than estimating. After writing, confirm the skill appears in the
catalog on the next turn, or under Settings, Skills.

### 7. Run the scenarios and iterate

Run each scenario in a fresh conversation with the skill available. Observe
which files the agent reads, which steps it skips, and where it hesitates.
Fix the specific gap, re-run, and repeat. When the user brings failures from
real sessions, encode the fix as an explicit instruction, troubleshooting
entry, or validation step.

## Reviewing an existing skill

1. Read its `SKILL.md` and list the bundle files.
2. Run the self-validation checklist and report every failed item.
3. Diagnose behavior:
   - **Never triggers**: the description is generic or lacks the words users
     say. Rewrite it with concrete file types and phrases.
   - **Triggers too often**: add a "Not for ..." boundary and narrow the scope.
   - **Loads but instructions are ignored**: rules are buried or verbose. Move
     critical rules to the top; replace prose validation with a script.
   - **Slow or context-heavy**: `SKILL.md` is too large. Move conditional
     detail into linked reference files.
4. Propose concrete before/after edits, not general advice. Remove legacy
   control-plane files (`agents/`, `evals/`, `.evoflux.json`) and move their
   meaning into the frontmatter (`disable-model-invocation`) or out of the
   bundle (evaluation scenarios).

Files in this skill

  • SKILL.md9.6 KB
  • references/evaluation.md5.5 KB
  • references/frontmatter.md5.1 KB
  • references/patterns.md6.3 KB

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.