On this page
Registry contract
A Prime ships as a tarball + manifest. A registry is anything that exposes the
minimum HTTP contract below. prime publish and prime install
are clients of this contract. The reference implementation is @skill-wiki/registry.
The minimum HTTP contract
| Method | Path | Purpose |
|---|---|---|
| POST | /publish | Upload a Prime tarball + manifest. |
| GET | /pack/:scope | List versions of a Prime by scope. |
| GET | /pack/:scope/:version | Get manifest of a specific version. |
| GET | /pack/:scope/:version/tarball | Download the Prime tarball. |
Prime manifest
Every published Prime ships with pack.yaml at the tarball root:
name: "@frontend-design"
version: "0.1.0"
description: "Design knowledge for AI agents — 898 atoms across 9 sub-domains."
license: Apache-2.0
atoms: 898
namespaces:
- "@community"
- "@impeccable"
- "@anthropic-impeccable"
- "@nielsen"
- "@w3c"
prime-version: "1.0" # protocol version the Prime targets
sha256: "..." # over the tarball; verified at install Tarball layout
pack.tar.gz
├── pack.yaml
├── domain.yaml # if the Prime ships its own domain
├── primes/
│ └── sources/
│ └── @scope/
│ └── kind-name.prime
└── compiled/ # optional, pre-compiled artifact
└── ... Authentication
The reference registry uses bearer tokens for POST /publish; reads are
public. Token issuance is registry-specific and outside the protocol — pick a model
(per-org, per-user, per-CI) that fits your distribution.
Versioning
- Prime versions are semver. Patch = atom edits. Minor = new atoms or new edge targets. Major = removed atoms or removed verbs.
- Atoms inside a Prime are also semver'd via the
versionfield. prime install @scoperesolves to the latest semver matching the consumer'sSKILL.md's declared range.
Running your own registry
The reference registry is a single file:
# Run on port 4000 with a SQLite-backed Prime store.
bun run packages/registry/src/index.ts --port 4000
# Publish to it from any Prime root.
prime publish --remote http://localhost:4000
# Install from it on any consumer.
prime install @your-prime --remote http://localhost:4000 See Publish & Install for the full round-trip.