Skip to content

Machine-readable contracts

Every discoverable framework primitive exposes a PrimitiveContract (drtoller.framework.capability).

Field Role
id / kind / version Stable identity
name / description Human text
inputs / outputs Generic I/O types (composition)
parameters Typed param specs (required/default)
capabilities Flags derived from runtime registries
compatible_with Compact kind:id consumers (catalog 1.1+)
mode_package / engine_packages / algorithm_packages Package hints for modes/patterns
documentation_ref Optional source hint

Not every field is required for every kind. Algorithms carry rich params; storage backends emphasize capability flags; patterns may have empty I/O lists.

Contracts are derived from existing registries (MetricMethod, EvaluationMethod, backend helpers, optional AlgorithmMethodInfo on register_embed_method / register_cluster_method).

Do not maintain a parallel hand-written catalog that can drift from runtime.

When you register a new algorithm, metric, evaluation method, backend, or pattern, ensure it appears correctly in:

Terminal window
drtoller inspect --kind algorithm
drtoller inspect <id> --kind algorithm --format json

See Registries and the Framework Extension SDK.