Components¶
Per-component reference lands as the build progresses (Phase 1+). Until then, this is the planned shape from the design spec and the interface contracts.
Generation (internal/gen/)¶
| Package | Responsibility | Ports |
|---|---|---|
voice |
ElevenLabs TTS (voice clone) | gen-vo.py |
music |
ElevenLabs Music bed | gen-music.py |
reel |
storyboard → cards → ffmpeg assembly | gen-reel.py |
cover |
Gemini Imagen cover art | gen-cover.py |
portrait |
Gemini image-to-image avatar | gen-portrait.py |
video (deferred) |
short per-panel clips | — (0003) |
Providers (the pluggable seams)¶
ImageProvider, VideoProvider, VoiceProvider, MusicProvider, Renderer —
each config-selected (providers.*). Defaults: Gemini / ElevenLabs / ffmpeg.
→ spec §3.4
Posting (internal/publish/<platform>)¶
One Publisher adapter per platform (Instagram → YouTube → TikTok → LinkedIn),
fanned out by post all, gated by the approval lifecycle.
→ spec §4
CLI surface¶
The full command set, contracts and exit codes are specified in
0002-interface-contracts.md
§3 — reel, voice/music/cards, social, approve, post, auth,
theme, studio, plus the go-tool-base defaults (init, doctor, config,
mcp, …).