TheSkillz

How to create a skill

A skill is a procedure an AI agent follows: commands, checks, and a defined output. Here is the format, what passes review, and a prompt you can hand to your own agent.

Let your agent write it

Paste this into Claude Code, Codex, Cursor or Gemini CLI, in the repo you want a skill for.

Write an agent skill I can publish, packaged as a folder I can zip.

A skill is a procedure another AI agent follows — commands to run, checks to make, and the shape of
the output — not an essay about a topic. Pick one job it does well.

Create this structure:

  <skill-name>/
    SKILL.md              (required)
    references/*.md       (optional: rules, checklists, playbooks it should consult)
    scripts/*             (optional: scripts it can run)
    templates/*           (optional: output templates it can fill in)

SKILL.md must start with YAML frontmatter and nothing above it:

  ---
  name: <kebab-case-name>
  description: One sentence saying what it does AND when the agent should use it.
  license: MIT
  version: 1.0.0
  ---

Then the body, in this order:

  # <Title>

  ## When to use
  The situations that should trigger it, and when NOT to use it.

  ## Procedure
  Numbered, concrete steps. Real commands in code fences. No hand-waving.

  ## Checklist
  - [ ] Verifiable conditions that must hold before it declares success.

  ## Output format
  Exactly what it should produce, with a short example.

Rules — a skill that breaks these gets rejected by the security scan:

1. No piping remote content into a shell (no `curl … | bash`, no `wget … | sh`).
2. No base64-decoded or otherwise encoded commands, and no `eval` of remote content.
3. No reading or transmitting secrets: no .env contents, SSH keys, cloud credentials,
   keychain entries, or browser cookie/credential stores.
4. No literal API keys or tokens anywhere in the files.
5. No instruction to hide, conceal or omit anything from the user, and no attempt to
   override the agent's system instructions or skip confirmation for risky actions.
6. Do not request blanket tool permissions. Never write `allowed-tools: Bash(*)` or
   anything equivalent to bypassing permissions. If a step needs a command, name the
   specific command in the procedure instead.
7. Network calls only to well-known, named hosts, and say why each one is needed.
8. No zero-width or bidirectional-override characters, and no instructions hidden in
   HTML comments.

Write it as original work. Keep SKILL.md focused — a few hundred to a couple of thousand words is
usually right; push detail into references/ rather than padding the main file.

When you are done, tell me the folder path and give me the exact command to zip it.

The folder

Only SKILL.md is required. Everything else is optional, and anything you include is stored alongside it and delivered in the buyer’s download.

my-skill/
  SKILL.md            required — the procedure itself
  references/         rules, checklists, playbooks it consults
  scripts/            scripts it can run
  templates/          output templates it fills in

Frontmatter

SKILL.md opens with YAML frontmatter, with nothing above it.

name required
Kebab-case identifier, e.g. postgres-schema-design.
description required
One line covering what it does and when to use it. This is what an agent matches against, so make it specific.
license recommended
MIT, Apache-2.0, Proprietary — whatever you are actually granting.
version recommended
Semver. Defaults to 1.0.0. Bump it when you change the skill.

What passes review

Every submission is scanned automatically and then read by a person. The scan is not a formality — it blocks a skill outright on anything in the second list.

Gets approved

  • A procedure with real commands, checks and a defined output.
  • One job, done properly, rather than a survey of a topic.
  • Specific triggers in the description — when to use it, and when not to.
  • Original work you hold the rights to license.
  • Named hosts for any network call, with a reason.

Gets blocked

  • curl … | bash, encoded payloads, eval of remote content.
  • Reading or sending secrets — .env, SSH keys, cloud credentials, keychains, browser cookies.
  • Literal API keys or tokens in any file.
  • Prompt injection: hiding behaviour from the user, overriding system instructions, skipping confirmation.
  • Blanket permissions such as allowed-tools: Bash(*).
  • Zero-width or bidi characters, or instructions buried in HTML comments.

Packaging and publishing

  1. Zip the skill folder: zip -r my-skill.zip my-skill. Up to 5 MB and 200 files.
  2. Attach it on the publish page. We read the SKILL.md out of the archive — at the root or inside a single wrapper folder — and keep the supporting files. You can paste SKILL.md instead if there is nothing to bundle.
  3. Set a price, or leave it at zero. Free skills need no payment setup at all.
  4. It is scanned immediately and reviewed by a person. Approved skills get a public page, an install command, reviews, and a content hash pinning exactly what was reviewed.

What you earn and how payouts reach you is on the pricing page.

Got one ready?

Publishing is free, and review is quick.

Publish a skill