# Slide Factory Slide Factory turns messy business content into brand-consistent slide decks. The first build is intentionally local-first: a CLI, an API, and a small web UI share the same deck spec, style packs, and PPTX renderer. The same core contract can later run behind `dev.slides.scottfelten.com` and `slides.scottfelten.com`. The web UI is source-first: paste notes, drop a file, choose a file, or paste an image into the source area. The MVP extracts text from Markdown/text, PDF, and PPTX files. Image upload starts a deck from image metadata today; vision/OCR is reserved for the Model Service Gateway integration. ## MVP Contract ```text source content -> content extraction -> deck planning -> validated DeckSpec -> brand/style pack -> PPTX renderer -> saved artifacts ``` The LLM layer should produce structured thinking, not freehand slide design. Renderers consume a validated `DeckSpec` and a `StylePack`. ## Quick Start ```bash npm install npm run sample ``` Outputs are written to: ```text outputs/sample-incorta.pptx outputs/sample-incorta.deck.json ``` Run the local API: ```bash npm run dev:api ``` Run the web shell: ```bash npm run dev:web ``` Then open: ```text http://127.0.0.1:5185 ``` Supported starter sources: - `.md`, `.markdown`, `.txt` - `.pdf` - `.pptx` - image files or pasted clipboard images ## AgentPlane Notes - Implementation truth should live in Forgejo. - Runtime secrets must come from scoped projections or Model Service Gateway. - Do not commit raw source data, tokens, refresh tokens, or customer documents. - Google Slides generation should reuse the existing AgentPlane guidance: copy templates, inventory native containers, fill existing object IDs, and render thumbnails/contact sheets before handoff.