Machine Profile Baseline
Status: locked baseline for contracts-03-machine-profile-packaging.
Purpose:
- Define what counts as a machine package in this wave.
- Lock manifest scope before validator/CI wiring.
- Avoid layout churn while preserving current bioreactor workflows.
Current Package Reality (Pre-Contract)
Source-controlled machine assets already exist under config/:
config/bioreactor/(canonical lab application profile)config/mixed-bus-providers/(validation/scenario pack)
Current runtime profile entrypoints are descriptive and already used in docs/runbooks:
anolis-runtime.bioreactor.manual.yamlanolis-runtime.bioreactor.telemetry.yamlanolis-runtime.bioreactor.automation.yamlanolis-runtime.bioreactor.full.yaml
Package Boundary (Locked for This Wave)
- Keep machine packages under existing
config/<machine_id>/paths. - Do not migrate to
config/machines/<machine_id>/in this wave. - Composer workspace output in
systems/<project>/remains a separate concern. - Core runtime remains provider-agnostic.
Manifest Contract (v1)
Each machine package must include machine-profile.yaml with:
- identity:
schema_versionmachine_iddisplay_name
- package entrypoints:
runtime_profiles.manual(required)- optional
telemetry,automation,full
- provider config map:
- provider ID -> config file path
- optional behavior asset list
- runtime contract references:
- runtime config baseline doc path
- runtime HTTP baseline doc path
- compatibility metadata:
- runtime contract versions/notes
- provider compatibility policy per provider
Validation Expectations
Contract tooling must validate:
- manifest schema correctness,
- reference integrity (all declared files exist),
- referenced runtime profiles are valid against
schemas/runtime-config.schema.json.
Out of Scope (This Wave)
- packaging repo split decisions,
- runtime/provider version negotiation redesign,
- cross-dialect shared schema fragment extraction.
Implementation Status
Implemented in this wave:
schemas/machine-profile.schema.jsontools/contracts/validate-machine-profiles.py- contract fixtures under
tests/contracts/machine-profile/ - canonical
config/bioreactor/machine-profile.yaml - CI + local gate wiring for machine-profile validation