diff --git a/_bmad-output/implementation-artifacts/5-1-full-av-replacement.md b/_bmad-output/implementation-artifacts/5-1-full-av-replacement.md new file mode 100644 index 0000000..ca2c362 --- /dev/null +++ b/_bmad-output/implementation-artifacts/5-1-full-av-replacement.md @@ -0,0 +1,602 @@ +# Story 5.1: Full AV Replacement with WebRTC Stream Access + +**Status:** ready-for-dev + +**Epic:** 5 - Full AV Replacement + +**Story Key:** 5-1-full-av-replacement + +**Created:** 2026-05-26 + +**Last Updated:** 2026-05-26 + +--- + +## Story Header + +| Field | Value | +|-------|-------| +| **Epic** | 5 - Full AV Replacement | +| **Story ID** | 5.1 | +| **Story Key** | 5-1-full-av-replacement | +| **Title** | Full AV Replacement with WebRTC Stream Access | +| **Status** | ready-for-dev | +| **Priority** | High | +| **Assigned Agent** | DEV (Mistral Vibe / Morr) | +| **Created** | 2026-05-26 | +| **Last Updated** | 2026-05-26 | + +--- + +## ๐Ÿ“‹ Story Requirements + +### User Story + +**As a** GM using Video View Manager, +**I want to** completely replace Foundry's AV dock with my own video view using actual WebRTC streams, +**So that** I have full control over the AV display and can implement custom camera management features. + +### Persona Alignment + +- **Primary:** GM (Marcus, Jake) - Needs full control over AV display for advanced camera management +- **Secondary:** Players - Benefit from consistent, module-controlled video experience + +### Acceptance Criteria (BDD Format) + +#### AC-1: Full AV Dock Replacement +**Given** the Video View Manager module is active +**When** WebRTC stream access is available (`getMediaStreamForUser` exists) +**Then** Foundry's native AV dock (`#av`) is completely hidden +**And** Foundry's camera views (`.camera-view`) are completely hidden +**And** The Scrying Pool Strip displays video feeds instead + +#### AC-2: WebRTC Stream Access Detection +**Given** `game.webrtc.client.getMediaStreamForUser()` is available +**When** the module probes WebRTC capability +**Then** `probeCapability()` returns `'stream-access'` +**And** `buildWebRTCSurface()` creates a surface with all WebRTC client methods + +#### AC-3: Video Element Creation +**Given** stream access mode is active +**When** a participant joins the session +**Then** a `