Logo FS-Skia-UI

ADR 0005 — Configuration representation (D6)

Context

The governance tooling needs a representation for its configuration (target lists, validation rules, gate routing, feature/tier policy, etc.). Today this information is spread across build.fsx literals, YAML (validation.contract.yml, extension.yml, audit-patterns.yml), and ad-hoc script constants. As the tooling moves into a compiled library (D1/D2), the configuration representation must be chosen deliberately.

Decision

Represent governance/build configuration as compiled F# — typed values and modules in the governance library — rather than as external YAML or as FSX scripts evaluated at runtime via FSharp Compiler Services (FCS).

Alternatives considered

Consequences / rationale

Stages shaped

Verification in feature 039

Decision recorded only; no configuration is migrated by this feature (FR-011). The governance library skeleton demonstrates the compiled-F# path with its one typed public function (Spike.run : unit -> string).

Type something to start searching.