Skip to content
Back to skills

Skill Authoring

ASecurity

Use when creating or editing any skill in `skills/` — frontmatter rules, folder structure, the unified router shape, script bundling, and the quality checklist.

  • 15 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
documentationgo

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add youlianvr/oper-share --skill skill-authoring --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skill Authoring?

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

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

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-authoring
description: Use when creating or editing any skill in `skills/` — frontmatter rules, folder structure, the unified router shape, script bundling, and the quality checklist.
compatibility: operative for `skills/` in this workspace, synced to Freebuff account-skills by `_scripts/sync_skills.py`
---

# How to properly create skills and plugins

Rules per the Agent Skills specification (agentskills.io) plus what this
workspace has verified in practice.

## 0. Intake rule (workspace, before creating anything)

1. **Repeatability** — the pattern already repeated, or will clearly repeat,
   ≥ 2–3 times. One-off findings go to `_memory/`, not into a skill.
2. **No coverage** — scan `skills/` (routers and their `parts/`) and
   confirm nothing already covers it. The directory is the catalog. Update an
   existing part before adding a sibling.
3. **A place, not a pile** — a new procedure belongs in the router whose theme
   it serves, as `parts/<name>/`; a new top-level skill only when no theme fits.

Archive never deletes: retiring a skill means moving it out of `skills/`
(through `_scripts/trash.sh`), not rewriting history. Layer decisions live in
Memora under `root/skill/<name>`.

## 1. Frontmatter (mandatory fields — hard rules)

```markdown
---
name: my-skill
description: Use when [triggers/symptoms/contexts]. [what it does + when to apply]
---
```

| Field | Rule (spec) |
|-------|------------|
| `name` | MANDATORY. 1–64 characters, only `a-z0-9` + hyphens: `^[a-z0-9]+(-[a-z0-9]+)*$`. No `--`, no hyphen at start/end. **Must match the skill folder name** |
| `description` | MANDATORY. 1–1024 characters, non-empty. "What it does + when to use"; include keywords the agent searches by. NOT a workflow summary (agent follows description and skips the body) |
| `license` | optional |
| `compatibility` | 1–500 characters, only if environment requirements exist |
| `metadata` | optional, string→string map |
| `allowed-tools` | experimental |

- No vendor attribution, no chat-channel links, no third-party product names in
  frontmatter or body. A skill that advertises someone's channel is not a skill.
- Validate against the spec by reading the file; `skills-ref` and the retired
  `_scripts/audit_skills_format.py` are not part of this workspace's loop.

## 2. Directory structure

```
skill-name/
├── SKILL.md            # mandatory
├── scripts/            # optional: executable scripts
├── references/         # optional: details, "read when X"
├── assets/             # optional
└── any other files/folders — allowed
```

Discovery: `skills/<name>/SKILL.md` in the workspace, mirrored into
Freebuff account-skills by `_scripts/sync_skills.py`.

## 3. Unified router shape (all top-level routers)

Every router is four blocks in this order — no more, no less:

1. **Frontmatter trigger** — `name` matching the folder, `description` naming
   the situations and the words the owner actually says.
2. **`Choosing a part`** — a table `Situation | Part`, one line per part, so the
   agent loads one method instead of the whole router.
3. **`Rules`** — the contract: which forks go to `ask_questions`, the skill's
   Memora branch (`root/skill/<name>`) to read and append to, the tool or script
   the method actually uses, and the hard limits (`Never Destroy`, no external
   validation, no deploy without the owner).
4. **`Related`** — sibling routers and parts worth opening next.

Brevity over ceremony: a router that fits on one screen beats a manual. Detail
belongs in `parts/`, and a part is opened only when its situation matches.

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.