---
phase: 18-cleanup-consolidamento
plan: 03
type: execute
wave: 2
depends_on:
  - "18-01"
  - "18-02"
autonomous: false
files_modified:
  - .planning/ROADMAP.md
  - .planning/REQUIREMENTS.md
requirements:
  - CLEAN-04

must_haves:
  truths:
    - "Le fasi 13/15/16/17 sono marcate esplicitamente come cancellate/congelate/ri-scopate nel ROADMAP.md"
    - "REQUIREMENTS.md riflette lo stato aggiornato dei requirement corrispondenti"
    - "CLEAN-04 è marcato Done in REQUIREMENTS.md"
    - "La build del progetto passa dopo le rimozioni dei piani precedenti"
  artifacts:
    - path: ".planning/ROADMAP.md"
      provides: "Fasi 13/15/16/17 con status esplicito cancellate/congelate"
      contains: "CONGELATA\|ABBANDONATA\|RI-SCOPATA"
    - path: ".planning/REQUIREMENTS.md"
      provides: "CLEAN-04 marcato Complete"
  key_links:
    - from: "ROADMAP.md fasi 13/15/16/17"
      to: "STATUS field"
      via: "checklist e label espliciti"
      pattern: "Congelata|Abbandonata|Ri-scopata"
---

<objective>
Verificare formalmente il completamento di CLEAN-04 e validare la build post-cleanup.

Purpose: CLEAN-04 — le fasi v2.1 residue sono già state archiviate/marcate nel reset 2026-06-19.
Questo piano le verifica, le sigla formalmente nel planning e valida che i piani 01/02
non abbiano introdotto errori di build.
Output: CLEAN-04 marcato Done, build TypeScript verificata, check umano che la dashboard funziona.
</objective>

<execution_context>
@$HOME/.claude/get-shit-done/workflows/execute-plan.md
@$HOME/.claude/get-shit-done/templates/summary.md
</execution_context>

<context>
@.planning/ROADMAP.md
@.planning/REQUIREMENTS.md
@.planning/STATE.md
</context>

<tasks>

<task type="auto">
  <name>Task 1: Verifica CLEAN-04 e aggiorna planning docs</name>

  <read_first>
    - .planning/ROADMAP.md — sezione fasi 13/15/16/17, verifica che abbiano label/status esplicito
    - .planning/REQUIREMENTS.md — sezione CLEAN-04, verifica stato attuale
  </read_first>

  <files>
    .planning/ROADMAP.md,
    .planning/REQUIREMENTS.md
  </files>

  <action>
    STEP 1 — Verifica ROADMAP.md:
    Leggi le voci delle fasi 13, 15, 16, 17 nel ROADMAP.md.
    Devono avere tutte uno status esplicito. Controlla che la checklist mostri:
    - Phase 13: [~] con label "❌ CONGELATA (reset 2026-06-19)"
    - Phase 15: [~] con label "❌ ABBANDONATA (reset 2026-06-19)"
    - Phase 16: [~] con label "❌ RI-SCOPATA in v2.2"
    - Phase 17: [~] con label "❌ RI-SCOPATA in v2.2"
    Se uno di questi status manca o è incompleto, aggiungilo/completalo.
    Aggiungi anche una nota nella tabella Progress in fondo con la data di chiusura 2026-06-19
    dove mancante.

    STEP 2 — Aggiorna REQUIREMENTS.md:
    Nella tabella "Cleanup & Consolidamento (Phase 18 / R1)":
    - CLEAN-01: cambia Status da "Pending" a "Complete"
    - CLEAN-02: cambia Status da "Pending" a "Complete"
    - CLEAN-03: cambia Status da "Pending" a "Complete"
    - CLEAN-04: cambia Status da "In corso (questo reset)" a "Complete"

    Nella tabella Traceability in fondo:
    - CLEAN-01 | Phase 18 (R1) | Complete
    - CLEAN-02 | Phase 18 (R1) | Complete
    - CLEAN-03 | Phase 18 (R1) | Complete
    - CLEAN-04 | Phase 18 (R1) | Complete

    STEP 3 — Build verification:
    Esegui: cd /Users/simonecavalli/Vault/IAMCAVALLI && npm run build
    Se la build fallisce:
    - Leggi l'output dell'errore
    - Identifica il file con import rotto
    - Risolvi (probabilmente un import di componente eliminato o una funzione non trovata)
    - Ri-esegui npm run build fino a successo
    Registra nel SUMMARY se ci sono stati fix necessari.
  </action>

  <verify>
    <automated>
      grep "CLEAN-04" /Users/simonecavalli/Vault/IAMCAVALLI/.planning/REQUIREMENTS.md
    </automated>
    Risultato atteso: riga contenente "CLEAN-04" e "Complete".

    Verifica fasi archiviate:
    grep -E "Phase 13|Phase 15|Phase 16|Phase 17" /Users/simonecavalli/Vault/IAMCAVALLI/.planning/ROADMAP.md | grep -E "CONGELATA|ABBANDONATA|RI-SCOPATA" | wc -l
    Risultato atteso: 4 (tutte e quattro le fasi con label esplicito).
  </verify>

  <acceptance_criteria>
    - REQUIREMENTS.md: CLEAN-04 è "Complete"
    - REQUIREMENTS.md: CLEAN-01, CLEAN-02, CLEAN-03 sono "Complete"
    - ROADMAP.md: fasi 13/15/16/17 hanno label di stato esplicito (CONGELATA/ABBANDONATA/RI-SCOPATA)
    - npm run build completa senza errori
  </acceptance_criteria>

  <done>
    Tutti i requisiti CLEAN-01..04 sono marcati Complete nei planning docs.
    La build TypeScript è pulita. Phase 18 è formalmente chiusa.
  </done>
</task>

<task type="checkpoint:human-verify" gate="blocking">
  <name>Checkpoint: Verifica visuale Dashboard e assenza rotte rimosse</name>

  <what-built>
    Piano 01 ha rimosso /admin/forecast e /admin/quotes/new.
    Piano 02 ha fuso le statistiche di /admin/analytics nella Dashboard /admin
    e rimosso la rotta /admin/analytics.
    Il selettore anno nella dashboard naviga a /admin?year=X.
  </what-built>

  <how-to-verify>
    1. Avvia il dev server: `npm run dev` (o `npx next dev`)
    2. Vai su http://localhost:3000/admin — verifica:
       - Sidebar: NON compare la voce "Forecast"
       - Dashboard: in fondo alla pagina compare la sezione "Statistiche" con selettore anno,
         MetricCard economiche (Contrattualizzato / Incassato / Da incassare / Clienti acquisiti),
         grafico mensile a barre, sezione ore per cliente
       - KPI card esistenti (Clienti attivi, Revenue totale, Progetti in corso, Pagamenti in sospeso)
         sono ancora presenti in cima
       - FollowUpWidget e feed attività sono ancora presenti
    3. Vai su http://localhost:3000/admin/forecast → deve restituire 404
    4. Vai su http://localhost:3000/admin/analytics → deve restituire 404
    5. Vai su http://localhost:3000/admin/quotes/new → deve restituire 404
    6. Clicca sul selettore anno nella sezione Statistiche → cambia anno e verifica che
       l'URL diventa /admin?year=XXXX (non /admin/analytics)
    7. Nel dettaglio di un lead, apri il modal "Invia preventivo" → verifica che NON
       compare più il bottone per creare un nuovo preventivo manuale
  </how-to-verify>

  <resume-signal>
    Scrivi "ok" se tutto funziona correttamente.
    Se trovi problemi, descrivi cosa non funziona e l'esecuzione correggerà prima di chiudere la fase.
  </resume-signal>
</task>

</tasks>

<threat_model>
## Trust Boundaries

| Boundary | Description |
|----------|-------------|
| planning docs → stato del progetto | Aggiornamento documenti di tracking — nessuna superficie di attacco |

## STRIDE Threat Register

| Threat ID | Category | Component | Disposition | Mitigation Plan |
|-----------|----------|-----------|-------------|-----------------|
| T-18-05 | Repudiation | ROADMAP.md / REQUIREMENTS.md | accept | I planning docs sono in git — ogni modifica è tracciata e reversibile |
</threat_model>

<verification>
Al termine del piano:
1. REQUIREMENTS.md: CLEAN-01, CLEAN-02, CLEAN-03, CLEAN-04 → tutti "Complete"
2. ROADMAP.md: fasi 13/15/16/17 con status esplicito
3. npm run build → 0 errori
4. Checkpoint umano superato (Dashboard mostra statistiche, rotte rimosse → 404)
</verification>

<success_criteria>
- CLEAN-04: fasi v2.1 residue formalmente chiuse nei planning docs
- Planning docs aggiornati con stati finali Phase 18
- Build pulita confermata
- Verifica visuale umana completata
</success_criteria>

<output>
After completion, create `.planning/phases/18-cleanup-consolidamento/18-03-SUMMARY.md`
</output>
