You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
URML (urml.dev) is a small, Apache-2.0 language for describing robot intent: it validates a request against a capability manifest and a safety envelope, then dispatches. I'm writing because URML produces a structured audit record on every step, and recording it as a first-class MCAP channel would make it replayable, diffable, and visualizable in any MCAP-aware tool -- rather than tied to one viewer.
Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment.
A URML runtime writes one MCAP channel of audit messages: per step, the typed intent, the validator verdict (failing pass + error code when refused), and the dispatched substrate calls, each with a log time. Because MCAP is serialization-agnostic, the audit schema can be JSON Schema (the same program/manifest schemas URML already exports) or protobuf -- no new format invented. A recorded .mcap then opens directly in Lichtblick or any MCAP reader, so the validated-intent stream is portable across the whole ecosystem. (The Foxglove SDK is the natural live-streaming complement; this is about MCAP as the on-disk format.)
Two real questions: (1) Is recording URML's validated-intent audit trail as a dedicated MCAP channel the right pattern (schema-encoded messages on their own channel)? (2) Should the audit schema be advertised as JSON Schema or protobuf for best cross-tool support, and are there conventions for an "intent + verdict" channel that would make it idiomatic for MCAP readers?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Hi MCAP community,
URML (urml.dev) is a small, Apache-2.0 language for describing robot intent: it validates a request against a capability manifest and a safety envelope, then dispatches. I'm writing because URML produces a structured audit record on every step, and recording it as a first-class MCAP channel would make it replayable, diffable, and visualizable in any MCAP-aware tool -- rather than tied to one viewer.
Nothing here asks the project to adopt, host, or maintain anything. This is a request for comment.
A URML runtime writes one MCAP channel of audit messages: per step, the typed intent, the validator verdict (failing pass + error code when refused), and the dispatched substrate calls, each with a log time. Because MCAP is serialization-agnostic, the audit schema can be JSON Schema (the same program/manifest schemas URML already exports) or protobuf -- no new format invented. A recorded .mcap then opens directly in Lichtblick or any MCAP reader, so the validated-intent stream is portable across the whole ecosystem. (The Foxglove SDK is the natural live-streaming complement; this is about MCAP as the on-disk format.)
Two real questions: (1) Is recording URML's validated-intent audit trail as a dedicated MCAP channel the right pattern (schema-encoded messages on their own channel)? (2) Should the audit schema be advertised as JSON Schema or protobuf for best cross-tool support, and are there conventions for an "intent + verdict" channel that would make it idiomatic for MCAP readers?
Full write-up: https://github.com/URML-MARS/URML/blob/main/docs/rfcs/0466-mcap-outreach.md
Thanks for MCAP; a serialization-agnostic open logging format is exactly the right place to make a validated-intent trail portable.
Ido Yahalomi (URML, greenvh@gmail.com)
AI-assisted prose, maintainer-reviewed before posting (see VIBE.md). Human-only correspondence available on request.
All reactions