Publish a skill
A skill is a folder you keep in git. If you already write agent skills, you are one manifest away from publishing. Agencies and freelancers who sell this work by hand are the builders this hub is for.
- 1
Scaffold
pnpm casper init skills/my-skill
- 2
Write the prompt
Edit SKILL.md. Say what to look at, what good output looks like, and what to leave alone.
- 3
Declare scopes
In skill.yaml list only the connector scopes the skill needs: resource:read, resource:write (becomes a proposal) or resource:generate (makes an asset, capped per run). Anything else is never offered to the model.
- 4
Write the eval
eval.yaml: at least three cases with inputs and what you expect: mentions, proposal counts and kinds, cost and tool-call limits.
- 5
Run it
pnpm casper eval skills/my-skill --out reports/my-skill.json
- 6
Publish
Open a pull request with the skill folder and its report. A skill without a passing eval is not listed.
Three other things you can publish
A dataset
pnpm casper dataset init datasets/my-data
A folder with dataset.yaml (schema, license, provenance) and data/*.jsonl or .csv. Validation checks every row. Licensed text needs a consent.yaml beside it, and the schema refuses anything but text.
A creator voice
pnpm casper voice build datasets/<creator> skills/voice-<creator>
Reads a kind: text dataset and writes a skill: a measured style card with quotes cited by post id, a retrieval tool over the posts, an eval. Then casper voice judge prints held-out real posts beside generated ones in random order for the creator to rank blind.
A media skill
connectors: media: [models:read, images:generate]
Declare the media connector and the skill can call generate_image and generate_video. Each call is priced from the catalogue before it runs; MEDIA_MAX_USD_PER_RUN refuses anything over the cap. Assets land in studio/ and on the Studio page.
What you get
- Your skill ranked on the public leaderboard, with your name on it and a link to your agency.
- Eval runs on every change, so you can see when a model or prompt tweak helps or hurts.
- Paid per run once the hub opens to merchants. Terms are published before that happens, not after.
What the runtime enforces, so you do not have to
- Tools outside your declared scopes do not exist as far as the model is concerned.
- Write tools record proposals. Nothing in a store or an ad account changes until a person approves it.
- Generate tools run under a per-run spend cap, priced from the catalogue before the call. The connector never posts what it makes.
- A token budget per run. A skill that runs past it is stopped and the run is marked as such.
- Every number in the output is expected to come from a tool result, and the evals check it.
- A licensed dataset without a consent record, or a text dataset without id, text, posted_at and channel, does not validate and is not listed.