Video-Editing

Wiki/Decisions.md

Decisions — Demo Factory

All decisions locked. See SCRATCHPAD for full rationale. Last updated: 2026-05-04


ID Decision Detail
D0 Claude Code plugin Not SaaS, not desktop app. Runs from ~/.claude/plugins/demo-factory/. Desktop + Terminal both covered.
D1 3 invocation surfaces /demo slash command + conversational skill + standalone CLI — same engine, three reach paths.
D2 4-gate resumable pipeline Capture → Synopsis → Script → Render, each with a user approval gate. Bypassable with --yolo.
D3 Hybrid capture Replay capture.yaml if exists (deterministic). Live-record mode on first run → auto-generates capture.yaml.
D4 Layered docs Vault → Repo README/CLAUDE.md → user-pasted synopsis. Synopsis gate shows provenance.
D5 Multi-track script script.json has three parallel tracks: VO_TRACK (11Labs), TEXT_OVERLAY_TRACK (Remotion), AVATAR_TRACK (Heygen). Same source script, different track activations per channel.
D6 Remotion render engine React for video. Programmatic, deterministic, re-renderable. AI b-roll (Veo/Sora/Kling) deferred to Phase 2 as b-roll overlay only.
D7 9:16 default, all formats supported 9:16 vertical (Reels/Shorts/TikTok), 16:9 landscape (YouTube), 1:1 square (in-feed). Default: 9:16. --format=all for full pack.
D8 Pluggable providers VoiceProvider, AvatarProvider, StorageProvider interfaces. New providers slot in without engine changes. Phase 1: 11Labs + Heygen export + Google Drive.
D9 Two-layer brand model Base profile (house style: font, avatar_id, voice_id, accent) + per-product override (colors, tagline). First-run autodetects from CSS/favicon.
D10 Split storage Text artifacts → vault (syncs). Binaries → local disk (fast IO). Final MP4s → Google Drive (shareable URL).
D11 Prerequisites ffmpeg: hard fail. Node ≥ 18: hard fail. Git: soft warn. Checked on every invoke.
D12 Demo Readiness Check Standalone read-only audit mode. Checks: server reachable, capture.yaml exists, brand profile exists, vault docs present. No LLM, no state.
D13 Step -1 mandatory Scope & Angle Selection runs before pipeline. Produces angle_slug + focus_keywords. Determines which vault docs to read and what script angle to take.
D14 Doc selection strategy List all docs → score by relevance to angle → read top-N within token budget. Never read source code.
D15 Token discipline Opus for LLM-2 (script-writer). Sonnet for LLM-1 (synopsis). Haiku for LLM-3/4 (capture, brand-extractor). Prompt caching on all LLM calls.
D16 All skills via skill-creator No hand-written skill files. All 4 sub-skills (synopsis, script-writer, capture, brand-extractor) created and iterated via skill-creator:skill-creator.
D17 Format inference LinkedIn/Stories context → 9:16. YouTube context → 16:9. No context → 9:16 default.