dynamicsystemsarchitecture.org

Observation Kernels

Turns VerificationRegistry data into a real evidence-completeness measurement — the layer that feeds the Research State Kernel with numbers instead of hand-typed test values.

PurposeCompute evidence_fraction and verification_status for real, from actual registry data, instead of narrating a judgment.
StatusVerified — executed directly against a real VerificationRegistry instance, output shown below
Depends onverification_registry.py
Superseded by
EvidenceReal execution output, this page, run 2026-07-15.

Source

def evidence_completeness_observer(registry, claim_id):
    total_invariants = len(registry._invariants)
    if total_invariants == 0:
        return {"evidence_fraction": 0.0, "reason": "No invariants registered yet -- nothing to measure against."}

    matching_records = [r for r in registry._records if r.claim_id == claim_id]
    if not matching_records:
        return {"evidence_fraction": 0.0, "reason": "No verification records found for '%s'." % claim_id}

    most_recent = matching_records[-1]
    if not most_recent.passed:
        return {"evidence_fraction": 0.0, "reason": "Most recent verification for '%s' did not pass." % claim_id}

    checked = len(most_recent.invariant_names_checked)
    fraction = checked / total_invariants

    return {
        "evidence_fraction": round(fraction, 3),
        "checked": checked,
        "total_invariants": total_invariants,
        "is_stale": registry.is_stale(claim_id),
        "reason": "%d of %d currently-registered invariants checked and passed." % (checked, total_invariants),
    }


def verification_status_observer(registry, claim_id):
    result = evidence_completeness_observer(registry, claim_id)
    if result["evidence_fraction"] == 0.0:
        return "none"
    if result.get("is_stale", True):
        return "partial"
    if result["evidence_fraction"] >= 0.99:
        return "full"
    return "partial"

Real execution output

Run directly against a fresh VerificationRegistry, three invariants registered in sequence — not a mock, the real class.

=== Real test: claim checked against ALL current invariants ===
{'evidence_fraction': 1.0, 'checked': 2, 'total_invariants': 2, 'is_stale': False,
 'reason': '2 of 2 currently-registered invariants checked and passed.'}
Status: full

=== Real test: claim checked against only SOME current invariants (should be lower fraction) ===
{'evidence_fraction': 0.5, 'checked': 1, 'total_invariants': 2, 'is_stale': True,
 'reason': '1 of 2 currently-registered invariants checked and passed.'}
Status: partial

=== Real test: a NEW invariant gets added -- claim_A should now be genuinely stale/partial ===
{'evidence_fraction': 0.667, 'checked': 2, 'total_invariants': 3, 'is_stale': True,
 'reason': '2 of 3 currently-registered invariants checked and passed.'}
Status: partial

=== Real test: claim with no records at all ===
{'evidence_fraction': 0.0, 'reason': "No verification records found for 'never_checked_claim'."}

The third test is the one that actually proves something: adding a third invariant correctly dropped a previously-full claim to partial, without that claim's own history changing at all. This is the staleness mechanism working end to end, not just in isolation.

Comments

We'll only use this to contact you if we reply.