Files
nis2-agile/docs/COLLAUDO_SMOKE_AVATAR_CHECKLIST.md
T
DevEnv nis2-agile f946b3a9ca [DEMO] Checklist smoke avatar-in-the-loop + telemetria demo_events (parent origin confermato dimostrazione)
Criteri oggettivi per-step (navigate+highlight attesi, ARIA fonti certe), pre-flight verde, e query
demo_events per riscontro lato NIS2 post-giro. Smoke browser-driven da AgileHub, nessuna finestra bloccante.
2026-06-13 11:00:45 +02:00

3.0 KiB
Raw Blame History

Smoke congiunto avatar-in-the-loop NIS2 — checklist oggettiva + telemetria

Per il giro live browser-driven guidato da AgileHub (persona ARIA_SUPPORT_NIS2, tour_key demo:nis2-tour-2026). Bar del brief: "mostra la cosa giusta · dice cose vere · 0 errori tecnici · mai una schermata sbagliata". Parent origin confermato: dimostrazione.agile.software (widget/hub) iframe-a la SPA su nis2.dimostrazione.agile.software.

Pre-flight (già verde, collaudo wf_c473580d-ec3)

  • session-start → spa_iframe_url = …/dashboard.html?demo=<sid>#djwt=<jwt> sul sottodominio.
  • Auto-auth SPA (token dal #djwt prima di checkAuth); read 200 / write 403 DEMO_READ_ONLY; tenant isolato (996001).
  • demo-mode.js: allowlist origin (dimostrazione + nis2.dimostrazione), HMAC_ENFORCE=false.
  • RAG 415 attivo (75 chunk + binding ARIA).

Comportamento atteso per i 10 step (cosa è "giusto")

Step navigate → vista Highlight attesi (devono accendersi sull'elemento reale) ARIA narra (dal RAG, NIENTE numeri inventati)
1 dashboard #compliance-gauge, #stats-grid, #deadlines-list score Art.21 + KPI + scadenze
2 assessment #assessment-results, #ai-analysis-card 80 domande/10 cat + gap analysis AI
3 acn-gap #acn-bar-fill, #acn-catalog requisiti Det. ACN, essenziali/importanti
4 risks #btn-ai-suggest, #fair-histogram matrice 5x5 ISO 27005 + FAIR
5 incidents #crit-users, #crit-duration, #crit-attack significatività + 24h/72h/1 mese
6 policies #ai-generate-btn, #ai-preview-container bozza AI da rivedere/approvare
7 supply-chain #criticality-chart, #assessment-live-score questionario fornitori pesato
8 isms #btn-aigen, #docs-list SGSI 6 step + SoA 111 controlli
9 cross-analysis #quick-qs, #chat-input ARIA fonti certe + analisi trasversale
10 reports #report-container report CdA + audit hash-chain + ISO/NIST

FAIL se: pagina sbagliata, highlight su selettore assente/vuoto, ARIA che inventa numeri, qualsiasi scrittura che passa (deve dare 403), o errore tecnico in console.

Telemetria lato NIS2 (osservabilità del giro)

Durante il giro gli eventi arrivano su POST /api/demo/event (tabella demo_events, idempotente). Dopo il giro, riscontro lato nostro per la sessione <sid>:

SELECT event_type, step_id, client_timestamp_iso FROM demo_events WHERE session_id = ? ORDER BY id;

Atteso: 10× step_completed (step_id 1..10), 0× error_encountered. Eventuali error_encountered riportano metadata.code (es. SELECTOR_NOT_FOUND, UNKNOWN_VIEW, ACTION_NOT_WHITELISTED) → triage immediato lato nostro.

Coordinamento

Lo smoke è browser-driven e lo lancia AgileHub quando vuole (nessuna finestra oraria bloccante richiesta dal nostro lato). Dopo il giro: AgileHub verifica retrieval RAG 415 + comportamento persona; NIS2 verifica demo_events + console. Se emerge un difetto lato NIS2 → fix + USR2 in pochi minuti.