Architecture

Govenv architecture is semantic, not path-derived. Architectural subjects are Agda declaration identities (Name) and roles describe their semantic place in the system. Source paths belong to Govenv.SourceLayout; the root closure is owned by Govenv.lagda.md; generated artifacts belong to their materialization authority. None of those transport/layout concerns is an architectural role.

GV98 is still pending. This module therefore defines the architectural role vocabulary and allowed dependency directions without claiming that every repository declaration has already been classified or that those dependencies are already enforced.

{-# OPTIONS --safe #-}

module Govenv.Architecture where

open import Agda.Builtin.List using (List; []; _∷_)
open import Govenv.Kernel.Architecture

allowedDependencies : List Dependency
allowedDependencies =
    allow governance kernel
  ∷ allow protocol governance
  ∷ allow assurance governance
  ∷ allow assurance protocol
  ∷ allow assurance materialization
  ∷ allow assurance projection
  ∷ allow assurance kernel
  ∷ allow experiment kernel
  ∷ allow materialization governance
  ∷ allow materialization protocol
  ∷ allow materialization kernel
  ∷ allow projection materialization
  ∷ allow projection kernel
  ∷ allow adapter governance
  ∷ allow adapter assurance
  ∷ allow adapter materialization
  ∷ allow adapter projection
  ∷ allow adapter kernel
  ∷ []