G.Core:4 - Solution
Preface node
heading:g-core-4-solution:78500
What this page is
This is generated FPF reference text from the specification preface or supporting sections. It helps interpret FPF; it is not FPF Reference product documentation.
Methodology
Use it to understand how the specification wants to be read, then return to a route, pattern, or work packet for active work. Cite generated IDs only when the wording changes the task decision.
Content
G.Core establishes Part‑G‑wide invariants as delegation rules + typed catalogs + authoring discipline.
G.Core:4.1 - Delegation-first citation for Part‑G‑wide invariants
G.Core is a citation hub, not a “second spec”. For any Part‑G‑wide invariant that already has a governing definition, G.Core:
- standardises naming via
SuiteObligations.*(A.6.7:4.2), and - records where the invariant is governed, so downstream patterns cite rather than restate.
Delegation table (normative index; no semantic duplication).
This pattern also governs four pieces of Part‑G‑wide infrastructure that are not already governed elsewhere:
- the typed RSCRTriggerKindId catalogue (single writer),
- the Default Governing Definition Index (one governing definition 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 manifest requirement 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; governing definition is resolved viaG.Core.DefaultGoverningDefinitionIndex; cite governing definition, 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 and alias continuity (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 - Governing-definition model
- TriggerGoverningDefinition :=
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 deprecated G.6:H3 and G.11:T0…T7 trigger labels and to populate RSCRTriggerKindIds in G.0…G.13):
RSCRTriggerKindId.LegalitySurfaceEditRSCRTriggerKindId.PenaltyPolicyEditRSCRTriggerKindId.CrossingBundleEditRSCRTriggerKindId.ReferencePlaneEditRSCRTriggerKindId.EditionPinChangeRSCRTriggerKindId.TokenizationOrNameChangeRSCRTriggerKindId.PolicyPinChangeRSCRTriggerKindId.TelemetryDeltaRSCRTriggerKindId.FreshnessOrDecayEventRSCRTriggerKindId.EvidenceSurfaceEditRSCRTriggerKindId.MaturityRungChangeRSCRTriggerKindId.BaselineBindingEditRSCRTriggerKindId.DefaultGoverningDefinitionChange
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 deprecated alias labels 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 deprecated 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 Governing Definition Index
G.Core provides an index of Part‑G defaults with one governing definition per DefaultId. The index is not a “second spec”; it is a cross-reference table that points to the governing definition reference (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).
-
DefaultGoverningDefinitionRef A reference to the governing definition 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 governing definition per
DefaultId. - Any other mention in
G.xMUST be a citation/delegation to the governing definition, not a competing statement. - A default may be conditional (default-rule) with explicit applicability conditions.
- The Default Governing Definition Index SHALL NOT be used to “smuggle” mandatory invariants as defaults. Invariants remain invariants (typically cited through
CC‑GCORE‑…and their canonical governing definitions).
G.Core:4.4.3 - Seed Default Governing-definition assignment entries (Phase‑2 minimum)
This table may grow over time; the rule is that the governing definition must already be named (or be intentionally set to G.Core when the default is truly Part‑G‑wide and not governed elsewhere). Any change in a row (add/remove/change governing definition) SHALL be treated as a refresh‑sensitive edit and recorded as RSCRTriggerKindId.DefaultGoverningDefinitionChange (payload: affected DefaultId.*, old governing definition ref, new governing definition 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.
Deprecated trigger labels (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 governing
G.x; - introduce method-family taxonomies, discipline packs, or generator orchestration mechanisms; those remain as
Extensionsin their governing definitions (e.g., synthesis/shipping/refresh patterns); - define refresh algorithms; it defines trigger kinds and docking only.
Last Updated: 2026-06-17 — upstream FPF commit 646b0b9b (github.com/ailev/FPF)