mAi Advisor™ - Intelligent Guidance System

"Not just findings—Intelligent guidance for every role."

Introduction

What is mAi Advisor™?

mAi Advisor™ is an intelligent guidance system that automatically transforms HTTP audit findings into actionable, role-specific recommendations. Rather than providing generic security reports, the advisor generates tailored guidance for six different audiences within your organization.

Why mAi Advisor™ Exists

Traditional audit reports provide excellent data about security issues but lack actionable guidance tailored to specific roles.

Traditional ReportWith mAi Advisor™
Finding: "Missing HSTS header"
Severity: High
Impact: Users vulnerable to protocol downgrade attacks
What now? → Everyone figures it out on their own
Developer: Gets Spring Boot code example
DevOps: Gets Nginx configuration
QA: Gets test cases to verify
Security: Gets threat analysis
PM: Gets sprint planning estimates
Executive: Gets risk summary

When to Use mAi Advisor™

Architecture Overview

mAi Advisor™ consists of 7 core components working together to deliver intelligent guidance.

Core Components

ComponentPurpose
FW_Advisor.javaStatic facade API for easy integration
FW_AdvisorEngine.javaCore processing engine
FW_AdvisorTemplateLoader.javaJSON template management
FW_AdvisorAudience.javaAudience taxonomy enumeration
FW_AdvisorRecommendation.javaRecommendation data model
FW_AdvisorTemplate.javaTemplate data structure
FW_AdvisorFinding.javaFinding classification model

Component Relationships

graph TB
    A[FW_Advisor
Static Facade] --> B[FW_AdvisorEngine
Core Engine] B --> C[FW_AdvisorTemplateLoader
Template Manager] C --> D[JSON Templates
16+ templates] B --> E[FW_AdvisorAudience
6 audiences] B --> F[FW_AdvisorRecommendation
Output model] I[FW_HttpReporter] --> B I --> E style A fill:#4a90d9 style B fill:#4a90d9 style C fill:#50c878 style D fill:#50c878 style E fill:#f5a623 style I fill:#9b59b6

JSON Template System

Templates are stored in src/test/java/framework/advisor/templates/ organized by category:

templates/
├── security/         (8 templates)
│   ├── hsts-missing.json
│   ├── csp-missing.json
│   ├── ssl-expired.json
│   └── ...
├── performance/      (3 templates)
├── compliance/       (2 templates)
└── infrastructure/   (3 templates)

Two-Tier Recommendation Model

mAi Advisor™ uses a two-tier system to deliver appropriate content to each audience.

TierAudienceContent
Tier 1: UNDERSTANDING All Audiences What's wrong, why it matters, impact, risk assessment
Tier 2: ACTION Implementers Only Step-by-step instructions, code examples, configurations, testing procedures

Implementers vs Coordinators

Role TypeAudiencesReceives
ImplementersDeveloper, DevOps, QAUnderstanding + Action tiers
CoordinatorsSecurity, PM, ExecutiveUnderstanding tier only

Six Audience Types

AudienceRoleFocusAction Tier
DEVELOPERSoftware EngineerCode examples, testing procedures✅ Yes
OPS_INFRASTRUCTUREDevOps EngineerServer configs, deployment steps✅ Yes
QA_TESTERQA EngineerTest cases, validation procedures✅ Yes
SECURITY_ENGINEERSecurity SpecialistThreat analysis, compliance❌ No
PROJECT_MANAGERProject CoordinatorEffort estimates, sprint planning❌ No
EXECUTIVEBusiness LeaderRisk assessment, cost estimates❌ No

Using mAi Advisor™

Automatic Integration (Recommended)

// HTTP audit automatically triggers advisor
@Test
@Tag("audit")
@DisplayName("TC - Audit - HttpReview - Production")
public void tc_audit_httpreview_production() {
    FW_CustomAssertJU.autoPass(
        FW_AuditManager.INSTANCE.getAuditHttpReview()
            .runAuditHttpReview("https://api.production.com", true)
    );
    // Reports automatically include mAi Advisor™ recommendations
}

