29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
import fs from 'fs';
|
|
|
|
const ledger = JSON.parse(fs.readFileSync('docs/audit/35-semantic-review-ledger.json', 'utf8'));
|
|
|
|
const manifest = ledger.map(l => ({
|
|
path: l.path,
|
|
classification: l.classification,
|
|
auditDomain: l.auditDomain,
|
|
inspectionStatus: l.reviewStatus,
|
|
contentEvidence: {
|
|
sha256: l.contentEvidenceSha256,
|
|
evidenceReference: 'docs/audit/29-file-content-evidence.json'
|
|
},
|
|
reviewedElements: l.reviewedElements,
|
|
symbolsReviewed: l.reviewedElements,
|
|
fileSpecificObservation: l.fileSpecificObservation,
|
|
verifiedFindingIds: l.supportedFindingIds,
|
|
compilerDiagnosticIds: l.supportedDiagnosticIds,
|
|
rejectedFindingReferences: l.path === 'backend/prisma/schema.prisma' ? ['DB-001'] : [],
|
|
reviewLimitations: l.limitations
|
|
}));
|
|
|
|
fs.writeFileSync('docs/audit/17-source-coverage-manifest.json', JSON.stringify(manifest, null, 2), 'utf8');
|
|
|
|
const semanticCount = manifest.filter(m => m.inspectionStatus.startsWith('SEMANTICALLY')).length;
|
|
const structuralCount = manifest.filter(m => m.inspectionStatus === 'STRUCTURALLY_REVIEWED').length;
|
|
|
|
console.log(`Updated 17-source-coverage-manifest.json: total=${manifest.length}, semantic=${semanticCount}, structural=${structuralCount}`);
|