UNPKG

adpa-enterprise-framework-automation

Version:

Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe

806 lines 37.6 kB
/** * Standards Compliance & Deviation Analysis Engine * * This is the main engine that orchestrates the analysis of projects against * international standards (BABOK v3, PMBOK 7th Edition, DMBOK 2.0) and * identifies intelligent deviations with reasoning and recommendations. */ import { PMBOKValidator } from '../pmbokValidation/PMBOKValidator.js'; import { ISO15408Validator } from './ISO15408Validator.js'; import { logger } from '../../config/logger.js'; /** * Main Standards Compliance & Deviation Analysis Engine */ export class StandardsComplianceAnalysisEngine { pmbokValidator; iso15408Validator; config; constructor(config) { this.config = config; this.pmbokValidator = new PMBOKValidator('generated-documents'); this.iso15408Validator = new ISO15408Validator('generated-documents'); logger.info('🎯 Standards Compliance Analysis Engine initialized'); } /** * Perform comprehensive standards compliance analysis */ async analyzeProject(request) { const startTime = Date.now(); const analysisId = this.generateAnalysisId(); try { logger.info(`🔍 Starting standards compliance analysis for project: ${request.projectData.projectId}`); // Perform individual standard validations const complianceResults = []; if (this.config.enabledStandards.includes('BABOK_V3')) { const babokResult = await this.validateAgainstBABOK(request.projectData); complianceResults.push(babokResult); } if (this.config.enabledStandards.includes('PMBOK_7')) { const pmbokResult = await this.validateAgainstPMBOK(request.projectData); complianceResults.push(pmbokResult); } if (this.config.enabledStandards.includes('DMBOK_2')) { const dmbokResult = await this.validateAgainstDMBOK(request.projectData); complianceResults.push(dmbokResult); } if (this.config.enabledStandards.includes('ISO_15408')) { const iso15408Result = await this.validateAgainstISO15408(request.projectData); complianceResults.push(iso15408Result); } // Generate comprehensive deviation analysis const deviationAnalysis = await this.generateDeviationAnalysis(complianceResults); // Enhance with project-specific context await this.enhanceWithProjectContext(deviationAnalysis, request.projectData); // Generate executive summary const executiveSummary = await this.generateExecutiveSummary(deviationAnalysis); deviationAnalysis.executiveSummary = executiveSummary; const processingTime = Date.now() - startTime; logger.info(`✅ Standards compliance analysis completed in ${processingTime}ms`); return { analysisId, status: 'COMPLETED', results: deviationAnalysis, processingTime, timestamp: new Date() }; } catch (error) { logger.error('❌ Standards compliance analysis failed:', error); return { analysisId, status: 'FAILED', error: error instanceof Error ? error.message : 'Unknown error', processingTime: Date.now() - startTime, timestamp: new Date() }; } } /** * Validate project against BABOK v3 standards */ async validateAgainstBABOK(projectData) { logger.info('📊 Validating against BABOK v3 standards...'); // Analyze BABOK knowledge areas const knowledgeAreas = await this.analyzeBABOKKnowledgeAreas(projectData); // Assess competencies const competencies = await this.assessBABOKCompetencies(projectData); // Analyze technique usage const techniques = await this.analyzeBABOKTechniques(projectData); // Calculate overall score const overallScore = this.calculateBABOKScore(knowledgeAreas, competencies, techniques); // Determine compliance status const complianceStatus = this.determineComplianceStatus(overallScore); // Generate findings const { criticalIssues, warnings, strengths, recommendations } = await this.generateBABOKFindings(projectData, knowledgeAreas, competencies); return { standard: 'BABOK_V3', overallScore, complianceStatus, assessmentDate: new Date(), assessmentVersion: '1.0.0', criticalIssues, warnings, strengths, recommendations, knowledgeAreas, competencies, techniques }; } /** * Validate project against PMBOK 7th Edition standards */ async validateAgainstPMBOK(projectData) { logger.info('📋 Validating against PMBOK 7th Edition standards...'); // Use existing PMBOK validator and enhance it const pmbokValidation = await this.pmbokValidator.validatePMBOKCompliance(); // Analyze performance domains const performanceDomains = await this.analyzePMBOKPerformanceDomains(projectData); // Assess principle alignment const principles = await this.assessPMBOKPrinciples(projectData); // Evaluate project lifecycle const projectLifecycle = await this.evaluatePMBOKLifecycle(projectData); // Assess value delivery const valueDelivery = await this.assessPMBOKValueDelivery(projectData); // Calculate overall score const overallScore = this.calculatePMBOKScore(performanceDomains, principles, projectLifecycle, valueDelivery); // Determine compliance status const complianceStatus = this.determineComplianceStatus(overallScore); // Generate findings based on existing validation const criticalIssues = pmbokValidation.findings.critical.map(issue => ({ id: this.generateId(), severity: 'HIGH', category: 'PMBOK Compliance', description: issue, requirement: 'PMBOK 7th Edition compliance', currentState: 'Non-compliant', expectedState: 'Compliant', impact: 'MODERATE', recommendation: 'Review and align with PMBOK standards', effort: { hours: 8, cost: 1000, resources: [{ type: 'PERSONNEL', skill: 'Project Manager', quantity: 1, duration: '1 week' }], duration: '1 week', complexity: 'MEDIUM' } })); return { standard: 'PMBOK_7', overallScore, complianceStatus, assessmentDate: new Date(), assessmentVersion: '1.0.0', criticalIssues, warnings: [], strengths: [], recommendations: pmbokValidation.findings.recommendations.map(rec => ({ id: this.generateId(), priority: 'MEDIUM', category: 'PMBOK Compliance', description: rec, rationale: 'PMBOK 7th Edition compliance', implementation: ['Review current practices', 'Implement PMBOK standards', 'Train team'], benefits: ['Improved project management practices'], risks: [], effort: { hours: 4, cost: 500, resources: [{ type: 'PERSONNEL', skill: 'Team', quantity: 1, duration: '2 weeks' }], duration: '2 weeks', complexity: 'LOW' }, timeline: '2 weeks' })), performanceDomains, principles, projectLifecycle, valueDelivery }; } /** * Validate project against DMBOK 2.0 standards */ async validateAgainstDMBOK(projectData) { logger.info('🗄️ Validating against DMBOK 2.0 standards...'); // Analyze data management functions const managementFunctions = await this.analyzeDMBOKFunctions(projectData); // Assess data maturity const dataMaturity = await this.assessDataMaturity(projectData); // Evaluate governance framework const dataGovernanceFramework = await this.evaluateDataGovernance(projectData); // Calculate overall score const overallScore = this.calculateDMBOKScore(managementFunctions, dataMaturity, dataGovernanceFramework); // Determine compliance status const complianceStatus = this.determineComplianceStatus(overallScore); return { standard: 'DMBOK_2', overallScore, complianceStatus, assessmentDate: new Date(), assessmentVersion: '1.0.0', criticalIssues: [], warnings: [], strengths: [], recommendations: [], managementFunctions, dataMaturity, dataGovernanceFramework }; } /** * Validate project against ISO 15408 standards */ async validateAgainstISO15408(projectData) { logger.info('🔒 Validating against ISO 15408 Common Criteria standards...'); try { // Use the ISO 15408 validator const result = await this.iso15408Validator.validateCompliance(projectData); logger.info(`✅ ISO 15408 validation completed. Score: ${result.overallScore}%, Status: ${result.complianceStatus}`); return result; } catch (error) { logger.error('❌ ISO 15408 validation failed:', error); // Return a fallback result return { standard: 'ISO_15408', overallScore: 0, complianceStatus: 'NON_COMPLIANT', assessmentDate: new Date(), assessmentVersion: '1.0.0', criticalIssues: [{ id: 'ISO15408_FATAL_001', severity: 'CRITICAL', category: 'VALIDATION_ERROR', description: 'ISO 15408 validation failed due to system error', requirement: 'ISO 15408', currentState: 'Error state', expectedState: 'Successful validation', impact: 'MAJOR', recommendation: 'Contact system administrator', effort: { hours: 4, cost: 500, resources: [{ type: 'PERSONNEL', skill: 'Admin', quantity: 1, duration: '1 day' }], duration: '1 day', complexity: 'LOW' } }], warnings: [], strengths: [], recommendations: [], evaluationAssuranceLevels: { eal1: { level: 1, achieved: false, score: 0, requirements: [], gaps: ['Validation error'], evidence: [], recommendations: [] }, eal2: { level: 2, achieved: false, score: 0, requirements: [], gaps: ['Validation error'], evidence: [], recommendations: [] }, eal3: { level: 3, achieved: false, score: 0, requirements: [], gaps: ['Validation error'], evidence: [], recommendations: [] }, eal4: { level: 4, achieved: false, score: 0, requirements: [], gaps: ['Validation error'], evidence: [], recommendations: [] }, eal5: { level: 5, achieved: false, score: 0, requirements: [], gaps: ['Validation error'], evidence: [], recommendations: [] }, eal6: { level: 6, achieved: false, score: 0, requirements: [], gaps: ['Validation error'], evidence: [], recommendations: [] }, eal7: { level: 7, achieved: false, score: 0, requirements: [], gaps: ['Validation error'], evidence: [], recommendations: [] } }, securityFunctionalRequirements: [], securityAssuranceRequirements: [], protectionProfiles: [], securityTargets: [], evaluationResults: [], vulnerabilityAssessment: { scope: { components: [], interfaces: [], dataFlows: [], exclusions: [], rationale: 'Error state' }, methodology: [], tools: [], findings: [], riskAnalysis: { overallRisk: 'VERY_HIGH', riskFactors: [], riskMatrix: [], treatmentOptions: [] }, recommendations: [] }, riskAssessment: { scope: { boundaries: [], assets: [], processes: [], interfaces: [], exclusions: [] }, methodology: 'Error state', threatLandscape: { threatActors: [], threatIntelligence: [], emergingThreats: [], threatTrends: [] }, assetInventory: { assets: [], classification: [], dependencies: [], criticality: [] }, riskAnalysis: { risks: [], riskMatrix: { matrix: [], scale: { likelihood: [], impact: [] }, tolerance: { acceptable: [], tolerable: [], unacceptable: [] } }, aggregatedRisk: { overallRisk: 'VERY_HIGH', riskByCategory: { OPERATIONAL: 'HIGH', TECHNICAL: 'MEDIUM', FINANCIAL: 'LOW', REGULATORY: 'VERY_HIGH', STRATEGIC: 'MEDIUM', REPUTATIONAL: 'HIGH', SECURITY: 'VERY_HIGH', PRIVACY: 'HIGH', COMPLIANCE: 'HIGH' }, riskByAsset: {}, riskTrends: [] }, scenarioAnalysis: [] }, riskTreatment: { strategy: { approach: 'Error state', principles: [], objectives: [], constraints: [] }, treatments: [], plan: { phases: [], milestones: [], dependencies: [], resources: [] }, monitoring: { kpis: [], reporting: [], review: { frequency: 'ANNUALLY', participants: [], agenda: [], decisions: [] }, escalation: [] } }, monitoringPlan: { objectives: [], scope: [], metrics: [], indicators: [], thresholds: [], procedures: [] } }, complianceGaps: [] }; } } /** * Generate comprehensive deviation analysis */ async generateDeviationAnalysis(results) { logger.info('🔍 Generating deviation analysis...'); const analysisId = this.generateAnalysisId(); const projectId = 'current-project'; // Would come from context // Identify standard deviations const standardDeviations = await this.identifyStandardDeviations(results); // Identify intelligent deviations const intelligentDeviations = await this.identifyIntelligentDeviations(results); // Analyze cross-standard deviations const crossStandardDeviations = await this.analyzeCrossStandardDeviations(results); // Perform risk assessment const riskAssessment = await this.performRiskAssessment(standardDeviations, intelligentDeviations); // Generate impact analysis const impactAnalysis = await this.generateImpactAnalysis(standardDeviations, intelligentDeviations); // Generate recommendations const recommendations = await this.generateDeviationRecommendations(standardDeviations, intelligentDeviations); // Create compliance matrix const complianceMatrix = await this.createComplianceMatrix(results); // Calculate overall deviation score const overallDeviationScore = this.calculateOverallDeviationScore(standardDeviations, intelligentDeviations); // Determine risk level const riskLevel = this.determineRiskLevel(overallDeviationScore, riskAssessment); return { analysisId, projectId, analysisDate: new Date(), analysisVersion: '1.0.0', overallDeviationScore, riskLevel, standardDeviations, intelligentDeviations, crossStandardDeviations, riskAssessment, impactAnalysis, recommendations, complianceMatrix, executiveSummary: {} // Will be populated later }; } /** * Generate executive summary */ async generateExecutiveSummary(analysis) { logger.info('📊 Generating executive summary...'); const keyFindings = await this.extractKeyFindings(analysis); const nextSteps = await this.generateNextSteps(analysis); return { overallAssessment: { complianceScore: 100 - analysis.overallDeviationScore, deviationScore: analysis.overallDeviationScore, riskLevel: analysis.riskLevel, recommendation: this.getOverallRecommendation(analysis), executiveSummary: this.generateExecutiveText(analysis) }, keyFindings, criticalDeviations: await this.summarizeCriticalDeviations(analysis.standardDeviations), intelligentDeviations: await this.summarizeIntelligentDeviations(analysis.intelligentDeviations), riskProfile: await this.createRiskProfile(analysis.riskAssessment), recommendations: await this.createExecutiveRecommendations(analysis.recommendations), nextSteps, approvalRequired: await this.identifyApprovalRequirements(analysis.intelligentDeviations), projectOverview: { projectName: 'Current Project', industry: 'TECHNOLOGY', complexity: 'MEDIUM', duration: '6 months', budget: '$500,000', teamSize: 10, keyObjectives: ['Standards compliance', 'Risk mitigation'] }, complianceStatus: { overallScore: 100 - analysis.overallDeviationScore, standardScores: [], trend: 'IMPROVING', keyIssues: [], strengths: [] }, riskAssessment: { overallRisk: analysis.riskLevel, keyRisks: [], mitigationStatus: 'In progress', residualRisk: 'LOW' }, timeline: { phases: [], keyMilestones: [], criticalPath: [] }, resources: { totalBudget: 500000, currency: 'USD', keyResources: [], skillGaps: [], externalSupport: [] } }; } // ===== PRIVATE HELPER METHODS ===== generateAnalysisId() { return `ANALYSIS-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; } generateId() { return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; } determineComplianceStatus(score) { if (score >= 95) return 'FULLY_COMPLIANT'; if (score >= 85) return 'MOSTLY_COMPLIANT'; if (score >= 70) return 'PARTIALLY_COMPLIANT'; return 'NON_COMPLIANT'; } async enhanceWithProjectContext(analysis, projectData) { // Add industry-specific considerations analysis.intelligentDeviations = analysis.intelligentDeviations.map(deviation => ({ ...deviation, reasoning: { ...deviation.reasoning, industryConsiderations: this.getIndustryConsiderations(projectData.industry) } })); } getIndustryConsiderations(industry) { const considerations = { FINANCIAL_SERVICES: [ 'Regulatory compliance requirements (Basel III, MiFID II)', 'Risk management focus', 'Audit trail requirements', 'Data privacy and security' ], HEALTHCARE: [ 'HIPAA compliance', 'Patient safety requirements', 'FDA regulations', 'Clinical trial standards' ], GOVERNMENT: [ 'Public accountability', 'Transparency requirements', 'Budget constraints', 'Citizen service focus' ] }; return considerations[industry] || ['Standard industry practices']; } getOverallRecommendation(analysis) { if (analysis.riskLevel === 'VERY_LOW' || analysis.riskLevel === 'LOW') { return 'PROCEED'; } if (analysis.riskLevel === 'MEDIUM') { return 'PROCEED_WITH_CONDITIONS'; } if (analysis.riskLevel === 'HIGH') { return 'REQUIRES_CHANGES'; } return 'DO_NOT_PROCEED'; } generateExecutiveText(analysis) { const complianceScore = 100 - analysis.overallDeviationScore; const riskLevel = analysis.riskLevel.toLowerCase().replace('_', ' '); return `Project demonstrates ${complianceScore}% compliance with international standards. ` + `${analysis.intelligentDeviations.length} intelligent deviations identified with ${riskLevel} risk level. ` + `Recommended approach balances standards compliance with project-specific optimizations.`; } // Placeholder implementations for analysis methods async analyzeBABOKKnowledgeAreas(projectData) { return { businessAnalysisPlanning: { area: 'Business Analysis Planning', score: 85, maxScore: 100, strengths: [], weaknesses: [], recommendations: [] }, elicitation: { area: 'Elicitation', score: 90, maxScore: 100, strengths: [], weaknesses: [], recommendations: [] }, requirementsLifecycle: { area: 'Requirements Lifecycle', score: 88, maxScore: 100, strengths: [], weaknesses: [], recommendations: [] }, strategyAnalysis: { area: 'Strategy Analysis', score: 82, maxScore: 100, strengths: [], weaknesses: [], recommendations: [] }, requirementsAnalysis: { area: 'Requirements Analysis', score: 87, maxScore: 100, strengths: [], weaknesses: [], recommendations: [] }, solutionEvaluation: { area: 'Solution Evaluation', score: 84, maxScore: 100, strengths: [], weaknesses: [], recommendations: [] } }; } async assessBABOKCompetencies(projectData) { return []; } async analyzeBABOKTechniques(projectData) { return []; } calculateBABOKScore(knowledgeAreas, competencies, techniques) { const areaScores = Object.values(knowledgeAreas).map((area) => area.score); return areaScores.reduce((sum, score) => sum + score, 0) / areaScores.length; } async generateBABOKFindings(projectData, knowledgeAreas, competencies) { return { criticalIssues: [], warnings: [], strengths: [], recommendations: [] }; } async analyzePMBOKPerformanceDomains(projectData) { return { stakeholders: { domain: 'Stakeholders', score: 85, maxScore: 100, maturityLevel: 'DEFINED', keyIndicators: [], improvementAreas: [] }, team: { domain: 'Team', score: 88, maxScore: 100, maturityLevel: 'DEFINED', keyIndicators: [], improvementAreas: [] }, developmentApproach: { domain: 'Development Approach', score: 82, maxScore: 100, maturityLevel: 'MANAGED', keyIndicators: [], improvementAreas: [] }, planning: { domain: 'Planning', score: 90, maxScore: 100, maturityLevel: 'DEFINED', keyIndicators: [], improvementAreas: [] }, projectWork: { domain: 'Project Work', score: 87, maxScore: 100, maturityLevel: 'DEFINED', keyIndicators: [], improvementAreas: [] }, delivery: { domain: 'Delivery', score: 85, maxScore: 100, maturityLevel: 'DEFINED', keyIndicators: [], improvementAreas: [] }, measurement: { domain: 'Measurement', score: 83, maxScore: 100, maturityLevel: 'MANAGED', keyIndicators: [], improvementAreas: [] }, uncertainty: { domain: 'Uncertainty', score: 80, maxScore: 100, maturityLevel: 'MANAGED', keyIndicators: [], improvementAreas: [] } }; } async assessPMBOKPrinciples(projectData) { return []; } async evaluatePMBOKLifecycle(projectData) { return {}; } async assessPMBOKValueDelivery(projectData) { return {}; } calculatePMBOKScore(performanceDomains, principles, lifecycle, valueDelivery) { const domainScores = Object.values(performanceDomains).map((domain) => domain.score); return domainScores.reduce((sum, score) => sum + score, 0) / domainScores.length; } async analyzeDMBOKFunctions(projectData) { return { dataGovernance: { score: 75, findings: [] }, dataArchitecture: { score: 80, findings: [] }, dataModelingDesign: { score: 78, findings: [] }, dataStorageOperations: { score: 82, findings: [] }, dataSecurity: { score: 85, findings: [] }, dataIntegration: { score: 77, findings: [] }, documentContentManagement: { score: 73, findings: [] }, referenceDataManagement: { score: 79, findings: [] }, dataWarehousing: { score: 81, findings: [] }, metadata: { score: 76, findings: [] }, dataQuality: { score: 83, findings: [] } }; } async assessDataMaturity(projectData) { return 'MANAGED'; } async evaluateDataGovernance(projectData) { return {}; } calculateDMBOKScore(functions, maturity, governance) { const functionScores = Object.values(functions).map((func) => func.score); return functionScores.reduce((sum, score) => sum + score, 0) / functionScores.length; } // Additional placeholder methods... async identifyStandardDeviations(results) { return []; } async identifyIntelligentDeviations(results) { // Return simplified example for now - full implementation would analyze actual deviations return [ { deviationId: 'INT-DEV-001', deviationType: 'METHODOLOGY', category: 'EFFICIENCY_IMPROVEMENT', standardApproach: { approach: 'Traditional waterfall requirements gathering per BABOK 6.1', rationale: 'Sequential approach for regulated industry', benefits: ['Comprehensive documentation', 'Formal sign-off process', 'Audit trail'], requirements: ['Formal documentation', 'Sequential phases'], assumptions: ['Stable requirements', 'Predictable environment'] }, projectApproach: { approach: 'Hybrid agile-waterfall requirements elicitation with parallel discovery', rationale: 'Custom methodology balances agility with regulatory compliance', benefits: ['Faster delivery', 'Stakeholder engagement', 'Living documentation'], implementation: ['Iterative workshops', 'Continuous validation', 'Parallel documentation'], constraints: ['Regulatory requirements', 'Audit trail needs'] }, reasoning: { primary: 'Complex regulatory environment requires iterative discovery', supporting: ['Regulatory requirements change frequently', 'Stakeholders prefer interactive sessions'], evidence: ['Historical project data', 'Stakeholder feedback'], alternatives: [], decisionCriteria: [], primaryReason: 'Complex regulatory environment requires iterative discovery with formal documentation', supportingReasons: ['Regulatory requirements change frequently', 'Stakeholders prefer interactive sessions'], contextualFactors: [ { factor: 'Regulatory Complexity', impact: 'HIGH', weight: 0.8 }, { factor: 'Stakeholder Availability', impact: 'MODERATE', weight: 0.6 } ], industryConsiderations: ['Financial services regulatory requirements'], regulatoryDrivers: ['Basel III compliance'], businessDrivers: ['Faster time to market'], technicalDrivers: ['Agile development practices'] }, benefits: [ { benefit: '40% faster requirements discovery', description: '40% faster requirements discovery', benefitType: 'TIME_SAVINGS', category: 'TIME_SAVINGS', quantified: true, quantifiedValue: { amount: 2, unit: 'weeks', confidence: 'HIGH', source: 'Historical project data' }, timeframe: 'Immediate', timeline: 'Immediate', stakeholders: ['Project Team', 'Business Stakeholders'], evidence: [{ evidenceType: 'QUANTITATIVE', source: 'Previous project metrics', description: 'Average discovery time reduced', reliability: 'HIGH' }] } ], risks: [ { risk: 'Potential documentation gaps for audit purposes', riskType: 'COMPLIANCE', category: 'COMPLIANCE', probability: 'LOW', impact: 'MODERATE', riskLevel: 'MEDIUM', severity: 'MEDIUM', timeframe: 'During audit period', indicators: ['Missing documentation', 'Audit findings'], affectedStakeholders: ['Compliance Team', 'External Auditors'] } ], mitigations: [ { risk: 'COMP-001', strategy: 'MITIGATE', actions: ['Create audit-ready documentation', 'Implement template library'], owner: 'Business Analyst', timeline: '2 weeks', cost: 5000, effectiveness: 90, monitoring: ['Documentation coverage', 'Template usage'] } ], evidenceScore: 92, confidenceLevel: 'HIGH', businessJustification: { strategicAlignment: 'Supports digital transformation initiative', businessValue: 'Faster delivery with maintained quality', objectives: ['Improve efficiency', 'Maintain compliance'], benefits: [], costs: [], roi: 400, paybackPeriod: '3 months', npv: 20000, sensitivity: [], timeline: { phases: ['Discovery', 'Implementation', 'Validation'], milestones: [new Date('2025-07-15'), new Date('2025-08-01'), new Date('2025-10-01')], dependencies: ['Stakeholder availability', 'Technical infrastructure'] } }, technicalJustification: { technicalSuperiority: 'Better integration with agile development practices', performanceImprovement: 'Faster feedback loops', requirements: [], constraints: [], dependencies: [], alternatives: [], feasibility: { technical: 'HIGH', economic: 'HIGH', operational: 'HIGH', schedule: 'HIGH', overall: 'HIGH', risks: [], assumptions: [] } }, recommendation: 'STRONGLY_APPROVE', approvalStatus: 'PENDING', approver: undefined, approvalDate: undefined, approvalComments: undefined } ]; } async analyzeCrossStandardDeviations(results) { return []; } async performRiskAssessment(standardDeviations, intelligentDeviations) { return { overallRiskLevel: 'LOW', riskFactors: [], mitigationStrategies: [] }; } async generateImpactAnalysis(standardDeviations, intelligentDeviations) { return { businessImpact: 'POSITIVE', technicalImpact: 'NEUTRAL', stakeholderImpact: 'POSITIVE' }; } async generateDeviationRecommendations(standardDeviations, intelligentDeviations) { return []; } async createComplianceMatrix(results) { return { standards: results.map(result => ({ standard: result.standard, score: result.overallScore, status: result.complianceStatus, criticalIssues: result.criticalIssues.length, deviations: 0, strengths: result.strengths.length })), overallScore: results.reduce((sum, result) => sum + result.overallScore, 0) / results.length, complianceLevel: 'GOOD', riskRating: 'LOW', auditReadiness: 'MOSTLY_READY' }; } calculateOverallDeviationScore(standardDeviations, intelligentDeviations) { return (standardDeviations.length * 10) + (intelligentDeviations.length * 5); } determineRiskLevel(deviationScore, riskAssessment) { if (deviationScore < 10) return 'VERY_LOW'; if (deviationScore < 25) return 'LOW'; if (deviationScore < 50) return 'MEDIUM'; if (deviationScore < 75) return 'HIGH'; return 'VERY_HIGH'; } async extractKeyFindings(analysis) { return [ { findingId: 'KF-001', category: 'Compliance', description: 'Strong overall standards alignment with strategic deviations', impact: 'Positive', confidence: 'HIGH' } ]; } async summarizeCriticalDeviations(deviations) { return deviations.filter(d => d.severity === 'CRITICAL').map(d => ({ deviationId: d.deviationId, summary: d.gap, impact: d.impact, recommendation: d.recommendation })); } async summarizeIntelligentDeviations(deviations) { return deviations.map(d => ({ deviationId: d.deviationId, category: d.category, benefit: d.benefits[0]?.description || 'No benefits identified', recommendation: d.recommendation, evidenceScore: d.evidenceScore })); } async createRiskProfile(riskAssessment) { return { overallRisk: 'LOW', topRisks: [], mitigationCoverage: '85%' }; } async createExecutiveRecommendations(recommendations) { return [ { recommendationId: 'EXEC-001', priority: 'HIGH', description: 'Proceed with current approach while monitoring key metrics', rationale: 'Strong evidence supports intelligent deviations', expectedOutcome: 'Successful project delivery with improved efficiency' } ]; } async generateNextSteps(analysis) { return [ { stepId: 'NS-001', action: 'Obtain formal approval for intelligent deviations', owner: 'Project Manager', timeline: '1 week', dependencies: [] } ]; } async identifyApprovalRequirements(intelligentDeviations) { return intelligentDeviations.filter(d => d.approvalStatus === 'PENDING').map(d => ({ deviationId: d.deviationId, approvalLevel: 'Executive', approver: 'Program Director', urgency: 'Medium', documentation: 'Business case and risk assessment' })); } } //# sourceMappingURL=StandardsComplianceEngine.js.map