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}`);