Direct API Usage

// Get recommendations for specific audience
List<FW_AdvisorRecommendation> recommendations = FW_Advisor
    .getRecommendations(httpTransaction, FW_AdvisorAudience.DEVELOPER);

// Get recommendations for all audiences
Map<FW_AdvisorAudience, List<FW_AdvisorRecommendation>> allRecs = FW_Advisor
    .getRecommendationsForAllAudiences(httpTransaction);

// Get executive summary
String summary = FW_Advisor.getExecutiveSummary(httpTransaction);

Configuring Report Audience NEW v2.2.0

FW_Http http = FW_AuditManager.INSTANCE.performHttpAudit(url, false);
FW_HttpReporter reporter = new FW_HttpReporter();

// Configure for security team
reporter.setTargetAudience(FW_AdvisorAudience.SECURITY_ENGINEER);
reporter.setReportDepth(ReportDepth.STANDARD);
String securityReport = reporter.generateReport(http);

// Configure for executive briefing
reporter.setTargetAudience(FW_AdvisorAudience.EXECUTIVE);
reporter.setReportDepth(ReportDepth.EXECUTIVE);
String execReport = reporter.generateReport(http);

Best Practices

Audience Selection Guide

PurposeRecommended AudienceDepth Level
Daily development workDEVELOPERSTANDARD
Code reviewDEVELOPERCOMPREHENSIVE
Security auditSECURITY_ENGINEERSTANDARD
Executive briefingEXECUTIVEEXECUTIVE
Sprint planningPROJECT_MANAGERSTANDARD
Deployment guideOPS_INFRASTRUCTURESTANDARD
Test planningQA_TESTERSTANDARD

Best Practices by Role

Troubleshooting

⚠️ Templates Not Loading

Verify template path: src/test/java/framework/advisor/templates/. Check file naming: [finding-type].json. Validate JSON syntax.

⚠️ Recommendations Not Generating

Verify advisorEnabled=true in properties. Check audit findings detected issues. Review logs for template errors.

ℹ️ "0 Recommendations" Appearing

This is often CORRECT behavior! Coordinator audiences (SECURITY, PM, EXECUTIVE) don't get action-tier recommendations. Templates target implementers (DEVELOPER, OPS, QA). Report still includes findings and understanding tier.

⚠️ Code Examples Don't Compile

Check framework version compatibility. Verify all required imports. Review framework documentation. Report template issues.

API Reference

FW_Advisor Static Methods

// Get recommendations for specific audience
List<FW_AdvisorRecommendation> getRecommendations(FW_Http http, FW_AdvisorAudience audience)

// Get recommendations for all audiences
Map<FW_AdvisorAudience, List<FW_AdvisorRecommendation>> getRecommendationsForAllAudiences(FW_Http http)

// Get executive summary
String getExecutiveSummary(FW_Http http)

// Check if advisor is enabled
boolean isEnabled()

// Get all available audiences
FW_AdvisorAudience[] getAllAudiences()

// Get implementer audiences only
FW_AdvisorAudience[] getImplementerAudiences()

// Get coordinator audiences only
FW_AdvisorAudience[] getCoordinatorAudiences()

FW_HttpReporter Methods NEW v2.2.0

// Configure target audience
void setTargetAudience(FW_AdvisorAudience audience)

// Get current audience
FW_AdvisorAudience getTargetAudience()

// Configure report depth
void setReportDepth(ReportDepth depth)

// Get current depth
ReportDepth getReportDepth()

// Generate report
String generateReport(FW_Http transaction)
DocumentDescription
HTTP Security AssessmentHTTP audit details and audience configuration
Network DiagnosticsNetwork testing
Test Development GuideUsing advisor in tests
Architecture DiagramLayer 7 details
Advisor Flow DiagramVisual workflow

What's New in v1.1.0