Roxy · implementation handoff

Company Event Ingestion — Build Contract

The agreed contract for Roxy to build an on-demand workflow with Bob and James: accept company-event video, audio, captions, transcript text, or a permitted URL; preserve the best available speech evidence; write a searchable and citable research record to Bob’s Supabase library; then remove temporary media copies.

Outcome

Bob

Simple handoff

Bob asks Roxy to ingest the event. Small captions or pasted text can come through Telegram or Desktop. Large video or audio goes in the shared Dropbox Inbox, then Bob tells Roxy the filename. No new upload product. Inbox is a handoff, not a watched folder.

Roxy

One bounded workflow

Roxy selects supplied captions first, uses Bob-owned ElevenLabs Scribe v2 only when transcription is required, validates the evidence, and stores it in Supabase.

Library

Searchable evidence

Bob can ask questions later and receive answers tied to the event, transcript version, speaker when supported, and timestamp.

Agreed routing contract

Video is an audio container in this workflow. Slides, charts, demonstrations, and other visual-only evidence are outside v1 unless Bob supplies them separately.

Scope

Supported event types

  • Annual shareholder meeting
  • Special shareholder meeting
  • Earnings call
  • Investor day
  • Conference presentation
  • Management interview

Accepted artifacts

  • MP4, MOV, or WebM video via shared Dropbox Inbox
  • MP3, M4A, or WAV audio via Dropbox Inbox (or a small chat attachment)
  • VTT, SRT, TXT, or PDF captions/transcript
  • Pasted transcript text
  • A permitted public or private source URL
Non-goals: no native video analysis, OCR, voiceprint identity library, DRM or access-control bypass, automated source watching, bulk queue service, investment claims, sentiment scoring, or trading conclusions.

Source and transcript rules

DecisionContractReason
Cloud intakeCaptions/text/URL via Telegram or Desktop. Large video/audio via the shared Dropbox Inbox, then Bob names the file. Telegram is not the pipe for files over 20 MB.Hermes Cloud can call ElevenLabs and write Supabase; the chat Bot API cannot download a 60-minute meeting file.
Dropbox InboxOn-demand handoff only. No watched folder, crawler, or auto-ingest. After verified library commit, delete the Inbox source copy.Reuse the existing shared Dropbox. Do not turn it into a media warehouse or a second database.
Evidence priorityBob-provided or official captions/transcript first; ElevenLabs only when absent or inadequate.Preserve source-published evidence and avoid unnecessary media upload.
Video handlingExtract or send audio only when transcription is required. Do not analyze visual frames.The agreed product is speech ingestion, not multimodal meeting analysis.
Transcript storagePreserve an evidence transcript and a normalized search representation.Search cleanup must not overwrite what was actually supplied or transcribed.
Speaker identityStore anonymous speaker clusters. Add names only when supported by supplied labels or reliable published alignment.Diarization separates voices; it does not prove identity.
Later transcriptAttach a better official or edited transcript as another version of the same event.Do not erase provenance or create a duplicate meeting.
Automatic derivativesSummary and topic index are allowed. Claims, sentiment, and investment conclusions are not generated automatically.Keep ingestion separate from later analysis.

Supabase mapping

Inspect before migrating. Roxy must inspect the actual live Supabase schema v1 and its migrations before writing SQL. The mapping below extends the existing sourcesdocumentsdocument_chunks design; it is not permission to create a parallel media database or blindly add duplicate fields.

sources

  • Existing source identity and source type
  • Access tier: public, free-account, paid-private, or client-confidential
  • Canonical URL when one exists
  • Retention policy: source media deleted after verified ingestion

documents

  • One company event per document
  • Company, optional ticker, event title/type/date
  • Source and transcript provenance
  • Content hash and dedupe key
  • Summary, ingest state, quality warning, access tier

Transcript versions

  • Attach each supplied, official, generated, or edited transcript to the same document
  • Record provenance, language, provider when applicable, content hash, duration, and quality state
  • Use the smallest compatible extension to schema v1

document_chunks

  • Transcript-version reference and ordinal
  • Start and end milliseconds
  • Anonymous speaker cluster and supported speaker name
  • Evidence text plus normalized search text
  • FTS index; embeddings remain optional and later

Meeting identity is company + event type + event date. Artifact identity is content hash plus available source metadata. Re-ingesting the same artifact is a no-op; a genuinely different transcript becomes another version.

Required event metadata

Required before commit

  • Company name
  • Event title and type
  • Event date
  • Access tier
  • Source provenance
  • Transcript provenance

Useful but optional

  • Ticker
  • Canonical event URL
  • Published speaker list
  • Language
  • Duration
  • Company-provided slide deck as a separate document

