pnpm test:skillsEvery manifest parses, every declared file exists.
Open contribution
Anyone can propose a skill. A valid package appears in the catalogue without editing a single website component — but it has to earn its place first.
These skills are executable supply-chain input for other people’s agents. Every rule below exists because breaking it puts someone else’s repository at risk.
Every claim in catalog.json must be something you actually verified. Do not list evidence you did not produce, metrics you did not measure, compatibility you did not exercise, or a security review that did not happen. An unrun check is not a pass.
How it is enforced. Reviewed by a human. Fabricated evidence is grounds for rejection, not revision.
Declare filesystem access, external writes, and network access truthfully. If your skill instructs an agent to write outside the repository, call a paid API, or touch credentials, say so in the manifest.
How it is enforced. Validated shape; the values themselves are reviewed by a human.
SKILL.md is portable instruction text. Do not hard-code one vendor's tool names, model identifiers, or proprietary APIs into the instructions. Provider-specific presentation belongs in agents/.
How it is enforced. Reviewed by a human.
verification.limitations is required and must be real. State what the skill cannot judge, what was not exercised, and where its guidance stops. A skill with no stated limits will be sent back.
How it is enforced. Required by schema; contents reviewed by a human.
A released archive is immutable. If the package content changes at all, increment the version. Editing files under an already-published version is rejected automatically.
How it is enforced. Enforced by generation; the build fails on a modified published archive.
Skills run with full agent permissions. Instructions that exfiltrate data, disable safety checks, evade detection, install unreviewed remote code, or take destructive action without confirmation are refused outright.
How it is enforced. Reviewed by a human. Refused, not revised.
One directory under skills/. The directory name is the slug, and it must be lowercase hyphen-case under 64 characters.
skills/<your-skill-slug>/ ├── SKILL.md # required — YAML frontmatter + portable instructions ├── catalog.json # required — validated public metadata ├── agents/ │ └── openai.yaml # provider display metadata └── reference/ # optional — bundled files your skill declares
The name must match the directory exactly, or the build rejects the package.
--- name: your-skill-slug description: What the skill does, and when an agent should reach for it. ---
Run all of these locally before opening a pull request. A red gate is a blocked merge.
pnpm test:skillsEvery manifest parses, every declared file exists.
pnpm lintRepository lint rules.
pnpm format:checkPrettier formatting.
pnpm testUnit tests, including the discovery contract.
pnpm buildCatalogue generation and the production site build.
pnpm test:e2eBrowser journeys, accessibility, and published discovery.
Status is a promise to the person installing your skill. Claim the level you can evidence, not the one you hope for.
Found a security problem instead? Report it privately to security@bespoketech.com.ng rather than opening a public issue.