Skip to content
Back to skills

Skill Authoring

ASecurity

Write, restructure, or audit an agent skill or plugin so it is concise, correctly triggered, self-contained, versioned, and installable on Claude Code and Codex. Use when creating a SKILL.md, tightening a skill description, splitting an oversized skill into references, adding hooks or evals to a plugin, packaging a marketplace, or checking why a skill misroutes or fails validation.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
ai-agentspython

Works with

  • claude code

Security analysis

A100/100

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

Scanned September 24, 2026

npx -y skills add MTEnt/special-skills --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/mtent-skill-authoring/badge)](https://www.skillsdirectory.com/skills/mtent-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: Write, restructure, or audit an agent skill or plugin so it is concise, correctly triggered, self-contained, versioned, and installable on Claude Code and Codex. Use when creating a SKILL.md, tightening a skill description, splitting an oversized skill into references, adding hooks or evals to a plugin, packaging a marketplace, or checking why a skill misroutes or fails validation.
license: MIT
metadata:
  version: "1.0.0"
  author: MTEnt
---

# Skill Authoring

A skill is a contract with a router and a reader. The router sees only `name` and `description`; the reader loads `SKILL.md` and then only the references it needs. Write for both.

## Operating contract

1. Define the skill's job in one sentence, the requests that must trigger it, and the nearby requests that must not. If the second list is empty, the skill is too broad.
2. Write the description last, from the trigger lists, following [description-writing.md](references/description-writing.md).
3. Keep `SKILL.md` under 10 KB and 500 lines: operating contract, workflow selection, and routing to references. Move procedures, catalogs, templates, and rarely needed rules into `references/` with a one-line trigger for each.
4. Make the package self-contained: no links outside the skill directory, no dependence on sibling packages at runtime, every script standard-library or clearly documented.
5. Declare version, license, side effects, permissions, and failure behavior in the package. Follow [package-standards.md](references/package-standards.md) for layout, manifests, and marketplaces.
6. Enforce behavior in code when it matters: a rule that must hold under pressure belongs in a hook or a deterministic script, not only in prose. See [hooks-and-evals.md](references/hooks-and-evals.md).
7. Run `python scripts/skill_lint.py <skill-dir>` before presenting the skill. Fix errors; treat warnings as review items.

## Audit an existing skill

Read the description first and predict the requests it will capture. Then read the body and answer:

- Does the body do what the description promises, and nothing the description hides?
- Which sentences would change agent behavior if deleted? Keep those; move or cut the rest.
- Where does the skill repeat a rule that another package owns? Embed the shared block verbatim or reference it; do not paraphrase.
- Which rules could a model silently skip? Those are hook or eval candidates.
- What evidence exists that the skill works? If none, write the two or three scenarios that would show it.

Report findings as: trigger defects, body defects, packaging defects, enforcement gaps, and evidence gaps, each with the exact file and line.

## Do not

- Do not write a description that is a summary of the body; it is a routing key.
- Do not add sections because a template has them.
- Do not create a plugin for a rule that a hook cannot enforce and an eval cannot observe; a sentence in an existing skill is cheaper.
- Do not claim a skill was tested unless the lint passed and a scenario ran.

Files in this skill

  • SKILL.md3 KB
  • agents/openai.yaml235 B
  • references/description-writing.md1.9 KB
  • references/hooks-and-evals.md2.3 KB
  • references/package-standards.md3.8 KB
  • scripts/skill_lint.py9.6 KB
  • tests/test_skill_lint.py4.8 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…