Skill Wiki v0.1.0

Docs / spec / overview

On this page

Specification — overview

The protocol surface, frozen at v1.0 (2026-05-07).

Status

Spec: v1.0, frozen 2026-05-07. No further breaking changes before v2.
Implementation: ~75 % of v1 spec. See site index for the component-by-component status table.

The seven things in the protocol

1. Atoms

The unit of knowledge. 28 kinds across 5 layers (Data / Behaviour / Composition / Style / Meta). Every atom declares its id, version, body fields specific to its kind, and a list of edges out.

2. Edges

14 typed verbs: related, requires, enhances, validates-with, contradicts, specializes, conflicts, extends, derived-from, compatible, supplies-to, see-also, includes, relationships. Each verb has allowed source and target kinds, and semantics the L3 cross-atom checker reasons over.

3. Projection

Each atom is rendered to three Markdown views: summary (~30 tokens, always-in-index), core (~150 tokens, on retrieval-hit), full (~380 tokens, on direct hit). The chunker is kind-aware — a rule's summary is its claim; a method's summary is its goal.

4. Composition contracts

The contract block on a method, persona, or scope declares atoms that must be included when the parent is loaded, atoms that must be avoided, and atoms that are conditionally required. Contracts are evaluated by the runtime, not by the agent — the agent always sees a complete-by-construction set.

5. Registry contract

A Prime ships as a tarball + manifest. A registry is anything that implements the HTTP routes POST /publish, GET /pack/:scope, and GET /pack/:scope/:version/tarball. prime publish and prime install are clients of this contract; the reference implementation is @skill-wiki/registry.

_index.xml format

The always-loaded index. One <cluster> per domain; <atom> entries inside list id, kind, tokens (full count), q (quality score), and <edge> children.

Projection levels are agent-selectable

The agent chooses which projection to load via the MCP tool's level parameter. A retrieval-driven turn typically loads core for selected atoms; a focal turn loads full. summary never needs to be loaded — it's already in the index.

What the protocol does not specify

Skill Wiki is intentionally domain-blind. The protocol does not specify:

  • What kinds your domain uses. Pick from the 28; the rest are no-ops in your corpus.
  • Which intent fields to emit at L1. That's the domain plugin's job.
  • How to validate generated output at L5. Also domain plugin.
  • How to retrieve. The reference impl uses 6-axis ranking; alternative implementations are free to differ.

See Domain plugin for the boundary.