system-boundaries-are-validating-and-evolution-tolerant

OUT derived (depth 3)

All system boundaries simultaneously enforce strict input validation (typed exceptions, referential integrity checks, hallucination filtering) and tolerate evolution gracefully (dual format parsers, forward-compatible metadata, schema-tolerant loading) — boundaries are both strict about current invariants and adaptive to future changes.

Summary

Every place where the system exchanges data with the outside world — APIs, file imports, database reads — applies two complementary strategies at once: it strictly rejects bad input right now (like throwing errors on duplicates or filtering out hallucinated references), while also gracefully handling older or newer data formats it wasn't originally built for (like falling back to alternative parsers or ignoring unrecognized fields). This means boundaries act as both gatekeepers and adapters, keeping current data clean without breaking when the system evolves.

Justifications

SL — Comprehensive validation (depth-2) and evolution tolerance (depth-1) are opposing concerns unified at system boundaries — strictness for correctness coexists with flexibility for evolution

Antecedents (all must be IN):

  • input-validation-is-comprehensive-at-all-boundaries — Input validation is enforced at every system boundary through complementary mechanisms: typed exceptions (ValueError for duplicates, PermissionError for access violations) enforce API-level preconditions at the call boundary, while defense-in-depth reference validation (import normalization dropping unknown refs, nogood filtering skipping invalid nodes, hallucinated ID rejection) catches invalid node references at every data-acceptance boundary.
  • system-tolerates-evolution-at-all-boundaries — The system handles format and schema evolution gracefully at every external boundary: derive output parsers support two format versions with automatic fallback, belief import silently skips unknown metadata fields, and storage tolerates missing tables from older database schemas via exception handling

Dependents

These beliefs depend on this one:

Details