Update the archive status, video metadata completeness, transcript loop report, and archive manager transcript auditing callers so they use a forthcoming shared Generators::ArchiveState module when it is available at src/generators/archive_state.rb. The callers should treat structured transcript turns as valid transcript content, normalize text consistently for reports, and surface YAML parse failures instead of silently counting invalid transcripts as complete. Do not create the shared module in this task.
Generators::ArchiveState without creating that module.src/generators/archive_state.rb API.src/generators/archive_state.rb and use the state-object API: Generators::ArchiveState.for_path/for_id, state.has_transcript?, state.text, state.invalid?, and state.load_error._data or tmp reports; verify with syntax checks, read-only count probes, the archive auditor path, and the collaborator’s focused ArchiveState spec.
Implemented the caller-side ArchiveState integration in the four requested files only. src/generators/archive_state.rb appeared during the turn as collaborator work; I read its public API and did not edit it. Verification included Ruby syntax checks for all four modified files, read-only state/count probes, a read-only TranscriptAuditor run, and bundle exec rspec spec/src/generators/archive_state_spec.rb.
Updated archive/report callers to consume the shared archive state API instead of directly inspecting transcript['content'].
Changed files:
bin/generate_archive_status.rb: counts assets whose transcript state has text from either legacy content or structured turns; records transcript parse errors in the generated status payload.bin/generate_video_metadata_completeness.rb: rates transcript completeness from ArchiveState text, so structured turns can be complete when long enough; invalid transcript YAML becomes a partial transcript rating with an error field and summary count.bin/report_transcript_loops.rb: analyzes ArchiveState text for either content or joined turns and includes parse-error counts/details in JSON/Markdown reports.src/generators/archive_manager.rb: delegates missing-content detection to ArchiveState and uses invalid state errors for invalid transcript files.No generated _data or tmp reports were regenerated. Verification: four ruby -c syntax checks passed; read-only probes found assets_with_transcript_content=195, with_transcript_complete_probe=193, short_transcripts_probe=2, transcript_parse_errors=1; archive auditor read-only run reported missing_files=0 missing_content=0 invalid_files=1; bundle exec rspec spec/src/generators/archive_state_spec.rb passed with 8 examples.