本页目录
Registry 契约
一个 Prime 以 tarball + manifest 的形式发布。只要实现下面这一套最小 HTTP 契约的服务,都能当 registry。prime publish 和 prime install 是这套契约的客户端,参考实现是 @skill-wiki/registry。
最小 HTTP 契约
| 方法 | 路径 | 用途 |
|---|---|---|
| POST | /publish | 上传 Prime 的 tarball 和 manifest。 |
| GET | /pack/:scope | 按 scope 列出某个 Prime 的所有版本。 |
| GET | /pack/:scope/:version | 取某个具体版本的 manifest。 |
| GET | /pack/:scope/:version/tarball | 下载这个 Prime 的 tarball。 |
Prime manifest
每个发布出去的 Prime,tarball 根目录都要带一份 pack.yaml:
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" # 这个 Prime 对接的协议版本
sha256: "..." # 整个 tarball 的校验和;安装时校验 Tarball 布局
pack.tar.gz
├── pack.yaml
├── domain.yaml # 如果这个 Prime 自带 domain
├── primes/
│ └── sources/
│ └── @scope/
│ └── kind-name.prime
└── compiled/ # 可选,预编译产物
└── ... 认证
参考 registry 用 bearer token 鉴权 POST /publish,读操作公开。Token 怎么发是 registry 自己的事,协议不管——按你的分发模型挑就行(按组织、按用户、按 CI 都可以)。
版本
- Prime 版本走 semver:patch 是原子内容修改;minor 是新增原子或新增边目标;major 是删原子或删 verb。
- Prime 内部的原子也通过自己的
version字段走 semver。 prime install @scope会解析到匹配消费方SKILL.md声明范围的最新 semver。
跑一个自己的 registry
参考 registry 就一个文件:
# 在 4000 端口跑起来,Prime 存在 SQLite 里。
bun run packages/registry/src/index.ts --port 4000
# 在任意 Prime 根目录发布到它。
prime publish --remote http://localhost:4000
# 在任意消费方安装。
prime install @your-prime --remote http://localhost:4000