Files
nis2-agile/docs/PROGETTO_REVISIONE_NIS2.md
T
DevEnv nis2-agileandClaude Opus 4.8 06c94b3c05 [REVISIONE] Progetto revisione conformità+UI + 2 agenti esperti + correzioni R3 (audit NIS2/ISO)
Progetto di revisione unificato (docs/PROGETTO_REVISIONE_NIS2.md) che fonde:
- docs/PRINCIPI_AI_E_CONFORMITA_NORMATIVA.md (cyber + AI Act/GDPR/L.132 + principi AI)
- docs/VERIFICA_GAP_UI_AGID_BOOTSTRAP_ITALIA.md (gap UI vs AGID/Bootstrap Italia)
Agenti esperti: .claude/agents/nis2-expert.md + iso-27001-expert.md (read-only/advisory).

Audit R1 (NIS2) + R2 (ISO SGSI) = conformi, riserve minori. Correzioni R3 applicate
(lint + login reale OK, app su container TLS):
- IncidentController: final_report_due +30gg fissi -> +1 mese calendario, ancorato alla
  notifica reale in sendNotification (Art.23.4 lett.d).
- AIService prompt "report 30d" -> "1 mese dalla notifica 72h".
- help.js: GV.SC Allegato 2 -> Allegati 1 e 2 (Art.21.2(d)).
- nis2_sources.php: esplicitato Allegato 3=importanti / 4=essenziali.
- IsmsModelController export: nota PII.* = codifica interna (non numeri ufficiali 27018).
A4 (label whistleblowing "Art.32") DEFERITO: cita Art.32 D.Lgs.138/2024, da verificare sul testo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 09:54:14 +02:00

11 KiB

Progetto di Revisione NIS2 Agile — Conformità (normativa + AI) & UI (AGID/Bootstrap Italia)

Cosa unifica: questo è il documento master che fonde in un unico progetto di revisione i due lavori precedenti:

A supporto: due agenti esperti dedicati (.claude/agents/): nis2-expert e iso-27001-expert, che validano i contenuti rispetto alle fonti. Regola del progetto (vincola anche l'AI): fonti certe — ogni affermazione cita la fonte; ciò che non è verificato è [da verificare]; nessun riferimento inventato. Vedi Asse A. Stato: v1 · 2026-06-11 · Tipo: progetto di revisione (audit → correzioni → verifica).


0. Obiettivo e perimetro

Portare NIS2 Agile a un livello di revisione verificabile su due assi che oggi hanno gap:

  • A. Conformità: che ogni contenuto normativo/AI rispetti il quadro vincolante (NIS2/D.Lgs.138/Determine ACN + AI Act/GDPR) e i principi etici AI, senza invenzioni.
  • B. UI: che l'interfaccia si allinei allo standard AGID/Bootstrap Italia (scelto dall'utente, come la Console V2 di AgileHub).

Due agenti esperti fanno da revisori specializzati e ripetibili (ogni volta che si tocca un contenuto, li si interpella).


1. Gli agenti di supporto (creati in .claude/agents/)

Agente Dominio Quando invocarlo
nis2-expert Direttiva (UE) 2022/2555, D.Lgs. 138/2024, Determine ACN 164179/2025 + 333017/2025, Allegati, tassonomia incidenti IS-1..4, Art.20/21/23 Validare prompt AI, help, classificazioni, scadenze, mapping NIS2; controllo fonti certe; gap di conformità.
iso-27001-expert ISO/IEC 27001:2022, 27002:2022, 27017:2015, 27018:2019 Validare il modulo SGSI (111 controlli, SoA, mig. 037/038), mapping NIS2↔ISO, e che ISO sia presentata come best practice, non obbligo.

Come si usano (Agent tool / Task):

Agent(subagent_type="nis2-expert", prompt="Valida che la tassonomia Allegati 3/4 in nis2_sources.php e AIService non sia invertita; riporta file:riga + fonte.")
Agent(subagent_type="iso-27001-expert", prompt="Verifica i 111 controlli del modulo SGSI: codifica Annex A 2022 (A.5-8) + CLD.* 27017 + extra 27018; segnala codici inventati o residui 27001:2013.")

Entrambi sono read-only/advisory (Read/Grep/Glob/Bash/WebFetch): producono rilievi affermazione → verdetto → fonte → correzione, non applicano modifiche. Le correzioni le decide/applica l'umano o l'assistente principale.


2. Asse A — Conformità normativa & principi AI (sintesi)

