docs: apre v2.5 "Audit" e rimette in pari roadmap e requisiti
La roadmap era ferma al 2026-08-08 e diceva ancora "nessuna fase aperta" mentre
v2.5 era gia' partita e Phase 27 era a meta'; REQUIREMENTS.md era ancora quello
di v2.4. STATE.md invece era corretto — segno che aggiornare solo quello non
basta. Da qui la divisione dei ruoli, ora esplicita in testa a ogni file:
- STATE.md orientamento breve (99 righe): dove sta cosa, come funziona il
motore, i blocchi vivi. Niente narrativa.
- ROADMAP.md tutte le fasi 1->30, con lo stato di ciascuna
- REQUIREMENTS.md i 25 requisiti di v2.5 (AUD-01..25) e il backlog
- STATUS.md l'unica narrativa lunga: lezioni e note tecniche
v2.4 chiusa e archiviata in milestones/v2.4-REQUIREMENTS.md.
Decisione nuova: il documento di restituzione usa il design system dell'area
admin ("Quiet Luxury"), non una tipografia sua — token semantici, Plus Jakarta
Sans, Geist Mono per metriche e date, StatusBadge per gli impatti. Sostituisce
la deroga tipografica prevista dal piano. I font sono gia' self-hostati da
next/font/google, quindi la CSP font-src 'self' e' soddisfatta senza lavoro, e
il documento non aggiunge debito a DEBT-01 perche' nasce gia' a token.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# ClientHub (IAMCAVALLI) — Status
|
||||
|
||||
_Ultimo aggiornamento: 2026-08-08_
|
||||
_Ultimo aggiornamento: 2026-08-18_
|
||||
|
||||
Questo è **l'unico documento narrativo** del progetto: a che punto siamo, cosa manca,
|
||||
cosa abbiamo imparato. `.planning/STATE.md` è il digest che leggono i comandi
|
||||
@@ -11,17 +11,43 @@ cosa abbiamo imparato. `.planning/STATE.md` è il digest che leggono i comandi
|
||||
In produzione su `hub.iamcavalli.net` (Coolify/Hetzner, deploy automatico su push a
|
||||
`main` via Gitea). Build verde, `npm audit` pulito.
|
||||
|
||||
Milestone **v2.4 "Post-vendita"** — Phase 13 e Phase 26 consegnate e in produzione.
|
||||
Nessun lavoro in sospeso non committato.
|
||||
Milestone **v2.5 "Audit"** in corso — Phase 27 a metà. In produzione c'è **solo lo
|
||||
schema** dell'audit: nessuna pagina, né admin né pubblica.
|
||||
|
||||
| Milestone | Fasi | Stato |
|
||||
|---|---|---|
|
||||
| v2.4 Post-vendita | 13, 26 | 🔨 in corso — consegnato tutto ciò che era pianificato |
|
||||
| v2.5 Audit | 27–30 | 🔨 in corso — Phase 27 ~50% |
|
||||
| v2.4 Post-vendita | 13, 26 | ✅ chiusa 2026-08-08, entrambe in produzione |
|
||||
| v2.3 Email & Accesso | 23–25 | ✅ shipped 2026-07-29, verificata E2E |
|
||||
| v2.2 Sales Loop | 18–22 | ✅ shipped 2026-06-20 |
|
||||
| v2.1 Offer Studio + CRM | 11, 12, 14 | ✅ chiusa per reset 2026-06-19 |
|
||||
| v1.0 + v2.0 | 1–10 | ✅ shipped giugno 2026 |
|
||||
|
||||
## In corso
|
||||
|
||||
### v2.5 — Audit (Phases 27–30)
|
||||
|
||||
Il servizio di analisi sito (tre livelli: **Radiografia / Prima-Dopo / Rotta**) diventa
|
||||
un documento privato su `/audit/[slug]`, generato da un motore multi-agente e rifinito a
|
||||
mano prima della consegna. I tre livelli sono **configurazioni di un unico documento**:
|
||||
i blocchi non pertinenti non esistono nel DOM.
|
||||
|
||||
Fatto finora (Phase 27, ~50%):
|
||||
|
||||
- **[prod 2026-08-18] Schema.** Migration `0017_audits.sql`, 7 tabelle additive, più
|
||||
`checklist_items` seminata con 264 voci. Nessuna UI le legge ancora.
|
||||
- **[non pushato] Le fonti del motore.** `src/lib/audit/sources/` — PageSpeed, CrUX,
|
||||
Wayback, RDAP, robots/sitemap/JSON-LD, header. Provate sul campo su giojello.com:
|
||||
giro completo in 73 s, tutte e cinque hanno risposto.
|
||||
|
||||
Manca: agent + sintetizzatore + pipeline, storage immagini, editor admin, pagina
|
||||
pubblica. Dettaglio in [`.planning/ROADMAP.md`](.planning/ROADMAP.md) e
|
||||
[`.planning/REQUIREMENTS.md`](.planning/REQUIREMENTS.md).
|
||||
|
||||
⚠️ **I due piani della milestone stanno in `~/.claude/plans/`, fuori dal repo**
|
||||
(`…woolly-puddle.md` per il documento, `…radiant-valley.md` per il motore). Senza quei
|
||||
file la milestone non è ricostruibile.
|
||||
|
||||
## Fatto
|
||||
|
||||
### v2.4 — Post-vendita
|
||||
@@ -105,6 +131,21 @@ cui si ricasca.
|
||||
`/api/v1/applications/<uuid>/envs`: mandare solo `key`, `value`, `is_preview`.
|
||||
- **Playwright non funziona contro `npm run dev`**: la CSP blocca `eval` e i client
|
||||
component non si idratano. Serve il build di produzione.
|
||||
- **Le API di Google cambiano forma sotto i piedi, e in silenzio.** Scrivendo
|
||||
`src/lib/audit/sources/` due estrazioni dedotte dalla documentazione hanno restituito
|
||||
valori vuoti *senza errore*: `largest-contentful-paint-element` non esiste più (ora è
|
||||
`lcp-breakdown-insight`, con `subpart`/`duration` e senza percentuali) e
|
||||
`configSettings.screenEmulation` non esiste affatto nelle risposte pubbliche. Trovate
|
||||
solo perché le fonti sono state fatte girare su un sito vero prima di costruirci sopra.
|
||||
**Ogni estrazione da un'API di terzi va vista funzionare, non dedotta dai docs.**
|
||||
- **Laboratorio e campo misurano cose diverse, e la differenza *è* il risultato.** Su
|
||||
giojello.com Lighthouse dà `server-response-time` **7 ms** e CrUX dà TTFB p75 **3.553
|
||||
ms con l'1% di visite nel verde**: il server risponde in fretta al datacenter Google e
|
||||
lento a tutti gli altri. Due numeri con lo stesso nome verrebbero fusi in uno — da qui
|
||||
`risposta_server_ms` invece di `ttfb_ms`.
|
||||
- **I punteggi PageSpeed ballano fra un giro e l'altro**: performance mobile 52 e poi 64
|
||||
sullo stesso sito a 30 minuti di distanza. Nei documenti consegnati un punteggio va
|
||||
sempre con la sua data, mai presentato come una costante del sito.
|
||||
|
||||
## Note tecniche
|
||||
|
||||
@@ -141,7 +182,8 @@ cui si ricasca.
|
||||
| src/app/admin/projects/project-actions.ts | `importOfferIntoProject`, `setProjectOfferLifecycle`, piani pagamento |
|
||||
| src/components/admin/tabs/OffersTab.tsx | Tab Offerte + comandi ciclo di vita |
|
||||
| src/lib/admin-queries.ts / client-view.ts | I due layer separati: admin vs proiezioni client-safe |
|
||||
| src/db/migrations/ | 0011 (email/phone), 0012 (offer_type), 0015 (OTP), 0016 (ciclo di vita) |
|
||||
| src/lib/audit/sources/ | Le 5 fonti del motore audit (nessun LLM) — `fetch` espone anche gli helper di rete condivisi |
|
||||
| src/db/migrations/ | 0011 (email/phone), 0012 (offer_type), 0015 (OTP), 0016 (ciclo di vita), 0017 (audit) |
|
||||
|
||||
## Dove sta il resto
|
||||
|
||||
|
||||
Reference in New Issue
Block a user