diff --git a/.planning/phases/01-core-generation-pipeline/01-CONTEXT.md b/.planning/phases/01-core-generation-pipeline/01-CONTEXT.md new file mode 100644 index 0000000..5dafb26 --- /dev/null +++ b/.planning/phases/01-core-generation-pipeline/01-CONTEXT.md @@ -0,0 +1,73 @@ +# Phase 1: Core Generation Pipeline - Context + +**Gathered:** 2026-03-08 +**Status:** Ready for planning + + +## Phase Boundary + +Pipeline end-to-end che genera 13 caroselli Instagram con distribuzione Persuasion Nurturing + livelli Schwartz, e produce CSV per Canva Bulk Create. Include Web UI con form di generazione, progress indicator, anteprima output con navigazione slide, e download CSV. Deployata su VPS come single container FastAPI + React SPA su `https://lab.mlhub.it/postgenerator/`. + + + + +## Implementation Decisions + +### Struttura carosello Canva +- Numero slide variabile per tipo post (non fisso) — il numero cambia in base al tipo Persuasion Nurturing (es. valore puo' avere piu' slide di promo) +- Claude sceglie i nomi placeholder Canva Bulk Create — l'utente creera' il template Canva dopo, basandosi sullo schema CSV prodotto +- Claude decide la struttura immagini per slide (quali slide hanno campo immagine) in base a best practice Instagram carousels +- Il CSV include una colonna caption Instagram con testo post + hashtag, generata dall'LLM insieme al contenuto slide + +### Form di generazione +- Input guidato con default intelligenti: obiettivo campagna + settimane obbligatori, opzionalmente nicchia, tono di voce, nome brand +- Campi opzionali hanno default ragionevoli se non compilati +- Claude API key configurata una volta nella pagina Impostazioni, non nel form di generazione +- Pulsante "Genera" disabilitato se API key non configurata, con messaggio che rimanda a Impostazioni + +### Anteprima e review output +- Layout griglia di card per i 13 post generati +- Ogni card mostra badge colorati con tipo Persuasion Nurturing (es. "Valore", "Storytelling") e livello Schwartz +- Click su card per espandere e vedere le slide +- Navigazione slide con frecce laterali (stile Instagram stories preview) +- Caption Instagram visibile sotto le slide nell'espansione +- Edit inline del testo: click su testo slide per modificarlo, le modifiche si riflettono nel CSV scaricato + +### Gestione errori e risultati parziali +- Post falliti mostrati come card errore con icona, messaggio breve, e pulsante "Riprova" per rigenerare quel singolo post +- CSV scaricato esclude i post falliti — solo post generati con successo (se 2 su 13 falliscono, CSV ha 11 righe) +- Per-item error isolation: un fallimento API non blocca il batch + +### Claude's Discretion +- Nomi esatti dei placeholder Canva (colonne CSV) +- Numero slide specifico per ogni tipo Persuasion Nurturing +- Quali slide hanno campo immagine e quali no +- Numero di post: fisso 13 o configurabile — Claude sceglie l'approccio piu' pragmatico per MVP +- Form "Genera Singolo Post": form separato o azione dal calendario — Claude sceglie il flusso piu' naturale +- Design UI generale (colori, spacing, tipografia) +- Loading skeleton e progress indicator design +- Struttura file-based storage + + + + +## Specific Ideas + +- Griglia card con badge strategici colorati — l'utente vuole vedere a colpo d'occhio la distribuzione PN e Schwartz +- Navigazione slide stile Instagram stories (frecce laterali) — familiare per chi lavora con Instagram +- Edit inline prima del download — l'utente vuole poter correggere piccoli dettagli senza rigenerare +- Caption Instagram nel CSV e nell'anteprima — il workflow e' "genera tutto, rivedi, scarica, importa in Canva, posta" + + + + +## Deferred Ideas + +None — discussion stayed within phase scope + + + +--- + +*Phase: 01-core-generation-pipeline* +*Context gathered: 2026-03-08*