Quadro vincolante (dettaglio + tabelle in PRINCIPI_AI_E_CONFORMITA_NORMATIVA.md):

  • Cyber: NIS2 (Dir. 2022/2555), CER (2022/2557), D.Lgs. 138/2024, Determine ACN 164179/2025 + 333017/2025. Best practice: ISO 27001/02/17/18, NIST CSF 2.0.
  • AI: AI Act (Reg. UE 2024/1689) — Art. 50 trasparenza (enforce 2 ago 2026), Art. 12 logging; L. 132/2025 (Art. 14 tracciabilità [da verificare]); GDPR (2016/679).
  • Standard Agile: ai-usage-audit v1.0, persona-conversational-rules v2.0 (Codice Etico AI, 9 principi), STANDARD_AI_PRODOTTO, principio fonti certe.

Gap aperti (da chiudere nella revisione):

  • AI Act / GDPR / L.132/2025 NON sono in nis2_sources.php → l'AI li cita "a memoria". Aggiungerli al registro + ingest KB.
  • ai-usage-audit non ancora adottato (log AI tamper-resistant, AI Act Art.12).
  • Disclosure AI Act Art. 50 esplicita nel widget ARIA ("stai parlando con un'AI") + etichettatura output AI. Deadline 2 ago 2026.
  • GDPR Art. 17 (oblio) su conversazioni/KB ORG.
  • ⚠️ Possibile inversione Allegati 3/4 in nis2_sources.php (essenziali/importanti) — nis2-expert deve verificarla (la mappa certa è All.3=importanti, All.4=essenziali).

3. Asse B — UI / AGID-Bootstrap Italia (sintesi)

