docs(01): capture phase context
Phase 01: Core Generation Pipeline - Implementation decisions documented - Phase boundary established Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
73
.planning/phases/01-core-generation-pipeline/01-CONTEXT.md
Normal file
73
.planning/phases/01-core-generation-pipeline/01-CONTEXT.md
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# Phase 1: Core Generation Pipeline - Context
|
||||||
|
|
||||||
|
**Gathered:** 2026-03-08
|
||||||
|
**Status:** Ready for planning
|
||||||
|
|
||||||
|
<domain>
|
||||||
|
## 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/`.
|
||||||
|
|
||||||
|
</domain>
|
||||||
|
|
||||||
|
<decisions>
|
||||||
|
## 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
|
||||||
|
|
||||||
|
</decisions>
|
||||||
|
|
||||||
|
<specifics>
|
||||||
|
## 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"
|
||||||
|
|
||||||
|
</specifics>
|
||||||
|
|
||||||
|
<deferred>
|
||||||
|
## Deferred Ideas
|
||||||
|
|
||||||
|
None — discussion stayed within phase scope
|
||||||
|
|
||||||
|
</deferred>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Phase: 01-core-generation-pipeline*
|
||||||
|
*Context gathered: 2026-03-08*
|
||||||
Reference in New Issue
Block a user