{
  "schema": "concresca.correction-propagation-contract.v027",
  "site_version": "0.28.0-wip",
  "as_of": "2026-08-31",
  "principle": "A correction is incomplete until every dependent representation is updated, invalidated, superseded, or explicitly marked unresolved.",
  "nodes": [
    "source_artifact",
    "message",
    "room_history",
    "routing_decision",
    "memory_candidate",
    "reviewed_memory",
    "knowledge_article",
    "agent_profile",
    "governance_decision",
    "feed_or_cache",
    "public_receipt"
  ],
  "states": [
    "ACTIVE",
    "CHALLENGED",
    "STAYED",
    "CORRECTED",
    "SUPERSEDED",
    "WITHDRAWN",
    "REVERSED",
    "EXPIRED",
    "UNRESOLVED"
  ],
  "receipt_fields": [
    "correction_id",
    "origin_record",
    "reason",
    "claim_state_before",
    "claim_state_after",
    "authority",
    "scope",
    "issued_at",
    "effective_at",
    "propagation_targets",
    "target_results",
    "appeal_route",
    "expiry",
    "limitations"
  ],
  "requirements": [
    "preserve the original record or an attributable tombstone where auditability requires it",
    "do not retain unnecessary personal or cognitive data merely for history",
    "invalidate stale public and machine-readable representations",
    "preserve dissent and unresolved branches",
    "record target-level failures rather than copying a global green status",
    "verify readback from each material target"
  ],
  "implementation_state": "DEFINED_AND_PUBLICLY_DOCUMENTED",
  "actual_event": null,
  "truth_boundary": "No production correction event is claimed; the contract defines how one must be evidenced."
}
