1.8 KiB
Audita Validators
Scope
This document describes validator composition, execution order, and decision handling.
Ownership
Built-in validator keys and chains:
internal/validators
Shared validator runtime mechanics:
internal/framework/validators
Execution-class metadata:
internal/validators/metadata
Built-In Validator Keys
Deterministic:
proposal_shapeconfidence_thresholdoriginal_text_presencenon_empty_corrected_textno_effectprotected_terms
LLM-backed:
spoken_form_plausibilitymeaning_reversal_revieweditorial_review
Built-In Chains
Module chains are defined in internal/validators/chains.go.
Glossary, homophones, spoken_word, and grammar each resolve a fixed ordered chain.
Runtime Execution
For each module section:
- run deterministic validators;
- run LLM-backed validators;
- record decisions and warnings;
- carry only approved proposals forward.
Decision cardinality is enforced: each candidate proposal must receive exactly one decision per validator.
LLM Validator Batching
LLM validators:
- build canonical validation request payloads;
- batch by
validation_max_prompt_tokens; - call structured LLM client using response schema registry.
Oversized single proposals are rejected with validator_input_too_large.
Malformed LLM validator responses are downgraded to warnings and rejected batch decisions.
Decision and Rejection Reporting
Runner records:
validator_decisionsvalidator_rejected- warning records (including malformed response warnings)
Correction ledger classifies deterministic vs LLM validator decisions using canonical metadata classes.
Key Tests
internal/validators/*_test.gointernal/framework/validators/*_test.gointernal/framework/processreport/correction_ledger_test.gointernal/cli/run_test.go