Roxy may infer public from an official, openly accessible company page. If access is ambiguous, she asks Bob. She never downgrades paid or confidential material merely because it has a URL.

Processing and failure states

received → transcript_selected → transcribing # only when ElevenLabs is needed → validating → storing → verifying_search → deleting_provider_copy # only when ElevenLabs was used → deleting_source_media → ready Terminal alternatives: ready_with_warning · needs_bob · failed

Ready

Transcript and metadata are stored, read back, searchable, citable, and all required temporary copies are verified deleted.

Ready with warning

The research record is usable, but cleanup or a non-fatal quality check failed. Tell Bob exactly what remains and where.

Needs Bob / failed

Source identity, access, transcript quality, database commit, or another required boundary prevents an honest usable result.

Deletion contract

  1. Complete transcript selection or ElevenLabs transcription.
  2. Validate required metadata, transcript completeness, timestamps, and speaker evidence.
  3. Commit the document, transcript version, chunks, summary, and topics to Supabase.
  4. Read back the transcript hash and chunk count.
  5. Run a search probe that returns the expected event and timestamped chunk.
  6. If ElevenLabs was used, delete its transcript artifact using bounded retries and confirm it is no longer retrievable.
  7. Delete Bob’s Inbox source file, extracted audio, caption file, and other temporary working copies.
  8. Verify those deletions. Retain only provenance, hashes, deletion outcome, and the intended Supabase research record.
Never destroy the source merely because transcription returned text. Source-media deletion begins only after the intended Supabase record commits, reads back correctly, and passes the search probe.

Bob-facing use

Specific request

“Roxy, ingest this as Acme’s 2026 annual shareholder meeting.”

If the file is large: Bob puts it in the shared Dropbox Inbox, then “Roxy, ingest Acme-2026-AGM.mp4 from Inbox as Acme’s 2026 annual shareholder meeting.”

Minimal request

“Roxy, ingest this meeting.”

Roxy infers what she can and asks only for missing company, event type/date, or ambiguous access tier.

After ingestion, Roxy returns a concise completion report: event identity, transcript provenance, duration/chunk count when known, speaker and quality notes, deletion outcome, Supabase document ID, and whether cited questions are ready.

Acceptance checklist

Fixture A · captions first

  • Bob gives Roxy one real company event with usable supplied or platform captions.
  • Roxy does not call ElevenLabs.
  • Transcript version and timestamped chunks are stored.
  • Re-ingestion creates no duplicate.
  • One cited question resolves to the correct event and timestamp.
  • One unsupported question produces an honest absence answer.
  • Source media and temporary files are verified deleted.

Fixture B · transcription required

  • Bob puts one permitted captionless audio or video event in the shared Dropbox Inbox and tells Roxy the filename.
  • Video is handled as audio; no visual analysis runs.
  • Bob-owned ElevenLabs Scribe v2 returns timestamps and speaker clusters.
  • Transcript and search verification pass.
  • ElevenLabs artifact deletion is verified.
  • Source media and temporary audio are verified deleted.
  • Re-ingestion, cited answer, and honest absence tests pass.

Implementation sequence for Roxy

  1. Inspect live state: confirm Roxy’s separate Hermes Cloud profile, Dropbox Inbox access, available built-in intake routes, actual Supabase schema v1 and migrations, current access controls, and existing dedupe/search behavior.
  2. Reconcile schema: map this contract to existing fields and prepare the smallest reviewed migration needed for event metadata, transcript versions, timestamps, and speakers.
  3. Secure Bob’s credential: store the Bob-owned ElevenLabs credential in Roxy’s secrets, never chat or Supabase. Set bounded request, poll, retry, duration, and spending controls.
  4. Implement captions-first ingestion: parse supplied text and captions, preserve cue timing, normalize separately, hash, dedupe, chunk, summarize, tag topics, store, and verify.
  5. Add the ElevenLabs fallback: create audio-only input when needed, request Scribe v2 timestamps and diarization, preserve anonymous clusters, and validate the response.
  6. Implement cleanup as a verified boundary: provider deletion, source-media deletion, bounded retries, recorded outcomes, and visible warnings.
  7. Canary Fixture A and Fixture B: capture real output and correct failures without weakening acceptance checks.
  8. Review with Bob and James: activate normal use only after both fixtures pass and they explicitly approve it.

Evidence behind the route

The routing decision comes from the measured SpaceX audio benchmark in Audio Evidence Without a Video Pipeline: source captions remain first; ElevenLabs Scribe v2 is the speaker-aware transcription fallback; native video analysis is tabled; and provider deletion must be verified rather than assumed.

Build ownership: Roxy will implement and canary this workflow in her own Hermes Cloud profile with Bob and James. This page is the agreed contract and acceptance checklist. It is guidance—not evidence that the workflow has already been built or activated.