Skip to content

Spec v0.4: cartridge blueprints (SKEEP-007, ADR-015) - #7

Merged
michalharakal merged 3 commits into
mainfrom
feature/skeep-007-cartridge-blueprints
Sep 21, 2026
Merged

michalharakal merged 3 commits into
mainfrom
feature/skeep-007-cartridge-blueprints

Conversation

@michalharakal

Copy link
Copy Markdown
Contributor

Tracking issue: #6. Proposal: docs/modules/ROOT/pages/skeep/007-cartridge-blueprints.adoc.

What this adds

A blueprint is the open, weight-free recipe a cartridge is built from; materialization executes it against a profile and yields an ordinary signed cartridge. This is what lets a cartridge be open source when its weights cannot live in a source repository, and it turns the prose build loop ("Developing a cartridge") into something a machine and a reviewer can check.

  • blueprints.adoc (normative, drafted): terms; MUST / MUST NOT; anatomy of blueprint.json; a closed step vocabulary (fetch, convert, quantize, export, compile, build-runtime, measure, pack, sign); the ten-step materialization procedure; descriptor resolution (the honesty rule is kept — a recipe may carry only reference measurements); licensing evaluated at materialization with a per-source redistribution class (allowed / restricted / acceptance-required); provenance; downstream/private materialization without a fork; reproducibility (direction, OQ11); open questions OQ-B1…B4.
  • Schemas cartridge-blueprint.schema.json, materialization-profile.schema.json + a worked FunctionGemma pair.
  • Manifest: optional provenance.blueprint and provenance.materialization (additive). Descriptor spec_version accepts 0.3 and 0.4 (shape unchanged).
  • ADR-015 (proposed), SKEEP-007 (Draft).
  • Concept page: cross-references from anatomy, Developing, Modes B/C, OQ11, "what is not a cartridge"; changelog v0.4; fixes the header that still said spec version 0.2. Roadmap: the materializer.
  • First guides: tutorial Build a cartridge from a blueprint (marked preview — the materializer plugin does not exist yet), how-to Materialize privately, explanation Blueprint vs. cartridge.

Verification

  • Worked blueprint + profile validate; the descriptor resolved from them validates against cartridge-descriptor.schema.json.
  • Negative cases rejected by schema: performance inside a template, a source file without a digest, an unknown redistribution class, blueprint provenance without a digest.
  • All existing example descriptors and manifests validate unchanged; verify_manifest.pyALL SIGNATURES OK.
  • Antora site builds with no warnings (27 pages, all xref anchors present, {spec_version} renders 0.4); ./gradlew build green.

Review notes

  • Draft on purpose: terminology and the step vocabulary are the things worth arguing about before anything is built on them.
  • The tutorial clones SKaiNET-developers/skainet-cartridge-blueprints, which does not exist yet — adjust if the repository gets a different name.
  • The Moonshine example in the licensing section relies on this spec's existing statement that Moonshine's non-English checkpoints are under a revenue-capped community license.

…rovenance

cartridge-blueprint.schema.json and materialization-profile.schema.json with a worked
FunctionGemma pair; the descriptor resolved from the pair validates against the descriptor
schema. Manifest schema gains optional provenance.blueprint and provenance.materialization
(additive; the three existing example manifests validate unchanged and still verify). The
descriptor spec_version accepts 0.3 and 0.4 -- its shape is unchanged.
…-007

A blueprint is the open, weight-free recipe a cartridge is built from: sources pinned by
revision and digest with a license and a redistribution class, a pinned toolchain, targets,
flavors, declared inputs, steps from a closed vocabulary, outputs mapped to manifest artifacts.
Materialization executes it against a profile and yields an ordinary signed cartridge whose
manifest records the blueprint. Concept page cross-references (anatomy, developing, modes B and
C, OQ11), roadmap entry for the materializer, changelog v0.4; the concept page header no longer
says spec version 0.2.
…blueprint vs. cartridge

Tutorial (preview of the materializer interface), how-to for downstream/private materialization
without a fork, and an explanation page; navigation and README entries.
@michalharakal
michalharakal marked this pull request as ready for review September 21, 2026 06:37
@michalharakal
michalharakal merged commit 5fc7b16 into main Sep 21, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant