From 267aca4b768df263fc943d3d2a1e8de96edd3f05 Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Mon, 9 Nov 2026 13:37:25 +0000 Subject: [PATCH] Specify the Audita preflight package boundary --- docs/roadmap/glossary-stages.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/docs/roadmap/glossary-stages.md b/docs/roadmap/glossary-stages.md index 66e0e7b..b98ebf0 100644 --- a/docs/roadmap/glossary-stages.md +++ b/docs/roadmap/glossary-stages.md @@ -401,6 +401,16 @@ sources, resolve configuration, restore defaults, or change stage inheritance. Keep the nonempty glossary-stage check in Audita preflight rather than ConfigKit's configuration-validation callbacks. +Implement this phase in an expressly named `internal/framework/preflight` +package. Accept fully resolved configuration and the domain inputs needed for +readiness checks through ordinary Go functions and concrete inputs. Return +errors identifying the affected stage and reason; CLI presentation remains with +the caller. Keep the package small and independent of CLI and provider transport. +It must not reload or modify configuration or make provider calls. ConfigKit +retains configuration resolution, and correction validators retain evaluation of +proposed transcript changes. Future execution-readiness checks belong here when +they fit this responsibility; no generic check-registration framework is needed. + Preflight checks every configured glossary-correction stage. Its combined selected collections must supply at least one entry. Empty selections, null selections, and nonempty selections whose collections collectively contain no entries fail @@ -783,6 +793,9 @@ selection, defaulting, and clearing contracts in the consumer internals as the redesign lands, removing obsolete standalone-parser instructions. Document the distinction between configuration identity and derived runtime vocabulary without copying the native ConfigKit reference into Audita. +When the package lands, add `internal/framework/preflight` to the +[internal overview](../internal/overview.md) and describe its invocation boundary +in the [pipeline internals](../internal/pipeline.md). Update the [configuration change guide](../internal/cli-config.md) to require classifying each new setting by consumer lifecycle, specifying its inheritance @@ -809,9 +822,10 @@ into feature implementation. collection identities, validate configuration contracts, and deliver final typed definitions and selections before transcript processing. Remove the redundant standalone YAML parser and local composition path. -3. Add Audita preflight after configuration handoff. Reject any glossary stage - whose selected collections supply no entries before any stage executes. - Permit empty collection definitions and preserve inspection access to them. +3. Add `internal/framework/preflight` and invoke it after configuration handoff. + Reject any glossary stage whose selected collections supply no entries before + any stage executes. Return readiness errors for CLI presentation, permit empty + collection definitions, and preserve inspection access to them. 4. Derive rich LLM inputs, deduplicated protection vocabulary, and glossary-stage exemptions from resolved configuration. Route the appropriate views through proposal generation and validators without mutating configuration or other @@ -924,6 +938,9 @@ several collectively empty collections, and mixed empty/populated collections. Include an empty glossary stage late in the pipeline and verify preflight fails before any stage executes or processing model calls occur. Check useful stage and collection attribution in the readiness error, and no silent stage skipping. +Exercise the preflight package directly with resolved inputs and through the +processing entry point. Verify it leaves configuration unchanged and returns +readiness errors without provider calls or CLI presentation responsibilities. Exercise CLI list assignment through the standard parser and ConfigKit override path, including explicit empty selections and unchanged explicit stage settings. Verify that clearing a validation selection follows the effective proposal