Technical guide

Prevent the wrong policy version from reaching a ROS 2 robot.

Model names, tags, and deployment filenames are convenient references, but they are not stable release identities. The dispatch path needs a cryptographic binding to the exact reviewed bytes and configuration.

Request a Shadow Audit

Problem: mutable names cross the release boundary

Suppose a launch file requests policy `navigation-latest`. If a registry tag or file changes after review, the same request can resolve to different bytes. A dashboard may still show an approval for the name even though the robot receives a different artifact.

Workflow

  • Create a canonical release manifest containing policy digest, runtime requirements, and controller-configuration digest.
  • Hash the canonical manifest and make that hash the approval subject.
  • Request a permit bound to release hash, action, device, and controller.
  • At the local ROS 2 gateway, recompute or retrieve the trusted digests and compare every binding.
  • Consume the permit once, then record the decision and whether dispatch occurred.

Example boundary

A planner can publish an intended action, but it cannot directly call the hardware controller. The gateway first checks the release and configuration bindings. A mismatch produces denied evidence and no controller signal.

Limitations

Content identity prevents version confusion; it does not establish that the policy is behaviorally correct. Keep simulation, staged hardware validation, safety-rated controls, and operational supervision separate.

Continue the architecture review

Ready to map the release path? Request a Shadow Audit.