Skill Wiki v0.1.0

Docs / architecture / pipeline

On this page

5-layer pipeline

A turn through Skill Wiki has exactly five layers. Three are protocol (frozen at v1); two are pluggable (domain-defined).

The pipeline

Skill Wiki system architecture — 8 layers from entry to model providers

Layer-by-layer

L1 · Intent classification (plugin)

Free-text brief in. IntentObject out. The shape is domain-defined — Skill Wiki only specifies that L1 must produce a serialisable object that downstream layers can read.

// Example (security domain)
interface SecurityIntentObject {
  task_type: "threat-model" | "compliance-check" | "code-review";
  target_surface: "api-endpoint" | "auth-flow" | "data-pipeline";
  severity_threshold: "low" | "medium" | "high" | "critical";
  required_frameworks: string[];
  ambiguity_flags: string[];
}

L2 · Retrieval (protocol)

IntentObject + corpus index in. Ranked atom set out. The reference implementation uses 6-axis ranking: kind match, tag match, edge centrality, projection-fit cost, persona affinity, validator quality. The protocol only specifies that L2 returns an ordered list of atom ids with explanations.

L3 · Composition (protocol)

Ranked atoms + their contracts in. A "contracted set" out — atoms whose contracts have been resolved (must-includes pulled in, must-avoids filtered, conditionals evaluated against the IntentObject). The projection level for each atom is also decided here based on the budget.

L4 · Generation (agent)

The agent itself is L4. Given the contracted atom set + their loaded projections, the agent generates the final artifact. Skill Wiki has nothing to say about how the agent generates — only about what's in its context when it does.

L5 · Validation (plugin)

Generated artifact + corpus rules in. Verdict out. The shape is domain-defined: HTML structure validation, JSON-schema check, regex over prose, LLM-judge over a rubric — all valid implementations of L5. Failures surface fix instructions; up to two retry cycles before hard-failing.

Why "L5" and not "L4"?

L1, L2, L3 are compile-time validators in name (parser → semantic → cross-atom). L4 is the agent. L5 is the runtime output validator. The naming is consistent — every L-prefix is "validation layer N." Generation has no L-number.

What's frozen vs what's free

LayerFrozen at v1?Variability
L1 — IntentNo (plugin)Object shape per domain.
L2 — RetrievalYes (interface)Ranking algo can vary.
L3 — CompositionYesContract evaluation is deterministic.
L4 — GenerationAgent's job; not part of protocol.
L5 — ValidationNo (plugin)Validator shape per domain.

See Compile time and Runtime for how L2 + L3 + L5 are implemented in the reference v0.1.0.