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>
5.6 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.5 | Audit | executing | Phase 27 a metà: schema in prod, fonti scritte e provate sul campo. Prossimo: src/lib/audit/schema.ts + agents/. | 2026-08-18T17:45:00.000Z | 2026-08-18 -- fonti del motore scritte e verificate su sito reale |
|
Project State
Digest breve, per orientarsi. Narrativa e lezioni →
STATUS.md(root); requisiti →REQUIREMENTS.md; tutte le fasi →ROADMAP.md. Questo file resta sotto le 100 righe: lo impone il template GSD.
Project Reference
See: .planning/PROJECT.md · Core value: il cliente apre il link e vede a che punto è
il suo progetto, senza scrivere email. · Current focus: milestone v2.5 "Audit" —
il servizio di analisi sito diventa un documento privato su /audit/[slug].
Current Position
Phase: 27 of 30 — Motore di analisi
Plan: schema e fonti fatti; agent, sintetizzatore e pipeline da scrivere
Status: nessun bloccante — prossimo passo src/lib/audit/schema.ts + agents/
Last activity: 2026-08-18 — src/lib/audit/sources/ scritto e provato su giojello.com
Progress: [███░░░░░░░] 25%
Dove sta cosa
| Cosa | Dove | Stato |
|---|---|---|
| Schema audit (7 tabelle) | src/db/migrations/0017_audits.sql + src/db/schema.ts |
in produzione |
| Rubrica del motore, 264 voci | tabella checklist_items, sorgente scripts/data/checklist.json |
in produzione |
| Fonti del motore (5 moduli) | src/lib/audit/sources/ |
scritto e provato, non in prod |
| Agent, sintetizzatore, pipeline | src/lib/audit/{schema,agents,pipeline}.ts |
da scrivere |
| Editor admin e pagina pubblica | src/app/admin/audit/, src/app/audit/[slug]/ |
da scrivere |
| L'unico audit prodotto finora | spike-audit-giojello.com.json (root, gitignorato) |
spike del 2026-08-16, zero rilevazioni |
| I due piani della milestone | ~/.claude/plans/ — …woolly-puddle.md (documento) + …radiant-valley.md (motore) |
fuori dal repo |
Come funziona il motore
Si incolla un URL. Nessun browser headless da nessuna parte.
- Raccolta in parallelo (
sources/, nessun LLM): PageSpeed, CrUX, Wayback, RDAP, robots/sitemap/JSON-LD, header. Ogni fonte fallisce in modo non fatale e dice perché. - Quattro sub-agent in parallelo (
agents/): checklist, visivo, storico, tecnico. Producono osservazioni, non finding. - Sintetizzatore che le incrocia: quattro osservazioni deboli su temi diversi diventano un finding solo con quattro evidenze indipendenti. Massimo 10, per impatto.
- Editor admin per rifinire, poi consegna su
/audit/[slug].
Vincolo che regge tutto: un numero entra solo se misurato, e dev'essere rintracciabile in audit_runs.raw.
Performance Metrics
Velocity: 21 plans completati (v2.1–v2.4). Phase 27: spike ~1h, schema ~1h, fonti ~2h.
Accumulated Context
Decisions
Log completo in PROJECT.md. Vive per il lavoro corrente:
- [2026-08-18] Il documento usa il design system dell'area admin — token semantici, Plus Jakarta Sans, Geist Mono per metriche e date,
StatusBadgeper gli impatti. Sostituisce la deroga tipografica del piano; i font sono già self-hostati danext/font/google, quindi la CSP è soddisfatta senza lavoro. - [2026-08-18] Nessun renderer headless — PageSpeed dà 153 audit sul DOM renderizzato, cioè le osservazioni visive che prima richiedevano screenshot a mano.
- [2026-08-18] Laboratorio ≠ campo, e la differenza è il risultato — Lighthouse dà 7 ms di risposta server, CrUX dà TTFB p75 3.553 ms. Da qui il nome
risposta_server_ms: con lo stesso nome il sintetizzatore li tratterebbe come un numero solo. - [2026-08-17] Il VPS non regge Chromium — RAM, non disco. È la ragione per cui l'opzione headless non torna.
- [2026-08-16] La checklist alimenta il MOTORE, non il documento — se diventa il rendering della checklist, torna a sembrare un audit automatico gratuito.
- [2026-08-16] Immagini — le due del redesign le carica l'utente, le due dello stato di fatto le scrive la pipeline. Emenda LOCKED #5 solo per gli asset di audit.
Pending Todos — nessuno (.planning/todos/ non esiste)
Blockers/Concerns
- Il copy fisso del template v1 non ha una fonte nel repo — il prototipo Giojello non c'è. Lo stile ora viene dal design system, ma testi e gerarchia dei blocchi vanno recuperati prima di Phase 30.
- Il caso "zero dati CrUX" non è ancora stato visto su un sito vero (test 5 del piano).
- Il 52% della checklist non è verificabile da HTML statico — quanto ne recuperino gli audit Lighthouse non è ancora misurato (test 3 del piano).
- Whitelist portale vuota per 3 clienti su 4 — si popola da
/admin/clients/<id>. .env.localpunta al DB di PRODUZIONE, non allineato a Coolify perADMIN_PASSWORD/NEXTAUTH_SECRET.- Ogni fase con schema: migration applicata a prod prima del push del codice.
- Debito design (DEBT-01) — ~40 file, ~450 occorrenze. Dettaglio in
STATUS.md.
Deferred Items
Vedi REQUIREMENTS.md § Backlog e § Rinviati esplicitamente da v2.5.
Session Continuity
Last session: 2026-08-18
Stopped at: src/lib/audit/sources/ (5 moduli) scritto e provato sul campo su giojello.com — giro completo 73 s, tutte le fonti hanno risposto. Build e lint puliti.
Next: (1) src/lib/audit/schema.ts + agents/ con validazione Zod dura; (2) pipeline.ts con heartbeat su audit_runs; (3) volume Coolify prima del deploy; (4) editor e pagina.
Resume file: None