7.2 KiB
gsd_state_version, milestone, milestone_name, status, stopped_at, last_updated, last_activity, progress
| gsd_state_version | milestone | milestone_name | status | stopped_at | last_updated | last_activity | progress | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1.0 | v2.2 | — Sales Loop | executing | Phase 12 re-scoped (mockup utente → editor offerte) e pianificata: 5 piani / 4 wave, planner + plan-checker pass. Pronta per /gsd-execute-phase 12 | 2026-06-19T10:25:00.000Z | 2026-06-19 -- Phase 18 Plan 02 complete (analytics merged into /admin, /admin/analytics deleted) |
|
Project State
Project Reference
See: .planning/PROJECT.md (updated 2026-06-13)
Core value: Il cliente apre il link e vede esattamente a che punto è il suo progetto, cosa deve ancora succedere e cosa ha già approvato — senza dover scrivere email per chiedere aggiornamenti.
Current focus: Milestone v2.2 "Sales Loop" (reset 2026-06-19). North-star: lead in pipeline Kanban → transcript call → agente AI genera preventivo → pagina pubblica /preventivo/[slug] → vinto/perso. Piano: .claude/plans/glittery-sprouting-pudding.md. Prossimo passo: pianificare Phase 18 (R1) Cleanup.
Current Position
Phase: 18 (R1) Cleanup & Consolidamento Plan: 02 complete (03 next) Status: Executing Last activity: 2026-06-19 -- Phase 18 Plan 02 complete (analytics merged into /admin, /admin/analytics deleted)
Progress (v2.2): [██░░░░░░░░] 20% — Phase 18 in progress (01, 02 done)
Fasi completate (v2.1, storico)
Phase 11 (catalogo), Phase 12 (offer editor), Phase 14 (CRM Attio) — consegnate e in prod. 55 servizi reali + tag offerta caricati.
Performance Metrics
Velocity:
- Total plans completed: 7 (v2.1)
- Average duration: —
- Total execution time: —
By Phase:
| Phase | Plans | Total | Avg/Plan |
|---|---|---|---|
| Phase 11 P01 | 25min | 2 tasks | 6 files |
| 11 | 4 | - | - |
| 14 | 3 | - | - |
Recent Trend:
- Last 5 plans: —
- Trend: —
Updated after each plan completion | Phase 11 P02 | 12min | 2 tasks | 2 files | | Phase 11 P03 | 9min | 2 tasks | 2 files | | Phase 11 P04 | 12min | 2 tasks | 4 files |
Accumulated Context
Decisions
Decisions are logged in PROJECT.md Key Decisions table. Recent decisions affecting current work:
- [RESET 2026-06-19] Milestone v2.2 "Sales Loop" sostituisce le fasi residue v2.1. Decisioni bloccate: (1) URL preventivo =
/preventivo/[slug]pubblico; (2) tagliare Forecast + quote builder manuale + Phase 15, fondere/admin/analyticsnella dashboard; (3) portale post-vendita resta core, non si tocca (Phase 13 congelata); (4) agente AI = "io scelgo l'offerta, l'AI personalizza" leggendo i transcript, provider Claude. Piano:.claude/plans/glittery-sprouting-pudding.md - [SUPERSEDED dal reset] v2.1 roadmap: Offer Studio (Phases 11-15) sequenced before Proposal AI (Phases 16-17) — clean/fast data UX before the AI builder
- Phase 11 bundles catalog database-view UX (OFFER-07..10) with legacy consolidation (OFFER-13) since the new UX should be built on a single unified
servicestable, not on top of legacyservice_catalog/offer_services - Phase 13 (Workspace — Servizi Attivi) is independent of Phases 11/12 — can execute in parallel order if useful, but numbered after for narrative flow
- Phase 15 (Dashboard Revenue Stats / DASH-11) is isolated and BLOCKED on user-provided mockup; no other phase depends on it — can be deferred/skipped without blocking Phase 16/17
- Phase 16/17 split: schema/automation (payment link field + auto-provisioning) first, then AI builder + public page redesign + email — keeps the AI-dependent work last
- [Phase 11]: Phase 11: hand-write Drizzle migration SQL (0006_add_tags_table.sql) following the project's established convention since drizzle-kit generate is non-functional (meta snapshots out of sync since migration 0001, pre-existing since Phase 8) — Avoids architectural snapshot-reconciliation work (Rule 4, out of scope) while matching exact precedent from migrations 0003-0005
- [Phase 11]: Phase 11 Plan 02: onConflictDoNothing() without explicit target compiles cleanly for tags table (single unique index tags_entity_name_unique) — used as written in plan, no fallback needed — Avoids unnecessary deviation; Drizzle's no-target ON CONFLICT DO NOTHING is correct given the single unique constraint from Plan 01
- [Phase 11]: Phase 11 Plan 03: removed the plan's prescribed value-sync useEffect (and a follow-up render-time ref-read attempt) from EditableCell — both violate this project's react-hooks lint rules (set-state-in-effect, refs-during-render / React Compiler). tempValue is now only (re)initialized in startEdit()/cancel(), and the toggle display branch reads
valuedirectly instead oftempValue— Rule 1 lint fix, no behavioral change to the 8 spec'd test behaviors - [Phase 11]: Phase 11 Plan 04: left
createService/serviceSchemainsrc/app/admin/catalog/actions.tsas unused dead code after deletingServiceForm.tsx(its only consumer) —actions.tswas outside this plan'sfiles_modifiedscope andupdateServicestill depends onserviceSchema; logged to deferred-items.md for future cleanup - [Phase 18-02]: fmtEur unified to number version (analytics/page.tsx variant); KPI card callers using DB string values wrapped with parseFloat() — cleaner than maintaining two named variants
- [Phase 18-02]: /admin/analytics route deleted; YearSelector now routes to /admin?year=Y — single admin entry point for statistics (CLEAN-03)
Pending Todos
[From .planning/todos/pending/ — ideas captured during sessions]
None yet.
Blockers/Concerns
- Migrations (sempre valido): ogni fase con schema (es. Phase 20 transcript) DEVE avere la migration applicata a prod via tunnel SSH (
ssh -L 54321:localhost:54321 root@178.104.27.55,DATABASE_URLriscritto a127.0.0.1:54321) PRIMA di pushare il codice dipendente.drizzle-kit generaterotto → SQL a mano. - Phase 21 (AI): nessuna integrazione AI ancora nel codice. Servirà chiave Anthropic API in env (Coolify) + decisioni modello/prompt in fase di planning.
- Debito tecnico (non bloccante): tabelle legacy
service_catalog/offer_services/offer_micro_servicesrestano come deadweight;createService/serviceSchemadead code incatalog/actions.ts. Script di validazione consolidamento Phase 11 (migrate/validate) mai eseguiti ma OFFER-13 è di fatto soddisfatto (catalogoservicesin uso, 55 servizi reali caricati). - [RISOLTO]
Phase 15 bloccata su mockup→ fase abbandonata dal reset 2026-06-19.
Deferred Items
Items acknowledged and carried forward from previous milestone close:
| Category | Item | Status | Deferred At |
|---|---|---|---|
| v2 | OFFER-14 — Sezioni analitiche stile Notion (psicologia/rating/performance) | Backlog | v2.1 kickoff |
| v2 | AUTH-OTP-01 — Accesso dashboard cliente via OTP email | Design ready, deferred | v2.1 kickoff |
| v2 | ARCH-01 — Split modulo "compartimento stagno" in deploy separato | Backlog (only if module grows) | v2.1 kickoff |
Session Continuity
Last session: 2026-06-19T10:25:00.000Z Stopped at: Phase 18 Plan 02 complete — CLEAN-03 done. Next: 18-03-PLAN.md Resume file: .planning/phases/18-cleanup-consolidamento/18-03-PLAN.md