Specify the Audita preflight package boundary

This commit is contained in:
2026-11-09 13:37:25 +00:00
parent d539c06f45
commit 267aca4b76

View File

@@ -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