C.3.A:A.5 Design guidance & pitfalls [I]
Preface node
heading:c-3-a-a-5-design-guidance-pitfalls-i:34216
Content
Do this.
- Treat regulatory categories as Kinds. Put the definition into
KindSignature(aim for F4 predicates where practical). - Make time explicit. In guards, require a time selector (Γ_time) for effective dates and grace periods. Forbid “latest”.
- Publish bridges with loss notes. If two jurisdictions’ categories are “almost the same,” say how, rate
CL^k, and note what is lost. - Split “where” from “what.” Keep Scope (G) over
U.ContextSlice(jurisdiction, plant, Standard versions) separate from MemberOf on the kind. - Route uncertainty to R. Use
Ψ(CL^k)andΦ(CL); never modify F/G to hide ambiguity.
Avoid this.
- Synonym games. Don’t alias “Adult” to local
AdultPatientin prose. Use a KindBridge. - Scope by labels. “Domain = EU” is not a guard. Use explicit
U.ContextSlicefields (jurisdiction, version, time selector) and Scope predicates. - Hiding time. Never rely on “current law”; always fix Γ_time (point/window/policy).
- Widening G to compensate for type gaps. If kinds don’t line up, introduce a subkind, add a mask/adapter, or narrow; don’t “make the scope bigger”.