SPB Git

Repository Public

implementation-plan.md 2.0 KB

# Implementation plan

Vertical slices, each one tested before the next. Status is tracked in PROGRESS.md.

Milestone Slice Exit test
M0 Discovery infrastructure audit, live API verification, capability matrix, cost and threat models docs written, one real image → video → TTS round trip
M1 Foundation schema + migrations, env, storage, queue, auth (password + TOTP, sessions, RBAC, audit), design tokens pnpm typecheck, migration applies on an empty DB
M2 Public cinema home, vertical feed, film page, series, explore, search, about, report; player with captions Playwright on desktop + mobile profile
M3 First real generation concept → keyframe → image-to-video → stored asset → playable draft, cost ledger one shot generated in production, ledger row = provider ticks
M4 Studio Concept Lab, script, storyboard, prompt workbench, voice, captions, FFmpeg assembly, QA, approval a multi-shot narrated film published from the studio
M5 Programming series templates, scheduler, budgets, duplicate prevention, publication policy scheduler creates a project inside the quota and stops at the cap
M6 Hardening unit + e2e tests, secrets scan, health, backups, restore drill, runbook pnpm check, e2e against production, restore drill

Decisions taken up front:

  1. One repository, two processes (web, worker), PostgreSQL + Redis + filesystem assets on a single cluster node, deployed with the cluster's own orchestrator (mld) rather than Docker (the nodes are macOS; Compose file kept for portability).
  2. REST adapters for xAI (resumable request_id, real cost ticks) — see provider-capabilities.md.
  3. Narration over cinematic shots, sidecar WebVTT captions rendered by the player (word-timed from TTS character timestamps). No burned-in subtitles, no lip-sync promise.
  4. Native clip audio is the sound bed (ducked under narration). No third-party music at all.
  5. Quality over volume: default programming is at most one film per day, with a human approval before release.
Files main
Menu

Theme