-
Notifications
You must be signed in to change notification settings - Fork 0
Event Contracts
Every function has a contract. Every event has a declaration. The routing table is the single source of truth.
Event Contracts define the declarative routing table that maps all 67 domain function handlers and 79 events to their FEEDS topics, subtypes, handler paths, required payload fields, and emitted events.
Modules:
-
src/core/feeds/contracts/routing_table.json— the manifest -
src/core/feeds/contracts/loader.py— load, query, fingerprint -
src/core/feeds/contracts/validator.py— publish-time validation
Schemas:
-
src/core/schemas/feeds/event_contract.schema.json— per-function contract schema -
src/core/schemas/feeds/routing_table.schema.json— routing manifest schema
Each function entry in the routing table:
{
"INTEL-F01": {
"name": "claim_ingest",
"domain": "intelops",
"description": "Ingest a new claim into the truth layer via FEEDS.",
"inputTopic": "truth_snapshot",
"inputSubtype": "claim_ingest",
"outputTopics": ["canon_entry", "drift_signal"],
"outputSubtypes": ["claim_accepted", "claim_rejected"],
"handler": "core.modes.intelops.claim_ingest",
"requiredPayloadFields": ["claimId", "statement", "confidence"],
"emitsEvents": ["INTEL-E01", "INTEL-E02"],
"stateWrites": ["canon_store", "memory_graph"],
"preconditions": ["claim has valid claimId"],
"postconditions": ["claim persisted in canon store"]
}
}| ID | Name | Input Topic | Input Subtype |
|---|---|---|---|
| INTEL-F01 | claim_ingest |
truth_snapshot | claim_ingest |
| INTEL-F02 | claim_validate |
canon_entry | claim_accepted |
| INTEL-F03 | claim_drift_detect |
drift_signal | claim_contradiction |
| INTEL-F04 | claim_patch_recommend |
drift_signal | claim_drift |
| INTEL-F05 | claim_mg_update |
canon_entry | patch_recommended |
| INTEL-F06 | claim_canon_promote |
canon_entry | claim_accepted |
| INTEL-F07 | claim_authority_check |
decision_lineage | authority_check |
| INTEL-F08 | claim_evidence_verify |
decision_lineage | evidence_check |
| INTEL-F09 | claim_triage |
drift_signal | claim_drift |
| INTEL-F10 | claim_supersede |
canon_entry | retcon_executed |
| INTEL-F11 | claim_half_life_check |
drift_signal | half_life_sweep |
| INTEL-F12 | claim_confidence_recalc |
drift_signal | confidence_decay |
| ID | Name | Input Topic | Input Subtype |
|---|---|---|---|
| FRAN-F01 | canon_propose |
canon_entry | canon_proposed |
| FRAN-F02 | canon_bless |
canon_entry | canon_proposed |
| FRAN-F03 | canon_enforce |
canon_entry | canon_blessed |
| FRAN-F04 | retcon_assess |
canon_entry | retcon_request |
| FRAN-F05 | retcon_execute |
canon_entry | retcon_assessed |
| FRAN-F06 | retcon_propagate |
canon_entry | retcon_executed |
| FRAN-F07 | inflation_monitor |
drift_signal | canon_inflation |
| FRAN-F08 | canon_expire |
canon_entry | canon_expire_sweep |
| FRAN-F09 | canon_supersede |
canon_entry | claim_superseded |
| FRAN-F10 | canon_scope_check |
canon_entry | scope_check |
| FRAN-F11 | canon_drift_detect |
drift_signal | canon_drift |
| FRAN-F12 | canon_rollback |
canon_entry | canon_rollback |
| ID | Name | Input Topic | Input Subtype |
|---|---|---|---|
| RE-F01 | episode_begin |
decision_lineage | episode_begin |
| RE-F02 | episode_seal |
decision_lineage | episode_active |
| RE-F03 | episode_archive |
decision_lineage | episode_sealed |
| RE-F04 | gate_evaluate |
drift_signal | gate_request |
| RE-F05 | gate_degrade |
drift_signal | gate_deny |
| RE-F06 | gate_killswitch |
drift_signal | killswitch_request |
| RE-F07 | audit_non_coercion |
decision_lineage | episode_active |
| RE-F08 | severity_score |
drift_signal | severity_request |
| RE-F09 | coherence_check |
drift_signal | coherence_request |
| RE-F10 | reflection_ingest |
decision_lineage | episode_sealed |
| RE-F11 | iris_resolve |
decision_lineage | iris_query |
| RE-F12 | episode_replay |
decision_lineage | episode_replay |
| RE-F13 | precedent_ingest |
decision_lineage | reflection_ingested |
| RE-F14 | pattern_fingerprint |
decision_lineage | precedent_stored |
| RE-F15 | precedent_match |
decision_lineage | precedent_query |
| RE-F16 | knowledge_consolidate |
decision_lineage | consolidation_request |
| RE-F17 | temporal_recall |
decision_lineage | temporal_recall |
| RE-F18 | knowledge_decay |
decision_lineage | decay_request |
| RE-F19 | iris_precedent_resolve |
decision_lineage | iris_precedent_query |
| ID | Name | Input Topic | Input Subtype |
|---|---|---|---|
| AUTH-F01 | action_request_intake |
authority_slice | action_request |
| AUTH-F02 | actor_resolve |
authority_slice | actor_resolve |
| AUTH-F03 | resource_resolve |
authority_slice | resource_resolve |
| AUTH-F04 | policy_load |
authority_slice | policy_load |
| AUTH-F05 | dlr_presence_check |
decision_lineage | dlr_check |
| AUTH-F06 | assumption_validate |
truth_snapshot | assumption_check |
| AUTH-F07 | half_life_check |
truth_snapshot | half_life_check |
| AUTH-F08 | blast_radius_threshold |
authority_slice | blast_radius_check |
| AUTH-F09 | kill_switch_check |
drift_signal | killswitch_check |
| AUTH-F10 | decision_gate |
authority_slice | decision_gate |
| AUTH-F11 | audit_record_emit |
authority_slice | audit_emit |
| AUTH-F12 | delegation_chain_validate |
authority_slice | delegation_check |
| ID | Name | Input Topic | Input Subtype |
|---|---|---|---|
| PDX-F01 | tension_set_create |
drift_signal | pts_create |
| PDX-F02 | pole_manage |
drift_signal | pts_pole_manage |
| PDX-F03 | dimension_attach |
drift_signal | pts_dimension_attach |
| PDX-F04 | dimension_shift |
drift_signal | pts_dimension_shift |
| PDX-F05 | pressure_compute |
drift_signal | pts_pressure_compute |
| PDX-F06 | imbalance_compute |
drift_signal | pts_imbalance_compute |
| PDX-F07 | threshold_evaluate |
drift_signal | pts_threshold_evaluate |
| PDX-F08 | drift_promote |
drift_signal | pts_drift_promote |
| PDX-F09 | interdimensional_drift_detect |
drift_signal | pts_id_drift_detect |
| PDX-F10 | seal_snapshot |
drift_signal | pts_seal |
| PDX-F11 | patch_issue |
drift_signal | pts_patch_issue |
| PDX-F12 | lifecycle_transition |
drift_signal | pts_lifecycle_transition |
from core.feeds.contracts.loader import load_routing_table
rt = load_routing_table()
# Look up a function
fn = rt.get_function("INTEL-F01")
print(fn.handler) # "core.modes.intelops.claim_ingest"
# Look up an event
ev = rt.get_event("INTEL-E01")
print(ev.produced_by) # ("INTEL-F01",)
# Get handler path
path = rt.get_handler("FRAN-F04")
# Get consumers of an event
consumers = rt.get_consumers("INTEL-E06")
# Get all functions in a domain
fns = rt.functions_by_domain("intelops")
# Get functions for a topic/subtype
fns = rt.functions_for_topic("drift_signal", "claim_contradiction")At publish time, the validator checks:
- Event has required payload fields per contract
- Output topics and subtypes match declared outputs
- State writes are consistent with handler declaration
Implementation: src/core/feeds/contracts/validator.py
The routing table has a SHA-256 fingerprint computed over the functions and events sections (sorted keys, compact JSON). This fingerprint is embedded in the manifest and verified by CI.
The Domino Delegation Encryption module (EDGE) defines 9 events across 3 domains. These events are emitted by the ceremony tool and can be consumed by Coherence Ops for audit and drift tracking.
| ID | Name | Trigger | Payload |
|---|---|---|---|
| DELEG-E01 | reops.delegation.ceremony_initiated |
Self-test passes, chain sealed | {session_id, chain_fingerprint, participant_count, timestamp} |
| DELEG-E02 | reops.delegation.keywords_generated |
Keywords created | {session_id, n, t, ttl_ms, created_at, expires_at} |
| DELEG-E03 | reops.delegation.ttl_expired |
TTL countdown reaches zero | {session_id, expired_at} |
| ID | Name | Trigger | Payload |
|---|---|---|---|
| DELEG-E04 | franops.delegation.quorum_reached |
4+ valid keywords entered | {session_id, valid_count, threshold} |
| DELEG-E05 | franops.delegation.message_locked |
Plaintext encrypted | {session_id, ciphertext_length} |
| DELEG-E06 | franops.delegation.message_unlocked |
Ciphertext decrypted | {session_id, plaintext_length} |
| ID | Name | Trigger | Payload |
|---|---|---|---|
| DELEG-E07 | intelops.delegation.ceremony_verified |
Verifier confirms record | {session_id, chain_fingerprint, all_checks_passed} |
| DELEG-E08 | intelops.delegation.fingerprint_mismatch |
Keyword fails fingerprint check | {session_id, slot_index, expected_fp} |
| DELEG-E09 | intelops.delegation.seal_tampered |
Chain hash mismatch on verification | {session_id, expected_hash, computed_hash} |
All 79 functions route through the existing 6 FEEDS topics plus authority_slice:
| Topic | Functions |
|---|---|
truth_snapshot |
INTEL-F01; AUTH-F06, F07 |
canon_entry |
INTEL-F02, F05, F06, F10; FRAN-F01–F06, F08–F10, F12 |
drift_signal |
INTEL-F03, F04, F07–F09, F11, F12; FRAN-F07, F11; RE-F04–F06, F08, F09; AUTH-F09; PDX-F01–F12 |
decision_lineage |
INTEL-F07, F08; RE-F01–F03, F07, F10–F12; AUTH-F05 |
authority_slice |
AUTH-F01–F04, F08, F10–F12 |
mg_update |
INTEL-F05 |
coherence_report |
RE-F09 |
The Judgment Refinement Module extends the routing table with a 5-stage coherence pipeline for external telemetry. JRM adapters normalize log sources into JRMEvent records, which flow through the pipeline and produce JRM-X packet zips.
| ID | Name | Input Format |
|---|---|---|
| JRM-A01 | suricata_eve |
Suricata EVE JSON lines (alert, dns, http, flow, tls, fileinfo) |
| JRM-A02 | snort_fastlog |
Snort fast.log [GID:SID:REV] format |
| JRM-A03 | copilot_agent |
Copilot/agent JSONL (prompt, tool_call, response, guardrail) |
| ID | Stage | Purpose | Output |
|---|---|---|---|
| JRM-S01 | truth |
Cluster events into claims by (source, signature) | Claims + truth_snapshot |
| JRM-S02 | reasoning |
Assign decision lanes (LOG_ONLY/NOTIFY/QUEUE_PATCH/REQUIRE_REVIEW) | ReasoningResults + DLR entries |
| JRM-S03 | drift |
Detect FP_SPIKE, MISSING_MAPPING, STALE_LOGIC, ASSUMPTION_EXPIRED | DriftDetections + DS entries |
| JRM-S04 | patch |
Create rev++ patch records with lineage preservation | PatchRecords |
| JRM-S05 | memory_graph |
Build evidence/claim/drift/patch graph + canon postures | MG delta + canon entries |
| ID | Name | Purpose |
|---|---|---|
| JRM-E01 | gate_validate |
Validate packet integrity, enforce environment scope, redact fields |
| JRM-E02 | hub_ingest |
Ingest multi-env packets, detect cross-env drift (VERSION_SKEW, POSTURE_DIVERGENCE) |
| JRM-E03 | advisory_publish |
Publish/accept/decline drift advisories with recommendations |
| JRM-E04 | packet_sign |
HMAC-SHA256 manifest signing and validation |
- IntelOps — claim lifecycle domain
- FranOps — canon enforcement domain
- ReflectionOps — gate enforcement domain
- AuthorityOps — authority enforcement domain
- ParadoxOps — paradox tension detection domain
- DecisionSurface — portable Coherence Ops runtime
- Cascade Engine — cross-domain propagation
- FEEDS Pipeline — event-driven pub/sub
- JRM Pipeline — log-agnostic refinement engine
Σ OVERWATCH — Coherence Ops Platform • Current release: v2.1.0 • DeepSigma
- Start
- Core
- Schemas
- FEEDS + Exhaust
- Integrations
- Reference Layer
- Ops
- Excel-First
- EDGE + ABP
- Domain Modes
- Governance
- Meta