Skip to content

Define a scaffold compatibility and rollout manifest for trainable RLM roots #101

Description

@shanev

Why

Post-trained RLM roots learn against a scaffold, not against an abstract "RLM" interface. Prompt templates, REPL globals, capability names, terminal semantics, truncation, errors, and budgets jointly form the model-facing ABI. A rollout is not reproducible or safe to use for training unless it records that resolved contract.

Droste already has versioned runner/source protocols, prompt-pack identity, and a unified Trace ABI. The missing public contract is one immutable, content-addressed manifest that identifies the exact scaffold and inference configuration that produced a rollout or that a checkpoint expects.

Scope

  • Define a strict, versioned ScaffoldManifest / RolloutManifest schema containing at least:
    • Droste engine version and source revision when available;
    • runner, source, kernel/capability, trace, and prompt-pack ABI versions;
    • resolved prompt-pack ID, revision, profile, and content hash;
    • model-visible globals/capability manifest and its hash;
    • terminal, output-truncation, refinement, repair, and extraction contract identities;
    • root and subcall model IDs/immutable revisions;
    • sampling parameters, output limits, budgets, timeout, concurrency, and seed;
    • parent/child identity semantics for subcalls.
  • Produce the manifest once at run start after all defaults and overrides resolve.
  • Include its ID/hash in startup, result/replay, and terminal run evidence without copying sensitive prompt or data content into durable telemetry.
  • Add a compatibility check that can compare a checkpoint's declared scaffold requirements with a resolved run and return a typed mismatch before inference.
  • Define an extension/join seam for trainer-owned task, split, verifier, reward, and authorization metadata. Keep those evaluation facts outside Droste's generic runtime trace.
  • Document canonical serialization, hashing, optional-field rules, and compatibility behavior.

Design constraints

  • Do not couple Droste to a trainer, model registry, database, or product.
  • Do not treat trace retention as permission to train.
  • Do not make prompt text, user context, code, stdout, or answers part of content-free durable telemetry.
  • Do not duplicate PromptPack, capability, Trace ABI, or runner-protocol types; compose their identities.
  • Adding a trainer adapter must not change the engine's pure runtime contract.

Tests

  • Equivalent resolved runs serialize byte-identically and yield the same hash.
  • A material prompt-pack, capability, terminal-contract, model-revision, sampling, or budget change changes the hash.
  • Dictionary ordering and irrelevant host metadata do not change the hash.
  • Missing/incompatible checkpoint requirements fail with a typed, actionable error before an LLM request.
  • Durable evidence remains content-free; replay remains retention-controlled.
  • Native and runner/Pyodide paths resolve the same manifest for the same effective configuration.

Acceptance criteria

  • A public versioned manifest schema and canonical hash algorithm are documented.
  • Every Droste run exposes the resolved manifest identity.
  • Checkpoint compatibility can be checked without importing a trainer or model registry.
  • Trainer-owned outcome metadata has an explicit external join seam.
  • Trace retention and training authorization remain independent.
  • Tests cover determinism, compatibility failures, privacy, and native/runner parity.

Related public work

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Roadmap core: sequenced work that unblocks the architecturearchitectureStructural work from the Bitter-Lesson convergence plan (principles.md)cross-repoRequires coordinated changes across tensor-systems repositoriesenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions