Files
clienthub/.planning/HANDOFF.md
T
simone 03898f2a59 docs(planning): v2.1 milestone setup + Phase 11 context/patterns
- Archive v2.0 phases (07-10) under .planning/milestones/
- v2.1 REQUIREMENTS/ROADMAP (Phases 11-17: Offer Studio + Proposal AI)
- DESIGN-SYSTEM.md (database-view UI contract for Phases 11-14)
- Phase 11 CONTEXT, DISCUSSION-LOG, PATTERNS

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 15:07:06 +02:00

5.4 KiB

Handoff

Living document — update at the end of each session so the next one can resume without re-deriving context. Overwrite stale sections; keep it short and actionable.


2026-06-13 — Milestone v2.1 "Offer Studio + Proposal AI" pianificata — pronta per esecuzione

Cosa è stato fatto

Eseguito ciclo completo /gsd-new-milestone "Offer Studio + Proposal AI" (research saltata su scelta utente):

  • PROJECT.md: nuovo milestone v2.1 con goal, 4 target feature, sezione "Validated" aggiornata con v2.0 (Phase 7-10), "Active" riscritta in 4 categorie prioritizzate, nuove Key Decisions (compartimenti stagni confermato, ordine Offer Studio→Proposal AI, tab Preventivo→Servizi Attivi zero-perdita verificata)
  • v2.0 archiviata (copie, non spostamenti): REQUIREMENTS.md/ROADMAP.md/phases 07-10 → .planning/milestones/v2.0-*
  • REQUIREMENTS.md riscritto: 23 requisiti v1 in 5 categorie (Offer Studio, Workspace Servizi Attivi, CRM Attio, Dashboard [bloccata], Proposal AI) + deferred v2 (OFFER-14, AUTH-OTP-01, ARCH-01) + out of scope
  • ROADMAP.md creato: 7 nuove fasi (11-17), copertura 100% (23/23 requisiti mappati), tutte approvate dall'utente
  • STATE.md: switch a v2.1, focus = Phase 11

Roadmap v2.1 (Phase 11-17)

Fase Titolo Requisiti Note
11 Catalog Database-View UX & Legacy Consolidation OFFER-07,08,09,10,13 unifica service_catalog/offer_servicesservices PRIMA della nuova UX
12 Offer Composition Drag&Drop & CSV Import OFFER-11,12 @dnd-kit, totale live durante drag, import CSV one-shot
13 Workspace — Servizi Attivi PROJ-06..10 rimuove tab Preventivo (zero perdita, accepted_total resta via Payments) e Forecast; nuova tab Servizi Attivi (one-shot/ricorrenti + tracking incassi mensili)
14 CRM Attio-style & Fix CRM-08..12 inline edit lead + tag, fix FollowUpWidget IT / LeadForm types / SendQuoteModal
15 Dashboard Revenue Stats DASH-11 BLOCCATA — attesa mockup utente, isolata/skippabile, non blocca 16/17
16 Proposal AI — Data Foundations & Auto-Provisioning PROP-03,04 campo Stripe Payment Link + auto-provisioning su accettazione (ex-Phase 11)
17 Proposal AI — Builder, Pagina Pubblica & Email PROP-01,02,05 AI builder + redesign /quote/[token] + invio email Resend (ex-Phase 12)

Nota trasparenza — deviazione dal workflow

Il workflow /gsd-new-milestone prevede uno step "phases clear" che farebbe rm -rf di .planning/phases/01-10/ senza backup. Non l'ho eseguito: è distruttivo, senza archiviazione automatica, e CLAUDE.md richiede conferma prima di operazioni distruttive/di investigare prima di rimuovere lavoro storico. Le fasi 07-10 sono state invece COPIATE (non spostate) in .planning/milestones/v2.0-phases/; le directory originali 01-10 restano in .planning/phases/. Nessuna perdita — solo directory duplicate, pulizia facoltativa in futuro.

Prossima sessione

  1. Pianificare Phase 11 (Catalog Database-View UX & Legacy Consolidation): /gsd-plan-phase 11 (oppure /gsd-discuss-phase 11 prima per decisioni aperte: schema tag, formato CSV import, strategia consolidamento service_catalog/offer_services)
  2. Se arriva il mockup dashboard dall'utente: Phase 15 (DASH-11) può essere sbloccata, usare /gsd-ui-phase come contratto UI
  3. Migration Phase 11 (consolidamento catalogo) e Phase 13/16 (nuovi campi recurring/payment link) vanno applicate a prod via SSH+docker exec PRIMA del push del codice dipendente (regola storica, vedi sotto)

2026-06-12 — Direzione "Offer Studio" + "Proposal AI" → ora pianificata (vedi sopra)

  • BUG fixato e deployato: /admin/leads/[id] 500 per params non awaited (Next.js 16) → fix commit ea20685, confermato live in prod (container 857af5c1...).
  • Decisioni strutturali (Preventivo→Servizi Attivi, Forecast→Dashboard, CRM Attio-style, compartimenti stagni) sono ora formalizzate in PROJECT.md/REQUIREMENTS.md/ROADMAP.md — vedi sezione 2026-06-13 sopra.

2026-06-11 (sera) — Phase 10 redo COMPLETATO, root cause risolta (storico)

  • Root cause del crash post-deploy Phase 10: il DB prod non aveva NESSUNA migration dopo la 0000 (mancavano services, leads, offer_phases, quotes…). Catalogo e quote già rotti prima di Phase 10; il deploy Phase 10 ha aggiunto il crash dashboard (FollowUpWidget→leads). NON era un problema di piattaforma (l'app è Gitea→Coolify, non Vercel).
  • Fix: migrations 0001+0003+0004+0005 applicate atomicamente al DB prod via ssh root@178.104.27.55docker exec -i xwkk0040w0kk0gsgcgog8owk psql (porta 54321 firewallata dall'esterno, si passa da SSH). Dati protetti verificati intatti (4 clients / 5 projects / 13 payments / 6 phases).
  • Redo Phase 10 deployato: commit 5aa6614 (deps+UI primitives) e 008a434 (modulo CRM completo). Utente conferma pagine visibili in prod.
  • REGOLA: le migration qui sono manuali — applicare al DB prod PRIMA di pushare codice che usa il nuovo schema. Pattern: cat migration.sql | ssh root@178.104.27.55 "docker exec -i xwkk0040w0kk0gsgcgog8owk sh -c 'psql -U \$POSTGRES_USER -d clienthub -v ON_ERROR_STOP=1 --single-transaction'" (verificare prima che sia additive-only).
  • Branch phase10-wip (= 8e2752a) cancellabile quando il redo è considerato definitivo. Dangling ancora recuperabile: 5d75752 (sidebar App shortcuts).
  • Script riusabile: scripts/push-phase10-migration.ts (solo dal server o con tunnel).