[FIX] Gap Analysis ACN: bug da review avversariale (4 agenti)
#1 CRITICO aiAnalyze: askWithRag ritorna ['answer','sources','rag_used'], non una stringa. Ora estrae 'answer' (ai_summary) e salva 'sources' in ai_recommendations. Prima salvava il JSON intero in ai_summary. #2 ALTO corpus RAG: acn_requirements.json aveva 188/203 testi TRONCATI alla prima riga PDF (es. GV.PO-01#1: 84 char invece di 838). Rigenerato dai testi INTEGRALI di acn_measures.json (87+116, zero troncamenti). Ri-ingest Qdrant. #3 MEDIO catalog(): org non classificata dava entity_level=null + warning PHP $totals[null] + TypeError frontend. Ora 422 ENTITY_LEVEL_REQUIRED come create(). #4 MEDIO guida cap-5 GV.RR-04: "figure chiave dell'organigramma" era errato e auto-contraddittorio -> "personale autorizzato + amministratori di sistema, valutazione esperienza/capacita/affidabilita" (allineato testo ACN). #5 BASSI: openAcn try/catch (no unhandled rejection su Riprendi); badge importante/essenziale IT/EN; overall_score=null (non 0.0) se tutti N/A. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
09f51795c1
commit
d6924a30c1
+15
-11
@@ -158,8 +158,8 @@
|
||||
const cat = await api.acnCatalog();
|
||||
ACN.level = cat.entity_level;
|
||||
const lvlTxt = cat.entity_level === 'essential'
|
||||
? '<span class="acn-level-badge acn-level-essential">Soggetto ESSENZIALE</span>'
|
||||
: '<span class="acn-level-badge acn-level-important">Soggetto IMPORTANTE</span>';
|
||||
? '<span class="acn-level-badge acn-level-essential">'+(lang()==='en'?'ESSENTIAL entity':'Soggetto ESSENZIALE')+'</span>'
|
||||
: '<span class="acn-level-badge acn-level-important">'+(lang()==='en'?'IMPORTANT entity':'Soggetto IMPORTANTE')+'</span>';
|
||||
el('acn-level-info').innerHTML = lvlTxt +
|
||||
'<p class="text-muted" style="margin-top:10px;">' +
|
||||
(lang()==='en'?'Applicable scope: ':'Perimetro applicabile: ') +
|
||||
@@ -228,14 +228,18 @@
|
||||
}
|
||||
|
||||
async function openAcn(id, status){
|
||||
ACN.id = id;
|
||||
const res = await api.acnRequirements(id);
|
||||
ACN.level = res.assessment.entity_level;
|
||||
if (res.assessment.status === 'completed'){
|
||||
await showResults(id);
|
||||
return;
|
||||
try {
|
||||
ACN.id = id;
|
||||
const res = await api.acnRequirements(id);
|
||||
ACN.level = res.assessment.entity_level;
|
||||
if (res.assessment.status === 'completed'){
|
||||
await showResults(id);
|
||||
return;
|
||||
}
|
||||
renderWizard(res);
|
||||
} catch(e){
|
||||
alert((e && e.message) || (lang()==='en'?'Could not open the assessment.':'Impossibile aprire l\'assessment.'));
|
||||
}
|
||||
renderWizard(res);
|
||||
}
|
||||
|
||||
function renderWizard(res){
|
||||
@@ -245,8 +249,8 @@
|
||||
el('acn-wizard').style.display='block';
|
||||
el('btn-ai-analyze').style.display='none';
|
||||
el('acn-wizard-level').innerHTML = ACN.level==='essential'
|
||||
? '<span class="acn-level-badge acn-level-essential">ESSENZIALE</span>'
|
||||
: '<span class="acn-level-badge acn-level-important">IMPORTANTE</span>';
|
||||
? '<span class="acn-level-badge acn-level-essential">'+(lang()==='en'?'ESSENTIAL':'ESSENZIALE')+'</span>'
|
||||
: '<span class="acn-level-badge acn-level-important">'+(lang()==='en'?'IMPORTANT':'IMPORTANTE')+'</span>';
|
||||
|
||||
ACN.answers = {}; ACN.total = 0;
|
||||
let html = '';
|
||||
|
||||
+4
-3
@@ -458,9 +458,10 @@
|
||||
</ul>
|
||||
<div class="example-box">
|
||||
<strong>Esempio (requisiti di governance).</strong> <code>GV.RR-04</code> richiede che la cybersicurezza
|
||||
sia integrata nella gestione delle risorse umane: chi accede ai sistemi (utenti e amministratori) deve
|
||||
avere <strong>competenze e affidabilità adeguate al ruolo</strong>, valutate e documentate — è il
|
||||
"controllo di adeguatezza al ruolo" delle figure chiave dell'organigramma.
|
||||
sia integrata nella gestione delle risorse umane: il <strong>personale autorizzato ad accedere</strong>
|
||||
ai sistemi rilevanti e gli <strong>amministratori di sistema</strong> devono essere individuati previa
|
||||
valutazione di <strong>esperienza, capacità e affidabilità</strong> (non necessariamente una certificazione),
|
||||
e tale valutazione va documentata.
|
||||
<code>GV.PO-01</code> richiede una <strong>policy di gestione del rischio cyber</strong> formalizzata,
|
||||
comunicata e applicata.
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user