diff --git a/rust/src/core/ocla/invocation.rs b/rust/src/core/ocla/invocation.rs
index 3b0b441..7c2d910 100644
--- a/rust/src/core/ocla/invocation.rs
+++ b/rust/src/core/ocla/invocation.rs
@@ -148,6 +148,7 @@ pub struct CapabilityObservationV1 {
     pub output_tokens: u64,
     pub latency_ms: u64,
     pub failure_mode: Option<CapabilityFailureMode>,
+    pub output_ref: Option<String>,
     pub metrics: BTreeMap<String, u64>,
 }
diff --git a/rust/src/core/ocla/adapters/native_context.rs b/rust/src/core/ocla/adapters/native_context.rs
index 4a0b1a7..8bd3a55 100644
--- a/rust/src/core/ocla/adapters/native_context.rs
+++ b/rust/src/core/ocla/adapters/native_context.rs
@@ -89,8 +89,13 @@ impl CapabilityAdapter for NativeContextAdapter {
         let output = self.engine.read(&paths, &mode)?;
         let elapsed_ms = check_timeout(start, invocation.timeout_ms)?;
+        let output_ref = Some(evidence_ref(&output));
         Ok(CapabilityResult {
             success: true,
             output_tokens: count_tokens(&output),
             latency_ms: elapsed_ms,
-            observation: CapabilityObservationV1::success(&invocation, input_tokens, output_tokens, elapsed_ms, None),
+            observation: CapabilityObservationV1::success(
+                &invocation, input_tokens, output_tokens, elapsed_ms, output_ref,
+            ),
             evidence_ref: observation.output_ref.clone(),
         })
diff --git a/rust/tests/ocla_integration_suite.rs b/rust/tests/ocla_integration_suite.rs
index 82e6e07..ad07122 100644
--- a/rust/tests/ocla_integration_suite.rs
+++ b/rust/tests/ocla_integration_suite.rs
@@ -4,6 +4,7 @@ use lean_ctx::core::ocla::{
     CapabilityInput, CapabilityInvocation, PolicyConstraints,
 };
+use lean_ctx::core::ocla::reference_adapters::ComparisonReceipt;
 
 #[test]
 fn native_adapters_emit_comparable_public_observations_without_rankings() {
