G.Core:4 - Solution
Preface node
heading:g-core-4-solution:54323
Content
G.Core establishes Part‑G‑wide invariants as routing rules + typed catalogs + authoring discipline.
G.Core:4.1 - Delegation-first routing for Part‑G‑wide invariants
G.Core is a routing hub, not a “second spec”. For any Part‑G‑wide invariant that already has an owner, G.Core:
- standardises naming via
SuiteObligations.*(A.6.7:4.2), and - records where the invariant is owned, so downstream patterns cite rather than restate.
Routing table (normative index; no semantic duplication).
This pattern also owns four pieces of Part‑G‑wide infrastructure that are not already owned elsewhere:
- the typed RSCRTriggerKindId catalogue (single writer),
- the Default Ownership Index (single owner per DefaultId; index only), and
- the Δ‑discipline for ID‑stable deduplication (delegation without public‑ID breakage), and
- the linkage compression catalogues (
GCoreConformanceProfileId,GCoreTriggerSetId,GCorePinSetId) used to keepG.xlinkage sections small.
G.Core:4.2 - Mandatory G.Core linkage contract for every G.x
Every pattern G.x in Part G SHALL include a short, explicit Core linkage section that is notation‑independent and id‑based.
-
Relations:
Builds on: G.Core. -
Solution: include a section named
G.x:<n> - G.Core linkage (normative)that contains aGCoreLinkageManifestlisting, at minimum:CoreConformanceProfileIds := { GCoreConformanceProfileId… }(preferred) and/orCoreConformanceIds := { CC‑GCORE‑… }RSCRTriggerSetIds := { GCoreTriggerSetId… }(preferred) and/orRSCRTriggerKindIds := { RSCRTriggerKindId… }CorePinSetIds := { GCorePinSetId… }(preferred) and/orCorePinsRequired := { … }(pins/refs surfaced by the kit; include policy‑id pins and edition pins when applicable; list only additions/overrides if pin sets are used)DefaultsConsumed := { DefaultId… }(ids only; owner is resolved viaG.Core.DefaultOwnershipIndex; cite owner, don’t restate)TriggerAliasMapRef?(present or cited) if the pattern uses local trigger tokens
Nil‑elision (normative size rule). Any field whose value is ∅ MAY be omitted; omission means ∅ and does not relax any obligation.
Expansion rule (normative). If profile/set ids are used, the effective CoreConformanceIds / RSCRTriggerKindIds / CorePinsRequired are the unions of their expansions plus any explicitly listed ids (see G.Core:4.2.2, G.Core:4.2.3, and G.Core:4.3.4.2).
G.Core:4.2.1 - GCoreLinkageManifest (canonical shape)
GCoreLinkageManifest is the minimal, pattern‑local wiring manifest for citing G.Core without duplicating universal prose.
A G.x MAY render the manifest as prose, a table, or structured notation, but the ids SHALL be recoverable by authoring review:
GCoreLinkageManifest := ⟨ CoreConformanceProfileIds?: {GCoreConformanceProfileId…}, CoreConformanceIds?: {CC‑GCORE‑…}, RSCRTriggerSetIds?: {GCoreTriggerSetId…}, RSCRTriggerKindIds?: {RSCRTriggerKindId…}, CorePinSetIds?: {GCorePinSetId…}, CorePinsRequired?: {…pin ids…}, DefaultsConsumed?: {DefaultId…}, TriggerAliasMapRef?: TriggerAliasMapRef ⟩
G.Core:4.2.2 - GCoreConformanceProfileId catalogue (compression primitive)
A GCoreConformanceProfileId is a stable identifier for a named set of CC‑GCORE‑* items. It exists solely to reduce repetition in G.x linkage sections (no new semantics).
G.Core:4.2.3 - GCorePinSetId catalogue (compression primitive)
A GCorePinSetId is a stable identifier for a named set of commonly recurring pin obligations used in Part‑G kits. It exists solely to reduce repetition in G.x linkage sections (no new semantics).
Conditional pins (normative). In pin‑set expansions below, a pin marked with ? is conditional: it MUST be present iff the pattern actually uses the corresponding surface/artefact class; otherwise it MAY be omitted (nil‑elision permitted) and is treated as ∅. A G.x MAY strengthen a conditional pin to unconditional by listing it explicitly in CorePinsRequired.
G.Core:4.3 - RSCR Trigger Catalogue and docking discipline
G.Core is the single writer for Part‑G‑wide trigger kinds.
G.Core:4.3.1 - Definitions
-
RSCRTriggerKindId Canonical, stable identifier for a trigger kind (a class of “why RSCR/refresh must fire”). Cross-pattern reason code.
-
RSCRTriggerAliasId Pattern-scoped human label/token kept for ergonomics/backward compatibility (e.g.,
G.11:T4,G.6:H3:lane-tag correction). -
TriggerAliasMap Mapping table:
RSCRTriggerAliasId → {RSCRTriggerKindId…}(1..n). -
RSCRTrigger Minimal conceptual form (notation-independent):
Where
payloadPinscontains any edition pins, policy-ids, Bridge ids, evidence pins, regression-set ids, etc., required to make the trigger actionable.
G.Core:4.3.2 - Owner model
- TriggerOwner :=
G.Core. - Any new trigger kind SHALL be added to
G.Corefirst. - Other patterns MAY define aliases only (or cite shared alias maps), and MUST map aliases to canonical kinds.
G.Core:4.3.3 - Authoring rules
-
No implicit triggers: Any RSCR/SCR/refresh artefact that records reasons MUST record canonical
RSCRTriggerKindId. Aliases may be recorded as labels, but must not be the only reason code. -
No implicit overloading: A local token string (e.g.,
T4) SHALL NOT silently change meaning across patterns; namespace is part of the alias (G.11:T4≠A.20:T4). -
Granularity discipline: If a local cause is narrower than an existing canonical kind, map it to that kind and keep the nuance as a local scope note. If the difference matters for planning/selection, add a new canonical kind.
-
Multi-cause discipline: When an event spans multiple canonical kinds, record multiple triggers (preferred) or map the alias to a set
{…}and require emitting the full set.
G.Core:4.3.4 - Seed canonical catalogue (Phase‑2 minimum)
The Phase‑2 stabilized canonical catalogue (based on the Phase‑2 inventory; sufficient to dock legacy G.6:H3 and G.11:T0…T7 triggers and to populate RSCRTriggerKindIds in G.0…G.13):
RSCRTriggerKindId.LegalitySurfaceEditRSCRTriggerKindId.PenaltyPolicyEditRSCRTriggerKindId.CrossingBundleEditRSCRTriggerKindId.ReferencePlaneEditRSCRTriggerKindId.EditionPinChangeRSCRTriggerKindId.TokenizationOrNameChangeRSCRTriggerKindId.PolicyPinChangeRSCRTriggerKindId.TelemetryDeltaRSCRTriggerKindId.FreshnessOrDecayEventRSCRTriggerKindId.EvidenceSurfaceEditRSCRTriggerKindId.MaturityRungChangeRSCRTriggerKindId.BaselineBindingEditRSCRTriggerKindId.DefaultOwnerChange
G.Core:4.3.4.1 - Canonical kind definitions (normative, minimal)
Each RSCRTriggerKindId SHALL have a short, stable definition in G.Core (single-writer) to prevent semantic drift.
G.Core:4.3.4.2 - Canonical trigger sets (compression primitive)
GCoreTriggerSetId identifies a named set of RSCRTriggerKindId values. A G.x MAY cite trigger sets in RSCRTriggerSetIds instead of repeating long RSCRTriggerKindIds lists.
G.Core:4.3.5 - Initial alias maps
These alias maps are normative docking artefacts and preserve legacy tokens while moving semantics to canonical ids.
TriggerAliasMap.G11
Based on the existing trigger catalogue in G.11 (T0…T7).
G.11:T0 → { RSCRTriggerKindId.PolicyPinChange }G.11:T1 → { RSCRTriggerKindId.TelemetryDelta }G.11:T2 → { RSCRTriggerKindId.EditionPinChange }G.11:T3 → { RSCRTriggerKindId.EditionPinChange }G.11:T4 → { RSCRTriggerKindId.CrossingBundleEdit, RSCRTriggerKindId.PenaltyPolicyEdit }G.11:T5 → { RSCRTriggerKindId.FreshnessOrDecayEvent }G.11:T6 → { RSCRTriggerKindId.MaturityRungChange }G.11:T7 → { RSCRTriggerKindId.PolicyPinChange }
TriggerAliasMap.G0 (reserved; empty in Phase‑2).
Map any stable legacy registry‑hook labels emitted/recorded by G.0 to the canonical kinds above (typically LegalitySurfaceEdit, PenaltyPolicyEdit, CrossingBundleEdit, ReferencePlaneEdit, TokenizationOrNameChange), preserving the original label text as RSCRTriggerAliasId. If none exist, G.0 SHOULD emit canonical RSCRTriggerKindId values directly.
TriggerAliasMap.G6
EvidenceGraph H3 example causes → canonical kinds:
G.6:H3:freshness/decay change → { RSCRTriggerKindId.FreshnessOrDecayEvent }G.6:H3:Bridge CL/CL^k or loss update → { RSCRTriggerKindId.CrossingBundleEdit }G.6:H3:Φ/Ψ policy change → { RSCRTriggerKindId.PenaltyPolicyEdit }G.6:H3:lane tag correction → { RSCRTriggerKindId.EvidenceSurfaceEdit }G.6:H3:ReferencePlane correction → { RSCRTriggerKindId.ReferencePlaneEdit }G.6:H3:QD/OEE artefact updates (U.DescriptorMapRef.edition/DistanceDef, EmitterPolicyRef, InsertionPolicyRef, archive K-capacity) → { RSCRTriggerKindId.EditionPinChange, RSCRTriggerKindId.PolicyPinChange }
G.Core:4.4 - Default Ownership Index
G.Core provides an index of Part‑G defaults with a single owner per DefaultId. The index is not a “second spec”; it is a cross-reference table that points to the true owner (a CC item, policy‑id, or TaskSignature rule) and states applicability conditions.
G.Core:4.4.1 - Definitions
-
DefaultId Stable identifier of a default (a default constant or default rule).
-
DefaultOwnerRef A reference to the single owner of the default (e.g., a CC item id like
CC‑G5.23, or a policy id, or a TaskSignature rule definition).
G.Core:4.4.2 - Rules
- Exactly one owner per
DefaultId. - Any other mention in
G.xMUST be a citation/delegation to the owner, not a competing statement. - A default may be conditional (default-rule) with explicit applicability conditions.
- The Default Ownership Index SHALL NOT be used to “smuggle” mandatory invariants as defaults. Invariants remain invariants (typically routed via
CC‑GCORE‑…to canonical owners).
G.Core:4.4.3 - Seed Default Ownership entries (Phase‑2 minimum)
This table may grow over time; the rule is that the owner must already exist (or be intentionally set to G.Core when the default is truly Part‑G‑wide and not owned elsewhere). Any change in a row (add/remove/change owner) SHALL be treated as a refresh‑sensitive edit and recorded as RSCRTriggerKindId.DefaultOwnerChange (payload: affected DefaultId.*, old owner ref, new owner ref).
G.Core:4.5 - ID continuity protocol (Δ‑discipline)
When moving universal norms out of G.x into G.Core:
- existing public CC ids in
G.xthat may be referenced externally SHALL NOT be deleted or renamed; - such CC items SHALL become delegation items that point to the relevant
CC‑GCORE‑…item(s); - each
G.xSHALL add exactly one bridge CC itemCC‑Gx‑CoreRef(first in its CC list) that makes linkedCC‑GCORE‑…items mandatory forG.xconformance.
Legacy trigger tokens (e.g., G.11:T*, G.6:H3:*) are preserved as aliases and MUST map to canonical trigger kinds.
Non-CC public identifiers (e.g., UTSRowId, RSCRTriggerAliasId, deprecation notices, edition bumps) MUST obey the same Δ-discipline: preserve old ids; represent drift via alias/deprecation/edition evolution (see F.17 (UTS)); and emit canonical trigger kinds (RSCRTriggerKindId.TokenizationOrNameChange, RSCRTriggerKindId.EditionPinChange) when downstream impact is possible.
G.Core:4.6 - Explicit non-goals
G.Core does not:
- introduce CG‑frame kit entities (e.g., BridgeMatrix/ReferencePlane/Φ registries); those remain in their owning
G.x; - introduce method-family taxonomies, discipline packs, or generator orchestration mechanisms; those remain as
Extensionsin their owners (e.g., synthesis/shipping/refresh patterns); - define refresh algorithms; it defines trigger kinds and docking only.