9.8 KiB
Output Files and Report Formats
This document owns externally consumed corrected-transcript and report formats, and describes the correction ledger and utilization diagnostics. It documents current serialized shapes without making every debugging artifact a versioned compatibility promise. Physical filenames, placement, retention, and permissions belong to operations; invocation and output channels belong to the CLI.
Corrected Transcript
The output setting selects the envelope:
| Encoder | JSON shape |
|---|---|
bare-segments |
Top-level array of segment objects |
audita-v1 |
Object with schema: "audita-v1", version: "v1", and segments containing the segment array |
Both emit these segment fields:
| Field | Type | Meaning |
|---|---|---|
id |
Integer | Identifier in the normalized transcript |
speaker |
String | Speaker label |
start, end |
Numbers | Start/end times in seconds |
text |
String | Text after normalization and accepted corrections |
categories |
Array of strings, optional | Segment categories; omitted when empty |
Input IDs and segment boundaries need not survive normalization unchanged; normalization can merge segments and reassign IDs. The output describes the resulting transcript, not a lossless copy of the source JSON. Input acceptance rules belong to the input-file contract.
Process Report
The report is a JSON object. report_metadata identifies its schema separately
from the transcript output envelope:
| Metadata field | Type / current value |
|---|---|
report_schema_name |
String: audita-process-report |
report_schema_version |
String: v2 |
output_schema |
String identifying the selected transcript encoder |
config_version |
Optional integer, present when file configuration was loaded |
The remaining top-level fields are:
| Field | Type and meaning |
|---|---|
phase |
String; currently default_pipeline |
status |
String: success or failed |
operation |
String; currently process |
transcript_path, glossary_path |
Input path strings |
output_path |
Optional transcript destination string |
modules |
Array of configured module keys, including repeats |
started_at, completed_at |
RFC 3339 timestamps, possibly fractional; completion is an optional field populated by completed process runs |
error_phase, error_message |
Optional failure classification and human-readable detail |
input_segment_count, normalized_segment_count |
Optional integer normalization counts |
normalization_merges, normalization_id_reassignments |
Optional integer transformation counts |
normalization_skipped |
Object of optional integer counters: different_speakers, gap_too_large, duration_exceeded, token_limit_exceeded; can be empty |
chunking |
Optional section summary described below |
diagnostics |
Optional artifact-path metadata described below |
llm_summary |
Optional logical LLM execution summary, present when observations were initialized |
modules_summary |
Optional aggregate module outcome |
module_results |
Optional array of module outcomes |
Failures can preserve partial module results. Missing summaries indicate unavailable information, not necessarily zero work. Early configuration failures occur before report construction. Report success describes processing results; a later file-write or cleanup error can still cause a nonzero CLI exit. Use the exit result and report together as explained in subprocess guidance.
Error phases identify where processing failed, for example transcript_read,
glossary_read, transcript_schema, glossary_schema, chunking, runner_setup,
runner_execution, output_schema, serialization, output_write, and
stdout_write. This is not an exhaustive enumeration or a promise that every
late failure is represented in a successfully written report. Error messages are
human-readable, not structured fields to parse for control flow.
Chunking and Diagnostics Metadata
chunking contains integer fields chunk_count, min_estimated_chunk_tokens,
max_estimated_chunk_tokens, total_estimated_transcript_tokens,
max_section_tokens, and min_section_tokens, plus optional integer
target_sections. Token counts are estimates.
diagnostics contains optional path strings:
directory_pathsource_transcript_path,parsed_source_transcript_path,normalized_transcript_pathnormalization_summary_path,chunking_summary_pathutilization_summary_path,llm_execution_path,selected_profiles_path,correction_ledger_pathinvocation_metadata_path,redacted_effective_config_path,error_log_path
The operations guide defines the physical artifacts and path-lifetime caveats.
Module Outcomes
modules_summary contains integer module_count, total_applied_changes, and
total_skipped_changes, plus optional string failed_module_instance.
total_skipped_changes counts both apply-time skipped changes and validator
rejections. Their detailed records are stored in separate arrays.
Each module_results object contains:
| Field | Type and meaning |
|---|---|
module_key, module_instance |
Strings; the instance distinguishes repeated occurrences of a configured module |
replacement_policy |
Optional string describing the module's replacement policy |
status |
String describing module outcome (success or failed) |
proposal_count |
Integer |
started_at, completed_at |
Optional timestamps |
error_message |
Optional failure detail |
warnings |
Optional array of warning records |
validator_decisions |
Optional array of decision records |
validator_rejected |
Optional array of rejected-correction records |
applied_changes, skipped_changes |
Optional arrays of apply outcomes |
A validator decision has validator_name (string), proposal_index (integer),
approved (boolean), reason_code and message (strings), and optional
diagnostic_artifact_path (string).
Rejected corrections include validator_name, proposal_index, module_key,
module_instance, target_segment_id, original_text, corrected_text,
reason_code, and message. Applied changes include the same correction identity
and text fields without validator/reason/message fields, plus integer
replacement_count. Skipped changes include correction identity/text fields,
skip_reason, and message.
A warning has string scope, reason_code, and message; optional integer
section_index and batch_index; and optional string validator_name and
diagnostic_artifact_path. Warnings, skipped changes, and rejected corrections
can occur without a failed run. Proposal indexes associate outcomes with their
proposal within a module instance; they are not transcript segment IDs.
Correction Ledger
The ledger is an array of correction entries; it can be null when no module
results are available and empty when modules produced no entries. Unlike the
process report, it has no separate schema-version envelope.
Each entry has required module_key, module_instance, integer proposal_index,
and disposition. The current dispositions are:
| Disposition | Meaning |
|---|---|
applied |
The proposed change was applied |
skipped |
The proposal reached application but was skipped |
rejected |
A validator rejected the proposal |
failed |
Module-level failure record, not necessarily an individual proposal |
Optional fields are run_id, integer segment_id, original_text,
proposed_corrected_text, applied_corrected_text, replacement_policy,
disposition_reason_code, and disposition_message. Optional validator arrays
are deterministic_validator_decisions and llm_validator_decisions; each record
contains string validator_key, boolean approved, string reason_code, and
optional string message.
Module failure entries can have the zero-value proposal index and no correction text or segment. Do not interpret them as evidence that proposal zero failed. Empty optional values are omitted. The ledger records disposition, not a replay or resume protocol.
Utilization Diagnostics
llm_summary contains integer logical_calls, provider_attempts,
transient_retries, and structural_repairs. Its usage contains prompt,
completion, total, cached, and cache_write, each with integer value
and boolean known and complete. A call counts once even if preparation fails.
If no call dispatches, usage is known-zero and complete. Missing llm_summary
means observations were unavailable.
The unversioned utilization JSON contains backends, keyed by backend ID. Each
entry has configured concurrency and queue_capacity, the same execution
summary fields, and integer capacity_wait_ms, generation_ms,
retry_delay_ms, and logical_wall_ms. It also has run_wall_time_ms and
optional modules and validators arrays. Module records contain the module
identity, logical proposal/validation call counts, and module_wall_time_ms.
Validator records contain module/validator identity, llm_backed, calls, and
elapsed_ms. Timings can overlap; they do not decompose total wall time.
llm-execution.json has calls and events arrays joined by call_id. Calls
include logical attribution, final classification, summary, elapsed milliseconds,
and available prompt/profile/model metadata. Events contain safe execution
metadata, including attempt and terminal records, with millisecond durations.
Preparation failures have a call and no fabricated events. This artifact has no
provider messages, endpoints, credentials, or transcript content. Other request
and response artifacts can contain redacted prompt and transcript content.