Machine Profile Baseline
Status: Locked.
Purpose
Define machine package expectations under config/<machine_id>/ and lock manifest behavior for validation tooling.
Canonical Artifacts
- Manifest schema:
schemas/machine/machine-profile.schema.json - Validator:
tests/contracts/machine-profile/validate-machine-profiles.py - Fixtures:
tests/contracts/machine-profile/ - Canonical package example:
config/bioreactor/machine-profile.yaml - Runtime config schema dependency:
schemas/runtime/runtime-config.schema.json
Locked Behavior Summary
- Machine packages remain under
config/<machine_id>/in this wave. - Manifest file is
machine-profile.yaml. - Manifest declares:
- identity (
schema_version,machine_id,display_name) - runtime profile entrypoints (
manualrequired; optionaltelemetry,automation,full) - provider config references
- optional behavior asset references
- runtime contract references and compatibility notes
- identity (
- Validator enforces:
- schema correctness
- referenced file existence
- referenced runtime profile schema compatibility
Validation Gates
python3 tests/contracts/machine-profile/validate-machine-profiles.py- Runtime config contract validation remains in place for referenced profiles.
Drift Notes and Change Rule
- Keep machine profile schema additive when possible.
- Path/layout changes require coordinated updates to manifest schema, validator, package docs, and fixtures.
- Do not introduce packaging-repo split semantics in this baseline.
