Phase 1 executed (4 plans, 3 waves), verified, gap fixed. 36 requirements marked Complete in traceability table. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.2 KiB
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 completata e verificata — pronta per deploy e Phase 2
Current Position
Phase: 1 of 4 (Core Generation Pipeline) — COMPLETE Plan: 4 of 4 in current phase Status: Phase 1 COMPLETATA e VERIFICATA — gap fix applicato per calendar slot merge Last activity: 2026-03-08 — Phase 1 completata, verificata, gap corretto
Progress: [████░░░░░░] 25% (4/9 piani totali)
Performance Metrics
Velocity:
- Total plans completed: 4
- Average duration: ~8 min
- Total execution time: 33 min
By Phase:
| Phase | Plans | Total | Avg/Plan |
|---|---|---|---|
| 01-core-generation-pipeline | 4/4 COMPLETA | 33 min | 8 min |
Recent Trend:
- Last 4 plans: 6 min, 9 min, 8 min, 10 min
- Trend: baseline stabile ~8 min/piano
Updated after each plan completion
Accumulated Context
Decisions
Decisions are logged in PROJECT.md Key Decisions table. Recent decisions affecting current work:
- [Setup]: FastAPI root_path SOLO via Uvicorn (--root-path), mai nel costruttore FastAPI()
- [Setup]: CSV encoding = utf-8-sig (BOM) sempre; CANVA_FIELDS locked come costante
- [Setup]: Prompt di sistema scritti IN italiano
- [Setup]: Per-item error isolation dal primo loop di generazione
- [01-01]: root_path SOLO via Uvicorn --root-path nel Dockerfile CMD
- [01-01]: API_BASE='/postgenerator/api' nel frontend — Pitfall #9 risolto
- [01-02]: CANVA_FIELDS 33 colonne con _image_keyword (non URL) — URL Unsplash in Phase 4
- [01-02]: PromptService usa ValueError per variabili mancanti
- [01-03]: LLMService._parse_retry_after() legge header HTTP per wait esatto (fallback 60s)
- [01-03]: asyncio.to_thread wrappa LLM sync calls nel background task async
- [01-03]: Settings.api_key merge: PUT non sovrascrive con None se non inclusa nel body
- [01-03]: Pipeline singleton in generate.py per mantenere _jobs tra request, con fallback da disco
- [01-04]: Palette stone/amber per design B2B non generico (non gradienti viola)
- [01-04]: Download CSV sempre via POST con edits inline (non GET originale)
- [01-04]: localResults separato in OutputReview per edit inline senza mutare cache TanStack Query
- [verification-fix]: GenerateResponse include calendar per badge PN/Schwartz nel frontend
Blockers/Concerns
- [Phase 1]: Validare token usage reale per batch 13 post con claude-sonnet-4-5 — inter_request_delay=2.0s configurato, da validare in produzione
- [Phase 1]: Baseline qualita' prompt italiani da validare dopo prima generazione reale
- [Deploy]: Phase 1 completa — serve vps-lab-deploy per testare end-to-end il sistema
Session Continuity
Last session: 2026-03-08 Stopped at: Phase 1 completata e verificata — pronta per deploy Resume file: None
Next Actions
Phase 1 completata. Prossimi passi:
vps-lab-deployper deployare su VPS e testare end-to-end- Configurare API key in Impostazioni UI
- Generare primo calendario reale per validare qualita' prompt e token usage
- Poi procedere con Phase 2 (Prompt Control + Output Review)