← All Event Families
OpenEarth

foundation.protocols.ai.certification.*

Tri-observer correlation verdicts: independently verify that what an AI agent reported (claude.*) matches what the bridge observed (observation.*) and what the system hooks confirmed (gryph.*). PASS when they agree, FAIL when they diverge, GAP when no observation signature exists.

4
Events
4
Timeline
0
State

Contents

How certification works. Every AI agent action produces three independent traces: ai.claude.* (the agent's self-report via the API boundary), ai.observation.* (the Kotlin bridge's own audit trail), and ai.gryph.* (independent system-level observation via Go hooks). The certification engine correlates these three observation layers and emits PASS/FAIL/GAP verdicts. See ai.claude.hook.* for the policy decision layer.
  Layer 4: ai.claude.hook.*       Policy decisions (should this happen?)
                ↓
  Layer 3: ai.claude.*            Self-report (agent says it happened)
                ↓
  Layer 2: ai.observation.*       Bridge observation (Kotlin daemon confirms it)
                ↓             ↗
  Layer 1: ai.gryph.*            System observation (Go hooks confirm it)
                ↓             ↙
         ai.certification.*      Tri-observer correlation verdict

1. Correlation Verdicts

Timeline Event

foundation.protocols.ai.certification.correlation.pass

One claude↔observation↔gryph event triplet was verified — all three observation layers match.

FieldTypeDescription
session_idstringSession identifier
timestampstringISO 8601 UTC
claude_event_typestringFull event type of the Claude self-report event
observation_event_typestringFull event type of the bridge observation event
gryph_event_typestringFull event type of the matching gryph event
correlation_keyobjectBinding keys: session_id, tool_use_id, subagent_id
fields_checkedarray[string]Fields compared (e.g., "content_hash", "exit_code")
Timeline Event

foundation.protocols.ai.certification.correlation.fail

A discrepancy was detected between claude, observation, and/or gryph layers.

FieldTypeDescription
session_idstringSession identifier
timestampstringISO 8601 UTC
discrepancy_typestringType of mismatch
Values: ghost_action, unreported_action, hash_mismatch, exit_code_mismatch, token_divergence, temporal_anomaly, orphaned_subagent_action, subagent_attribution_mismatch
severitystringImpact level
Values: critical, high, medium, low
claude_event_typestringClaude event type (empty for unreported_action)
observation_event_typestringBridge observation event type
gryph_event_typestringGryph event type (empty for ghost_action)
correlation_keyobjectBinding keys used for matching
expectedstringWhat was expected
actualstringWhat was actually observed

2. Coverage

Timeline Event

foundation.protocols.ai.certification.coverage.gap

A Claude event type has no corresponding gryph observation signature. Not a failure — a known blind spot.

FieldTypeDescription
session_idstringSession identifier
timestampstringISO 8601 UTC
claude_event_typestringThe event type with no signature
reasonstringWhy no signature exists
phase_neededstringImplementation phase that adds coverage

3. Session Verdict

Timeline Event

foundation.protocols.ai.certification.session.verdict

End-of-session rollup of all correlation results into a single judgment.

FieldTypeDescription
session_idstringSession identifier
timestampstringISO 8601 UTC
total_correlationsintTotal events correlated
passedintCount of PASS correlations
failedintCount of FAIL correlations
gapsintCount of coverage gaps
verdictstringSession-level judgment
Values: CERTIFIED (0 failures, 0 gaps), FLAGGED (≥1 failure), PARTIAL (0 failures, ≥1 gap)
trust_levelstringObserver configuration
Values: dual_observer (bridge + gryph), self_certified (bridge only, enterprise mode)
subagent_treeobjectAgent hierarchy: {"main": ["explore_abc", "plan_def"]}