Decisione utente: NIS2 → standard AGID/Bootstrap Italia (Blu Italia #0066CC, Titillium Web, WCAG 2.1 AA, radius 4px), come AgileHub Console V2. NON lo standard "AGI dark" del piano MIGRATION_UI_V2.md (in conflitto → da archiviare).

Gap (dettaglio in VERIFICA_GAP_UI...): palette Material #1a73e8 → Blu Italia #0066CC; system font → Titillium; ombre morbide → flat 4px; WCAG AA non verificata; ~20 pagine con <style> inline + colori hardcoded.

Strategia: Opzione A (allineamento a livello di token in style.css, riusando i token AgileHub V2) → poi eventuale Opzione B (libreria bootstrap-italia) sulle pagine pubbliche.


4. Piano di revisione unificato

Fase Asse Attività Strumento
R0 — Costituire i 2 agenti (FATTO) + questo master —
R1 A nis2-expert: audit contenuti normativi (prompt AI, help, nis2_sources.php, classificazioni) → lista rilievi con fonte Agent nis2-expert
R2 A iso-27001-expert: audit modulo SGSI (111 controlli, SoA, mapping) → rilievi Agent iso-27001-expert
R3 A Applicare correzioni normative (inversioni, citazioni mancanti) + aggiungere AI Act/GDPR/L.132 al registro fonti + ingest KB assistente + utente
R4 A Disclosure AI Act Art.50 (widget ARIA) + adozione ai-usage-audit assistente
R5 B Adeguamento UI AGID (token → font → palette → forme → bonifica inline → WCAG) in worktree isolato assistente
R6 A+B Verifica finale: rilievi chiusi (ri-pass agenti), WCAG AA misurata, login/dashboard reali OK, commit+push assistente + agenti

Disciplina trasversale (lezioni del progetto): verificare sul path reale (login fpm, non CLI/api-status/"a memoria"); zero modifiche backend per la UI; commit incrementali + push (host helper vault); fonti certe sempre citate.


5. Decisioni aperte (consolidate)

  1. UI: Opzione A o B? Da quali pagine partire (pubbliche + 1 dashboard)? Archiviare MIGRATION_UI_V2.md?
  2. Token AGID: prenderli dall'implementazione AgileHub V2 (globals.css) per identità di suite? Serve path/repo.
  3. Conformità: confermi di aggiungere AI Act/GDPR/L.132 a nis2_sources.php + ingerirli? Hai i PDF ufficiali per docs/nis2/?
  4. Esecuzione agenti: vuoi che lanci subito R1+R2 (i due audit, read-only) così partiamo dai rilievi reali?

5bis. Esiti audit R1 + R2 (eseguiti 2026-06-11, read-only)

R1 — nis2-expert (conformità normativa) → CONFORME con riserve minori, 0 errori critici

Mappe storicamente a rischio inversione corrette ovunque (Allegati 1/2 importanti/essenziali; Allegati 3/4 importanti/essenziali; IS-4 escluso per importanti; 24/72h corrette; nessuna fonte inventata).

Sev File:riga Rilievo Correzione
🟠 IncidentController.php:~97,225 final_report_due = detected+72h+**30 giorni fissi** invece di +1 mese dalla notifica reale (Art.23.4.d) → fino a 1 gg di anticipo + base ancorata al detected strtotime('+1 month', notification_sent_at ?? detected+72h)
🟠 AIService.php:~301 System prompt "report 30d" può indurre 30gg dall'incidente (contraddice riga 257 corretta) "relazione finale entro 1 mese dalla notifica 72h"
🟠 nis2_sources.php:52 Allegati 3/4 non esplicitati nel registro (mappa solo nel codice consumer) esplicitare "All.3 importanti / All.4 essenziali"
🟠 help.js:432 Misure GV.SC attribuite al solo Allegato 2; esistono in entrambi "Allegati 1 e 2, Art.21.2(d)"
🟠 nis2_sources.php:60 Determina 333017 data "settembre 2025" senza giorno confermare giorno o [da verificare]
🟠 CLAUDE.md/naming Whistleblowing etichettato "Art.32 NIS2" (legacy errato; Art.32=vigilanza). help.js già corretto (D.Lgs.24/2023) allineare la dicitura

R2 — iso-27001-expert (modulo SGSI) → CONFORME e ben strutturato

Conteggio verificato: 93 (27001:2022 Annex A: A.5=37/A.6=8/A.7=14/A.8=34) + 7 (CLD. 27017) + 11 (PII. indice interno 27018) = 111 ✓**. Nessun codice inventato, nessun residuo 27001:2013. Mapping NIS2↔Annex A (42 codici) validi e pertinenti. SoA derivata in modo prudente (INSERT IGNORE, derived_from_nis2, "da confermare"). ISO = best practice/NIS2 = obbligo dichiarato in modo esemplare in config/AI/UI/export.

Sev File:riga Rilievo Correzione
🟢-bassa 038…sql:152-163 + UI export PII.1..11 è codifica indice interna (dichiarata nel SQL), non i numeri ufficiali ISO 27018 aggiungere la nota anche in UI SoA/export
INFO 038…sql:142-148 Numerazione puntuale CLD.* marcare [da verificare sul testo ufficiale 27017] (aree corrette/complete)

Verdetto sintetico

Nessun errore normativo bloccante. Il rilievo più sostanziale è il calcolo final_report_due (30 giorni fissi → 1 mese dalla notifica reale). Il resto sono ambiguità/citazioni da blindare e una nota UI sui codici PII interni.

R3 — Correzioni applicate (2026-06-11, verificate: lint + login reale)

  • ✅ B IncidentController: final_report_due → +1 mese di calendario, provvisorio alla creazione (notifica_due+1 mese) e ricalcolato sulla notifica reale in sendNotification (Art.23.4 lett.d). Test: notifica 02-03 → finale 03-03.
  • ✅ A1 AIService prompt: "report 30d" → "relazione finale entro 1 mese dalla notifica 72h".
  • ✅ A2 help.js: GV.SC "Allegato 2" → "Allegati 1 e 2 (Art.21.2(d))".
  • ✅ A3 nis2_sources.php: esplicitato Allegato 3 = importanti / Allegato 4 = essenziali.
  • ✅ A5 IsmsModelController export: nota che PII.* è codifica interna (≠ numeri ufficiali ISO 27018).
  • ⛔ A4 DEFERITO (fonti certe): la label "Art.32" del modulo whistleblowing cita Art.32 del D.Lgs. 138/2024 (il decreto), non la Direttiva — la numerazione del decreto è diversa e non ho il testo per confermare. Da verificare con nis2-expert + PDF D.Lgs. 138/2024 prima di toccarla. (Possibile incoerenza interna: il controller cita 138/2024 Art.32, l'help cita D.Lgs. 24/2023.)

6. Riferimenti

  • Asse A (dettaglio): docs/PRINCIPI_AI_E_CONFORMITA_NORMATIVA.md
  • Asse B (dettaglio): docs/VERIFICA_GAP_UI_AGID_BOOTSTRAP_ITALIA.md
  • Agenti: .claude/agents/nis2-expert.md, .claude/agents/iso-27001-expert.md
  • Fonti certe: application/config/nis2_sources.php · Modulo SGSI: memoria project_isms_module (mig. 037/038)
  • Standard suite: agile-services/docs/ (STANDARD_AI_USAGE_AUDIT, persona-conversational-rules, AGID V2)