G.Core:8 - Common anti-patterns and how to avoid them
Preface node
heading:g-core-8-common-anti-patterns-and-how-to-avoid-them:54643
Content
-
Anti-pattern: Restating CN‑Spec/CG‑Spec rules inside a
G.x“for convenience”.
Avoid: cite A.19 / G.0; route viaCC‑GCORE‑CN‑CG‑1. -
Anti-pattern: Adding a fourth guard status (“unknown”, “maybe”, “probe-only”) as a separate decision value.
Avoid: keep guard domain tri‑state; express “probe-only” as policy/branching and record via pins/audit. -
Anti-pattern: Treating mandatory invariants as “defaults” to centralize them.
Avoid: keep invariants as invariants (CC‑GCORE‑* routed to canonical owners); restrict the Default Ownership Index to true defaults (constants or conditional default-rules). -
Anti-pattern: Turning partial orders into scalar ranks silently.
Avoid: keep set‑valued semantics unless a total order is explicitly declared by a comparator/policy. -
Anti-pattern: Competing defaults scattered across multiple patterns.
Avoid: Default Ownership Index; delegate duplicate statements to the single owner. -
Anti-pattern: Local trigger tokens without canonical mapping.
Avoid: provide/cite aTriggerAliasMapwith namespace‑qualified aliases. -
Anti-pattern: Breaking public CC ids during dedup.
Avoid: convert to delegation items; preserve IDs.