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.
Plan only—not activated. Roxy will inspect her live Hermes Cloud profile and Supabase schema, then implement and canary this workflow with Bob and James. Publishing this contract does not enable ElevenLabs, alter Supabase, or change production routing.
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
Decision
Contract
Reason
Cloud intake
Captions/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 Inbox
On-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 priority
Bob-provided or official captions/transcript first; ElevenLabs only when absent or inadequate.
Preserve source-published evidence and avoid unnecessary media upload.
Video handling
Extract or send audio only when transcription is required. Do not analyze visual frames.
The agreed product is speech ingestion, not multimodal meeting analysis.
Transcript storage
Preserve an evidence transcript and a normalized search representation.
Search cleanup must not overwrite what was actually supplied or transcribed.
Speaker identity
Store anonymous speaker clusters. Add names only when supported by supplied labels or reliable published alignment.
Diarization separates voices; it does not prove identity.
Later transcript
Attach a better official or edited transcript as another version of the same event.
Do not erase provenance or create a duplicate meeting.
Automatic derivatives
Summary 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 sources → documents → document_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
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
Complete transcript selection or ElevenLabs transcription.
Validate required metadata, transcript completeness, timestamps, and speaker evidence.
Commit the document, transcript version, chunks, summary, and topics to Supabase.
Read back the transcript hash and chunk count.
Run a search probe that returns the expected event and timestamped chunk.
If ElevenLabs was used, delete its transcript artifact using bounded retries and confirm it is no longer retrievable.
Delete Bob’s Inbox source file, extracted audio, caption file, and other temporary working copies.
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
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.
Reconcile schema: map this contract to existing fields and prepare the smallest reviewed migration needed for event metadata, transcript versions, timestamps, and speakers.
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.
Implement captions-first ingestion: parse supplied text and captions, preserve cue timing, normalize separately, hash, dedupe, chunk, summarize, tag topics, store, and verify.
Add the ElevenLabs fallback: create audio-only input when needed, request Scribe v2 timestamps and diarization, preserve anonymous clusters, and validate the response.
Implement cleanup as a verified boundary: provider deletion, source-media deletion, bounded retries, recorded outcomes, and visible warnings.
Canary Fixture A and Fixture B: capture real output and correct failures without weakening acceptance checks.
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.
Unlisted build contract for Roxy, Bob, and James · current as of August 13, 2026 · return to Roxy status