Skip to content

Risk register

Foundation failures propagate quietly because consumers can remain locally green while interpreting the same shared record differently.

Risk Early signal Consequence Required control
semantic drift field or identifier meaning changes without versioning consumers agree on shape but disagree on meaning invariant record, explicit version, consumer proof
silent coercion old or invalid payload is accepted through defaults incompatibility is hidden until downstream behavior reject or register a migration with loss policy
canonical-byte drift dependency, ordering, float, or datetime handling changes fingerprints and retained artifacts change byte fixtures over supported values
migration loss provenance, outcome class, precision, or unknown field disappears history becomes unrecoverable source/target fixtures and explicit loss report
fingerprint misuse volatile metadata enters stable identity or semantic fields are omitted false cache miss or false identity declared scope and equal/changed meaning tests
policy leakage shared primitive embeds one consumer’s rule Foundation becomes an accidental product owner move policy downstream and keep neutral representation
consumer fork package copies or locally reinterprets a shared type two contract dialects emerge public import and cross-package boundary guards
dependency behavior drift Pydantic or another admitted library changes public behavior source-compatible release breaks bytes, schemas, or errors constrained version and upgrade validation
provenance detachment normalized record loses source or transformation artifact cannot be audited provenance invariant and round trip
flowchart LR
    S["shared contract drift"] --> M["migration or byte drift"]
    M --> F["fingerprint mismatch"]
    S --> C["consumer forks"]
    F --> H["history or cache failure"]
    C --> H

Schema/version ambiguity, irreversible migration loss, fingerprint collision or reuse, and reverse dependencies from product packages are release-blocking. Other risks remain open until named evidence closes them; local test success does not downgrade their severity.