Skip to content

T-GCIL-relation-entity

Status: planning/proposed · Impact: medium · Complexity: large

SDLC has no typed edge between capabilities — depends_on is task-only and related is untyped. Stand up Relation as the dependency-intent edge — the allowed direction of dependency between two Capabilities, the one edge kind code can violate — gated on its first consuming projection per the D-ORMG activation rule (D-3PDM-cross-project-data-model-adoption P5 as amended 2026-07-17, finding F7).

  • Full S-0005 package at plugin/lib/model/entities/relation/: relation_type: depends_on (single value at birth; a negative form like must_not_depend_on may join under consumer pressure), from_id / to_id capability wikilinks, freeform body; base-36 ids; create/preview-id ops; registry rows plus identifier.ts { RL, relations, base36 } (D-0002-entity-identifier-shape already reserves RL).
  • The four code-fact edge types (calls | emits | reads | writes) are deliberately NOT part of the schema — they duplicate derivable system information and arrive later as derived edges (from locations[] + analysis), rendered distinctly and never stored (P5 amendment).
  • Ships with its first consumer: the capability-graph view (nodes = capabilities via parent_key, stored Relation edges rendered as intent) or an equivalent audit rendering.
  • Target consumer #2 (later): conformance checking — stored depends_on diffed against the derived call graph flags violations.
  • D-ORMG Relation row flips planned → active on ship.
  • AC-1: sdlc relation create mints a valid instance; audit validates it.
  • AC-2: audit reports broken from_id / to_id references (target must be a capability).
  • AC-3: the first consuming projection ships in the same milestone and renders Relation edges.
  • AC-4: the D-ORMG Relation row is active; the identifier gate accepts RL-… ids.
  • AC-5: at least one real Relation instance exists in the corpus.
  • Contract (CT) — stays deferred (3 donor instances, 1 broken).
  • Migrating existing prose wikilinks into Relation instances.
  • Derived code-fact edges (calls/emits/reads/writes) and the conformance diff — future work on the derived plane; never stored as entities.
  • Activation-gated: do not start until the consuming projection is scheduled in the same milestone (D-ORMG activation rule). No hard depends_on today.
  • D-3PDM-cross-project-data-model-adoption P5 / finding F7: the donor corpus holds 47 Relations (calls 24, depends_on 22) vs 3 Contracts — cheap edges got used; rich edges didn’t.
  • 2026-07-17 model review (P5 amendment): enum trimmed to dependency intent. The donor’s 24 hand-authored calls edges were copies of derivable facts — unverifiable at authoring time, drift-prone by construction; derive facts, store commitments.

← Back to Tasks