# Integration: Audita ## Purpose Define the Audita adapter contract used by the `polish` stage. ## External Boundary Narratio invokes `audita process` as a subprocess for each polish operation. The configured timeout and parent cancellation bound the invocation. Internal runner composition is documented in [the adapter implementation guide](../internal/adapters.md). ## Request Contract `PolishRequest` carries: - required transcript/glossary/output/work-dir paths; - optional report path (required when report mode is enabled); - generated config and stdout/stderr log paths; - optional module/model/base-url/config/output-schema/concurrency settings. ## Result Contract `PolishResult` returns: - processed transcript path; - optional report path; - work dir and generated-config/log paths; - exit code, duration, binary provenance; - adapter metadata map. ## Validation and Failure Semantics Construction fails for invalid static config values, including: - empty binary; - non-positive timeout; - invalid base URL; - invalid output schema; - invalid work-dir retention value; - invalid concurrency values. Run fails for: - missing required request paths; - missing required credential env var when configured (`llm_api_key_env`); - subprocess execution failure; - invalid processed transcript JSON (`segments` array required); - invalid report JSON when reporting is enabled. Failure results still include output/log/config/exit metadata for diagnostics. ## Deterministic Behavior - CLI args are built from runner config + request in a fixed order. - Generated invocation YAML (`audita.generated.v1`) is emitted when requested. - Manifest writes are stage-owned; adapter itself is stateless. ## Configuration Operator-selected values are defined under `pipeline.audita.*` in the [configuration reference](../config.md#pipeline). Maintained example with Audita config: - [Full annotated pipeline](../../examples/pipeline.full.annotated.yml) - [Production-shaped pipeline](../../examples/pipeline.production.yml)