# Project State ## Project Reference See: .planning/PROJECT.md (updated 2026-03-07) **Core value:** Generare un calendario di 13 caroselli Instagram strategicamente orchestrati, pronti per Canva Bulk Create, con un click dalla Web UI. **Current focus:** Phase 1 — Core Generation Pipeline ## Current Position Phase: 1 of 4 (Core Generation Pipeline) Plan: 2 of 4 in current phase Status: In progress — Plan 02 completato (parallelo con Plan 01) Last activity: 2026-03-08 — Completato 01-02-PLAN.md (servizi dominio + prompt) Progress: [██░░░░░░░░] 12% (2/16 piani totali stimati) ## Performance Metrics **Velocity:** - Total plans completed: 2 - Average duration: ~7 min - Total execution time: 15 min **By Phase:** | Phase | Plans | Total | Avg/Plan | |-------|-------|-------|----------| | 01-core-generation-pipeline | 2/4 | 15 min | 7 min | **Recent Trend:** - Last 5 plans: 6 min, 9 min - Trend: baseline stabilita *Updated after each plan completion* ## Accumulated Context ### Decisions Decisions are logged in PROJECT.md Key Decisions table. Recent decisions affecting current work: - [Setup]: Tutti i 9 critical pitfalls identificati dalla research sono concentrati in Phase 1 — affrontarli subito e' la priorita' assoluta - [Setup]: FastAPI root_path SOLO via Uvicorn (--root-path), mai nel costruttore FastAPI() — altrimenti doppio path bug - [Setup]: CSV encoding = utf-8-sig (BOM) sempre; CANVA_FIELDS locked come costante prima di qualsiasi codice di generazione - [Setup]: Prompt di sistema scritti IN italiano (non inglese + "scrivi in italiano") - [Setup]: Per-item error isolation dal primo loop di generazione — un fallimento non blocca il batch - [01-01]: root_path SOLO via Uvicorn --root-path nel Dockerfile CMD, VERIFICATO e funzionante - [01-01]: API_BASE='/postgenerator/api' nel frontend — Pitfall #9 risolto nella configurazione base - [01-01]: SPAStaticFiles montato come ultima operazione in main.py — pattern stabilito - [01-01]: fastapi[standard]==0.135.1, anthropic==0.84.0 pinned in requirements.txt - [01-01]: docker-compose NO porte esposte, named volume postgenerator-data per persistenza - [01-02]: CANVA_FIELDS 33 colonne con _image_keyword (non URL) — URL Unsplash in Phase 4 - [01-02]: Distribuzione L3 split: valore-L3 in Cattura, riprova_sociale-L3 in Coinvolgi - [01-02]: PromptService usa ValueError per variabili mancanti — fail esplicito non silenzioso - [01-02]: Nicchie 50/50: slot pari=generico, slot dispari=verticale in rotazione ### Pending Todos None. ### Blockers/Concerns - [Phase 1 RISOLTO in 01-02]: CANVA_FIELDS locked con 33 colonne e assert a load-time - [Phase 1]: Validare token usage reale per batch 13 post con claude-sonnet-4-5 contro limite Tier 1 (8,000 OTPM) — necessario inter-request delay configurabile (2-3s) (da affrontare in 01-03) - [Phase 1]: Baseline qualita' prompt italiani da validare dopo prima generazione reale (post 01-03) ## Session Continuity Last session: 2026-03-08T01:00:34Z Stopped at: Completato 01-02-PLAN.md — Servizi dominio + prompt .txt italiani Resume file: None