external-beliefs-are-safe-and-current

OUT derived (depth 5)

External beliefs are managed end-to-end across their complete lifecycle with no gap between ingestion safety and ongoing maintenance: defensively contained at ingestion through layered validation, correctly lifecycle-managed through import reconciliation and staleness checking, and actively tracked for currency — no external belief enters unvalidated, drifts undetected, or persists without lifecycle oversight.

Summary

The system has no blind spots when handling knowledge imported from outside sources — every external claim is validated before entry, tracked for staleness against its original source, and reconciled over time so nothing slips in unchecked or quietly goes stale. This is currently marked as not holding, meaning at least one of those guarantees has a gap.

Justifications

SL — ingestion defense + currency tracking = complete external belief management (depth-5 GATE from depth-4 + depth-3 GATE)

Antecedents (all must be IN):

  • external-beliefs-are-defended-and-lifecycle-managed — External beliefs are managed end-to-end across a complete trust boundary: defensively contained at ingestion through layered validation pipelines and namespace isolation, then actively lifecycle-managed through dual reconciliation modes, staleness detection against source material, and CI gating — no phase of external belief existence lacks oversight.
  • belief-currency-is-actively-managed — The system actively manages belief currency bidirectionally: the production-ready derive pipeline safely introduces new beliefs through defensive validation, while the staleness CI gate detects drift in existing beliefs against source material — together preventing both unsafe additions and undetected obsolescence.

Unless (any of these IN defeats this justification):

  • missing-source-file-is-silent — If a node's source file no longer exists on disk, `check_stale` silently skips it; callers cannot distinguish "file deleted" from "file never tracked."
  • derive-agent-count-bug — `_build_beliefs_section` has a bug: `count += len(belief_ids)` is inside the per-belief loop instead of outside it, inflating the count and shrinking the non-agent budget below intended size
  • hash-truncation-is-16-hex — Source hashes are SHA-256 truncated to the first 16 hex characters (64 bits), reducing collision resistance to ~32 bits for birthday attacks compared to the full 256-bit hash.

Dependents

These beliefs depend on this one:

Details