Skills reference

Publishing a skill

A skill is a folder an AI coding agent can read. Here is what has to be in it, what your upload is checked against, and what happens after you hit publish.

What a skill is

A skill is a small folder of plain files. The root must contain a file named exactly SKILL.md — that is the entry point an agent reads first. Everything else is yours: reference notes, templates, examples, scripts your instructions point at.

SKILL.md is matched case-sensitively. A file called skill.md or Skill.MD will not be accepted as the entry point.

Package limits

These are the limits in force right now. They are set by the platform and can change — this page reads the live values rather than quoting a fixed number, so what you see here is what your upload will actually be checked against.

LimitNow
Files in a package25
Largest single file1 MB
Whole package5 MB
Title3120 characters
Short description10300 characters

If a limit is lowered after you publish, your skill keeps working. Every upload is checked against the current limits or the shape your previous version already had, whichever is more generous — so you can always ship a fix to a skill you have already published, even if it would be too large to create today.

File names and types

Name files using letters, numbers, dashes, underscores and dots. Spaces, accents, emoji and other punctuation are rejected by storage before they ever reach review — this is the single most common upload failure, and renaming the file is the whole fix.

Also rejected: absolute paths, anything with .. in it, Windows reserved names like CON or NUL, and two files whose names differ only in case (they collide on macOS and Windows).

Accepted extensions

.bash .cjs .css .csv .example .gif .html .jpeg .jpg .js .json .jsx .md .mdx .mjs .png .py .rb .sh .sql .toml .ts .tsx .txt .webp .xml .yaml .yml

Never accepted

.7z .a .app .bin .bz2 .class .deb .dll .dmg .dylib .exe .gz .jar .msi .node .o .pkg .pyc .rar .rpm .so .tar .tgz .war .wasm .zip

A file with no extension at all (LICENSE, Makefile) is fine — its contents are checked on the server instead.

Three ways to get your files in

  • Pick the files.Drag the folder's contents into the wizard. Best when you are assembling a skill by hand.
  • Upload a .zip. The archive is unpacked on the server. A single wrapping top-level folder is unwrapped for you.
  • Import from GitHub. Point at a public repo or a folder inside one. Only the files that pass the rules above come across.

All three end in the same place and are checked identically. Nothing you can do in one is accepted in another.

Review

Every skill is read by a human before it goes live — free ones included, first publish and every later content change. That is what lets the marketplace say each listing was reviewed, so there is no way to skip it and no tier that bypasses it.

A published skill does not go offline while an update is being reviewed. The live version keeps serving until the new one is approved. If changes are requested you will get a notification with the reason, and you can fix and resubmit in place.

How people install it

Once your skill is published, anyone can install it into their agent with one command:

npx promptdock@latest install your-handle/your-skill

The CLI verifies every file against a checksum before writing anything, and installs all-or-nothing — a failed download leaves the target folder untouched. If someone hits an error, every message links to the CLI error reference.