75 lines
1.7 KiB
Markdown
75 lines
1.7 KiB
Markdown
# 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.
|