Presentation Video UI Update Change Breakdown
Created: 2026-05-20 07:06 UTC
Summary
The Presentation Video creation setup should be reorganized into a more explicit authoring flow: name the video, attach business documents, refine a formatted video description with AI assistance, refine a VO script brief with AI assistance, preview the generated VO script, choose visual identity, then move to scene details.
The current setup UI already includes Video Name, Business Docs, Video Description with an AI assistant, Visuals upload/select, Visual Identity, a Regenerate VO Script checkbox, and a Generate Scenes button. This change removes the Visuals setup panel and regenerate checkbox, adds or exposes a dedicated VO Script setup panel, updates copy and formatting behavior, and renames the scene-generation entry button to Go To Scene Details.
This breakdown does not implement the change. It identifies likely grouped work, affected surfaces, risks, out-of-scope items, and questions to answer before creating an implementation plan.
Target Flow
flowchart TD
start["Presentation create route"] --> name["Video Name panel"]
name --> docs["Business Docs panel"]
docs --> videoDesc["Video Description panel"]
videoDesc --> descEdit{"Edit requested?"}
descEdit --> descAssistant["Video Description Assistant"]
descAssistant --> webSources["User-described web data sources"]
webSources --> inferredDesc["Formatted inferred video description"]
descEdit --> inferredDesc
inferredDesc --> voBrief["VO Script panel: tone and persona brief"]
voBrief --> voEdit{"Edit requested?"}
voEdit --> voAssistant["VO Script Assistant"]
voAssistant --> voPreview["Formatted VO Script preview"]
voEdit --> voPreview
voPreview --> identity["Visual Identity: Set, Bot, Brand Kit"]
identity --> sceneDetails["Go To Scene Details"]
visuals["Current Visuals upload/select panel"]:::remove
regenerate["Current Regenerate VO Script checkbox"]:::remove
visuals -. remove .-> identity
regenerate -. remove .-> sceneDetails
classDef remove fill:#f7d7d7,stroke:#a33,color:#111
Current Touchpoints
src/app/(frontend)/app/create/presentation/page.tsxmountsPresentationVideoPageand acceptsprojectId,presentationId, andstepquery params.src/components/anuvax/presentation-video/presentation-video-page.tsxowns the setup UI, panel state, AI assistant sheets, upload/library modals, content-store loading, scene generation trigger, and scene editor.src/app/(frontend)/app/presentation/actions.tsexposesgeneratePresentationDescription,generatePresentationConfig, andgeneratePresentationVideoScenesWithWorkflow, including the currentregenerateVoScriptargument.src/components/anuvax/ai-assistant/ai-assistant-sheet.tsxis the reusable assistant UI currently used by the description and scene-edit assistants.src/components/anuvax/rag-new/upload-modal.tsxandsrc/components/anuvax/rag-new/rag-library-modal.tsxsupport current document and visual upload/select behavior.src/app/(frontend)/app/content-store/actions.tssupplies Set and Bot options for the current Visual Identity panel; Brand Kit selection may require a separate existing surface or new selector wiring.docs/core/PresentationVideoWorkflow.md,docs/state/RouteMap.md,docs/state/ServerActionsMap.md,docs/state/CurrentImplementationMap.md, anddocs/state/WorkflowMap.mdare likely docs parity targets if the setup behavior changes.
Grouped Changes
1. Video Name panel
Keep the setup entry as a direct text input for the video name.
Explanation:
The existing Video Name card already provides this behavior. Implementation should mostly preserve the current state binding and validation, while adjusting copy or placement only if needed by the redesigned panel order.
Likely affected code:
src/components/anuvax/presentation-video/presentation-video-page.tsx- Tests that locate
presentation-video-name-input
2. Business Docs panel
Keep Upload and Select Business Docs actions, but ensure the panel is document-only.
Explanation:
The current Business Docs panel already supports upload and library selection. Since the Visuals panel is being removed, implementation must preserve document uploads while avoiding accidental removal of shared upload or RAG library logic needed elsewhere.
Likely affected code:
src/components/anuvax/presentation-video/presentation-video-page.tsxsrc/components/anuvax/rag-new/upload-modal.tsxsrc/components/anuvax/rag-new/rag-library-modal.tsxsrc/app/(frontend)/app/rag/actions.ts
3. Video Description panel and assistant
Show the inferred video description in a text area or text-area-like editable surface, preserving paragraph and point formatting. Open the AI assistant/chatbot from Edit, and let user-described web data sources be captured through that chat experience rather than a separate always-visible web-sources text area if that is the intended product direction.
Explanation:
The current UI displays the generated description in a paragraph inside a bordered block and separately exposes a Web sources textarea. The requested flow points toward a formatted description text area and web source capture through the assistant conversation. Implementation should decide whether the text area is directly editable, AI-assisted only, or both.
Likely affected code:
src/components/anuvax/presentation-video/presentation-video-page.tsxsrc/app/(frontend)/app/presentation/actions.tssrc/mastra/tools/presentation/prompt-builders.tssrc/components/anuvax/ai-assistant/ai-assistant-sheet.tsx
4. VO Script panel
Add or expose a dedicated VO Script panel with a description text area that shows default Tone and Persona, plus an AI assistant/chatbot for user input about tone, persona, script details, and other VO guidance.
Explanation:
The current setup appears to use description as the voiceover brief input and has scene-level voiceover editing after scene generation. A distinct setup-stage VO Script panel would separate video intent from script direction. That likely requires new component state and may require server-action contract changes if tone/persona/script guidance should be passed separately from the video description.
Likely affected code:
src/components/anuvax/presentation-video/presentation-video-page.tsxsrc/app/(frontend)/app/presentation/actions.tssrc/mastra/tools/presentation/prompt-builders.tssrc/lib/presentation-config/**tests/integration/**
5. VO Script preview formatting
Show the generated VO script in a preview text area with each sentence on a new line.
Explanation:
Current scene generation persists voiceover text per scene and also handles Voiceover JSON reuse. The setup flow needs a clear source for a pre-scene VO Script preview: either generate the script before scene details, derive it from generated scene narration, or preview a draft script produced by a new assistant/action before scenes are created.
Likely affected code:
src/components/anuvax/presentation-video/presentation-video-page.tsxsrc/app/(frontend)/app/presentation/actions.tssrc/lib/voiceover/**src/lib/presentation-config/**tests/integration/**
6. Visual Identity panel
Represent Visual Identity as explicit Select Set, Bot, and Brand Kit buttons.
Explanation:
The current Visual Identity panel presents Set and Bot choices as selectable cards and says Brand Kit is applied from workspace defaults. The requested UI calls for Brand Kit selection as an explicit button/action. Implementation needs to confirm whether Brand Kit selection should be in-flow, whether it can reuse the existing brand-kit routes/actions, and how selected brand kit data should be stored on the presentation.
Likely affected code:
src/components/anuvax/presentation-video/presentation-video-page.tsxsrc/app/(frontend)/app/content-store/actions.tssrc/app/(frontend)/app/brand-kits/actions.tssrc/collections/anuvax/index.tsif presentation records need a new or different brand-kit relationshipsrc/payload-types.tsif schema changes are required
7. Scene details entry button
Rename the existing Generate Scenes button to Go To Scene Details.
Explanation:
This is a UI label change with product implications. The button currently triggers scene generation through handleGenerateScenesWithoutAudio, then moves the user to step 3. If the target button still generates scenes before navigation, the implementation can rename labels and loading copy. If it should navigate to a scene details setup page before generation, the flow is larger and needs route/state decisions.
Likely affected code:
src/components/anuvax/presentation-video/presentation-video-page.tsxsrc/app/(frontend)/app/create/presentation/page.tsx- Route-level or e2e tests that assert button text
8. Remove Visuals panel
Remove the setup-stage Visuals upload/select panel.
Explanation:
The current Visuals panel lets users upload/select image sources before generation. Removing it should not remove scene-level visual replacement, RAG document selection, or any existing content-store Visual Identity selection. The generation payload may need to stop including visual source IDs collected during setup.
Likely affected code:
src/components/anuvax/presentation-video/presentation-video-page.tsxsrc/components/anuvax/rag-new/upload-modal.tsxsrc/components/anuvax/rag-new/rag-library-modal.tsxsrc/app/(frontend)/app/presentation/actions.tstests/integration/**
9. Remove Regenerate VO Script checkbox
Remove the setup-stage Regenerate VO Script checkbox and decide the default reuse/regeneration behavior.
Explanation:
The current checkbox controls whether existing Voiceover JSON is reused during scene generation. Removing the control requires a deterministic replacement rule. For example, the system could always regenerate when setup inputs changed, reuse when unchanged, or always regenerate from the new VO Script panel content.
Likely affected code:
src/components/anuvax/presentation-video/presentation-video-page.tsxsrc/app/(frontend)/app/presentation/actions.tssrc/lib/voiceover/**tests/integration/**
Affected Product Surfaces
- Presentation Video creation route at
src/app/(frontend)/app/create/presentation/page.tsx. - Setup step inside
PresentationVideoPage. - AI assistant sheet behavior for video description and VO script authoring.
- Business Docs upload/select flow.
- Visual Identity selection flow.
- Scene details generation/navigation boundary.
- Scene Editor visual replacement only if Visuals panel removal currently shares state with scene-level visual replacement.
Likely Affected Docs
docs/core/PresentationVideoWorkflow.mddocs/state/RouteMap.mddocs/state/ServerActionsMap.mddocs/state/CurrentImplementationMap.mddocs/state/WorkflowMap.mddocs/state/KnownGaps.md- This change folder's
ImplementationPlan.mdandImplementationLog.mdwhen the change progresses.
Risks And Dependencies
- The requested VO Script preview may require a new pre-scene script-generation action or a change to the existing scene-generation contract.
- Removing the Visuals panel can accidentally break scene-level image replacement if shared
uploadedVisuals, RAG library, or upload-modal state is removed too broadly. - Removing
regenerateVoScriptfrom the UI without defining replacement logic can cause stale voiceover JSON reuse or unnecessary regeneration. - Brand Kit selection may require schema, server action, or route changes if presentations do not currently store an explicit selected brand kit.
- Web source capture through chat may reduce user control if the current dedicated web-sources textarea is removed without an editable replacement.
- Existing integration and e2e tests may depend on current button labels, setup panel order, and generation payload behavior.
Out Of Scope
- Payload schema changes unless Brand Kit selection or VO Script persistence requires them and is approved in the implementation plan.
- Removing scene-level visual replacement from the Scene Editor.
- Reworking the full scene editor, preview player, audio generation queue, or final video renderer.
- Replacing the reusable
AIAssistantSheetcomponent globally. - Reworking RAG ingestion, document processing, embeddings, or retrieval beyond what the setup UI needs.
- OpenSpec artifacts or OpenSpec workflow usage.
Open Questions
Q1. Should Go To Scene Details still generate scenes immediately before opening the scene editor, or should it navigate to a new intermediate scene-details setup state before generation?
Answer: It should generate scenes immediately before opening the scene editor
Q2. Should the Video Description text area be directly editable, AI-assisted only, or both?
Answer: AI-assisted only
Q3. Should web data sources remain visible as an editable field after the assistant infers them, or should they live only inside the assistant conversation/transcript?
Answer: Should remain visible as a non-editable field after the assistant infers them
Q4. What default Tone and Persona should the VO Script Description text area show?
Answer: Tone: Energetic, encouraging, and articulate. Persona: Friendly, approachable and sophisticated.
Q5. Is the VO Script Preview generated before scene generation, after scene generation, or both?
Answer: It should be generated before Scene Generation - this should invoke the Mastra 'narrativeWorkflow' only and Pause/Suspend the main Presentation Video workflow once 'narrativeWorkflow' is complete. The VO Script to be displayed in the Preview text area should be derived from the generated scene narration. If the user asks to modify the VO Script, the 'narrativeWorkflow' should get triggered again. The rest of the Mastra Workflows (visualsWorkflow, slidesWorkflow, directionWorkflow etc), along with the Presentation Config compilation process, should all be triggered (or the main Presentation Video workflow should Resume, as the case may be) when the user clicks on the 'Go To Scene Details' button (following the Mastra Human-in-the-loop (HITL) process).
Q6. When the Regenerate VO Script checkbox is removed, what should happen if an existing presentation already has Voiceover JSON?
Answer: The VO Script based on the existing Voiceover JSON should be shown in the VO Script Preview text area. The user can invoke the VO Script Description Assistant and ask the system to modify the VO Script, if required. The modified VO Script should be used for further Scene generations when the user clicks on the 'Go To Scene Details' button.
Q7. Should Brand Kit selection be an explicit selectable value saved on the presentation, or a shortcut to review/edit the workspace default Brand Kit?
Answer: For now, disable the Brand Kit selection button and use the default Brand Kit
Q8. Should setup-stage visual uploads be removed completely, while preserving only scene-level image replacement in Scene Editor?
Answer: Yes, remove the setup-stage visual uploads completely, while preserving only scene-level image replacement in Scene Editor