UAIF Technical Specification
Searchable HTML edition of the UAIF classification architecture, conformance profiles, severity model, validation rules and implementation boundaries.
Downloads and formats
No approved PDF edition was supplied with this build. A PDF link will be added only after publication approval.
Document status and notice
Technical Specification — Publication Candidate TCR-STD-002 | Q2 2026 | Licensed under GAISSF Ecosystem Licence (GEL v1.0) | © 2026 ODA3 Pvt Ltd
Published by ODA3 Institute | Applied Research & Advisory | AI Security | Standards Development | Certification
Critical Status Notice
UAIF™ v1.0 is a Final Publication v1.0. It is not a production regulatory submission instrument, certification scheme, or legal determination of reporting obligations. Sector-specific calibration, legal review, inter-rater reliability validation, and SIEM/GRC integration testing remain required before production use.
Regulatory trigger logic provides technical routing assistance only. Legal counsel SHALL determine definitive compliance obligations, including EU AI Act Article 73 serious-incident reporting and any GDPR, NIS2, DORA, or sectoral obligations.
1. Executive Summary
UAIF™ provides a machine-readable incident interchange, classification, severity scoring, and conformance architecture for AI incidents. It is designed to reduce crosswalk friction across security operations, governance, regulatory routing, and assurance workflows.
| UAIF™ is | UAIF™ is not |
|---|---|
| An incident interchange and classification framework for AI systems | A universal AI governance or ethics framework |
| A structured severity scoring methodology with documented limitations | A safety certification scheme or legal risk assessment methodology |
| A conformance-testing architecture for testable adoption | A legal determination of regulatory applicability |
| An interoperability layer for advisory cross-framework mapping | An empirically validated scoring system before sector pilots |
1.1A Notably Absent
No empirical claim that default harm weights are sector-validated.
No certification, audit authority, or licence to claim UAIF Certified status.
No legal determination of EU AI Act Article 73, GDPR, NIS2, DORA, or sectoral reporting obligations.
No operational SIEM/GRC integration warranty before target-platform testing.
No proprietary sector calibration packages or confidential pilot datasets.
1.2 Primary Outputs
| Output Field | Type | Purpose |
|---|---|---|
| severity_analytical_score | Float 0.0-10.0 | Primary analytical metric; pre-impact, pre-presentation differentiation. |
| severity_presentation_score | Float 0.0-10.0 | Operational presentation metric used for triage and regulatory proxy routing. |
| severity_level | Integer 1-5 | Operational triage tier mapped from presentation score. |
| severity_rationale | JSON object | Machine-auditable audit trail for every calculation component. |
| regulatory_trigger | Boolean | Technical routing flag; not legal determination. |
| trigger_confidence | LOW | MEDIUM | HIGH | Calibration-aware confidence band. |
| human_review_recommended | Boolean | Human review flag for uncertain or low-confidence triggers. |
2. UAIF 7-Layer Architecture
| Layer | Name | Purpose | Representative Fields |
|---|---|---|---|
| L0 | Incident Identity & Workflow | Deduplication, audit trail, workflow state | incident_uuid, reporting_timestamp, reporter_confidence_level, remediation_status, deduplication_hash |
| L1 | Causal Separation Chain | Isolate origin from manifestation | root_cause_primary_domain, root_cause_specific_type, root_cause_confidence, exploit_path_description |
| L2 | Severity Scoring | Impact-dominant severity with transparent limits | severity_analytical_score, severity_presentation_score, severity_level, severity_rationale |
| L3 | Acute vs Chronic Harm | Immediate impact and long-term degradation | harm_acute, harm_chronic_proxy, realized_harm_categories, cumulative_bias_index |
| L4 | Incident vs Vulnerability | Static exposures vs dynamic occurrences | record_type, linked_vulnerability_id, exposure_duration_hours |
| L5 | Generative, Agentic & Control Plane | RAG leakage, hallucination, agent escalation, MCP, OAuth, policy enforcement | ai_system_type, non_adversarial_failure_type, agent_escalation_chain, mcp_endpoint_ids, oauth_pivot_chain, policy_enforcement_point |
| L6 | Regulatory & Cross-Sector Metadata | Jurisdictional routing and sector classification | sector_code, jurisdiction_country_code, regulatory_obligations, regulatory_trigger |
Architectural decision: prior L7 AI Control Plane Extensions are merged into L5 for API simplicity. TCR-STD-003 SHALL follow this 7-layer architecture. L7 SHALL NOT be treated as a separate conformance layer in UAIF v1.0.
3. Adoption Profiles and Conformance
| Profile | Included Layers | Mandatory Fields | Prohibited Fields |
|---|---|---|---|
| Core | L0, L1, L2, L6 | 11 baseline fields plus conditional Incident severity fields | L3, L4, L5 fields in primary payload |
| Enterprise | Core + L3, L4 | 18 baseline and harm/exposure fields | L5 fields |
| Regulatory | Enterprise + L6 extended | 22 baseline, severity, harm, jurisdiction, trigger fields | None |
| SOC/SIEM | Core + STIX/ATLAS mapping | Core plus atlas_technique_id where applicable | L3 and L5 unless using extension namespace |
| AI Security Extension | Core + L5 security subset | Core plus attack vector and control-plane fields | L3 and L4 unless enterprise enabled |
Core Profile implementations SHALL NOT include prohibited fields in the primary payload. Extended data MAY be stored under x_extensions but SHALL NOT affect Core Profile validation. Custom vocabulary values SHALL use the x_ prefix only where the controlled vocabulary explicitly allows it.
| # | Conformance Requirement | Validation Method |
|---|---|---|
| 1 | Mandatory fields for selected profile are present | Schema validation |
| 2 | Mandatory fields contain valid type, format, enum, and precision values | Type/format validation |
| 3 | Prohibited fields are absent from the selected profile primary payload | Field presence check |
| 4 | Severity calculations match the normative reference implementation | Deterministic output comparison |
| 5 | Conditional validation rules are enforced | Rule-based validation |
| 6 | severity_rationale includes calibration_status and required provisional notices | Semantic check |
| 7 | regulatory_trigger presence requires trigger_confidence and human_review_recommended | Schema allOf validation |
| 8 | root_cause_specific_type uses controlled vocabulary or x_ extension value | Vocabulary check |
4. Severity Scoring Engine v1.0
UAIF severity scoring draws structural inspiration from CVSS v3.1/v4.0 but is a post-incident classification and routing model. It is not a replacement for vulnerability scoring.
| Harm Type | Default Weight | Status |
|---|---|---|
| Physical_Harm | 4.0 | Provisional pending sector validation |
| Environmental_Harm | 3.5 | Provisional pending sector validation |
| Security_Integrity | 3.5 | Provisional pending sector validation |
| Privacy_Violation | 3.0 | Provisional pending sector validation |
| Financial_Loss | 2.5 | Provisional pending sector validation |
| Psychological_Harm | 2.0 | Provisional pending sector validation |
| Property_Damage | 2.0 | Provisional pending sector validation |
| Reputational_Harm | 1.5 | Provisional pending sector validation |
4.1 Context Modifiers
| Context | Base Value | Effective Cap |
|---|---|---|
| Model_Poisoning | 2.0 | 1.5 per factor |
| RAG_leakage | 1.5 | 1.5 |
| Prompt_Injection | 1.5 | 1.5 |
| Agent_Hijack | 1.5 | 1.5 |
| Agentic | 1.0 | 1.0 |
| Adversarial | 0.5 | 0.5 |
4.2 Normative Calculation
The normative UAIF v1.0 calculation SHALL follow this order: dominant-harm anchor; diminishing context contribution; impact scale using MAX(population, blast radius); inverted temporal confidence reduction; final analytical and presentation scores. Implementations SHALL NOT use collapsed single-score fields or non-normative stakeholder multipliers.
from decimal import Decimal, ROUND_HALF_UP
HARM_WEIGHTS = {
"Physical_Harm": 4.0,
"Environmental_Harm": 3.5,
"Security_Integrity": 3.5,
"Privacy_Violation": 3.0,
"Financial_Loss": 2.5,
"Psychological_Harm": 2.0,
"Property_Damage": 2.0,
"Reputational_Harm": 1.5,
}
CONTEXT_MODIFIERS = {
"Model_Poisoning": 2.0,
"RAG_leakage": 1.5,
"Prompt_Injection": 1.5,
"Agent_Hijack": 1.5,
"Agentic": 1.0,
"Adversarial": 0.5,
}
DEFAULT_REGULATED_ZONES = {
"AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE",
"IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","NO","IS","LI"
}
def _round_decimal(value, places=1):
quantum = Decimal("1." + ("0" * places)) if places else Decimal("1")
return float(Decimal(str(value)).quantize(quantum, rounding=ROUND_HALF_UP))
def _calculate_context_contribution(context_list):
valid = sorted([(c, CONTEXT_MODIFIERS[c]) for c in context_list if c in CONTEXT_MODIFIERS], key=lambda x: x[1], reverse=True)
total, factor, applied = 0.0, 1.0, []
for ctx, base in valid:
capped = min(1.5, base)
contribution = capped * factor
total += contribution
applied.append({"context": ctx, "base_value": base, "contribution_factor": factor, "effective_contribution": _round_decimal(contribution, 2)})
if total >= 3.0:
break
factor *= 0.5
return min(3.0, total), applied
def score_to_level(score):
if score < 2.0: return 1
if score < 4.0: return 2
if score < 6.5: return 3
if score < 8.5: return 4
return 5
def calculate_uaif_severity(harms, contexts, population_multiplier, blast_radius_multiplier, attribution_conf, investigation_status, evidence_quality):
valid_harms = [(h, HARM_WEIGHTS[h]) for h in harms if h in HARM_WEIGHTS]
if not valid_harms:
return {"severity_analytical_score": 0.0, "severity_presentation_score": 0.0, "severity_level": 1}
dominant_harm, dominant_weight = max(valid_harms, key=lambda x: x[1])
others_sum = sum(w for h, w in valid_harms if h != dominant_harm)
adjusted_base = _round_decimal(dominant_weight + min(2.0, 0.5 * others_sum), 1)
context_add, context_audit = _calculate_context_contribution(contexts)
context_add = _round_decimal(context_add, 2)
base_score = _round_decimal(min(10.0, adjusted_base + context_add), 1)
impact_scale = _round_decimal(min(1.8, max(population_multiplier, blast_radius_multiplier)), 2)
confidence_factor = _round_decimal((attribution_conf + investigation_status + evidence_quality) / 3.0, 2)
temporal_reduction = _round_decimal((1.0 - confidence_factor) * 0.5, 2)
temporal_adjustment = _round_decimal(base_score * (1.0 - temporal_reduction), 1)
presentation_score = _round_decimal(max(0.0, min(10.0, temporal_adjustment * impact_scale)), 1)
return {
"severity_analytical_score": base_score,
"severity_presentation_score": presentation_score,
"severity_level": score_to_level(presentation_score),
"severity_rationale": {
"dominant_harm": dominant_harm,
"dominant_weight": dominant_weight,
"context_modifiers_applied": context_audit,
"context_modifier_sum": context_add,
"population_multiplier": population_multiplier,
"blast_radius_multiplier": blast_radius_multiplier,
"impact_scale": impact_scale,
"confidence_factor": confidence_factor,
"temporal_reduction": temporal_reduction,
"temporal_adjustment": temporal_adjustment,
}
}
def calculate_regulatory_trigger_confidence(severity_presentation_score, calibration_status, jurisdiction_country_code, sensitive_data=False, critical_sector=False, vulnerable_population=False, regulated_zones=None, threshold_score=6.5):
country_base = jurisdiction_country_code.split("-")[0].upper()
zones = set(regulated_zones) if regulated_zones else DEFAULT_REGULATED_ZONES
base_trigger = (severity_presentation_score >= threshold_score) and (country_base in zones)
distance = abs(severity_presentation_score - threshold_score)
if calibration_status == "sector_validated":
confidence = "HIGH" if distance >= 0.3 else "MEDIUM"
elif calibration_status == "custom":
confidence = "MEDIUM"
else:
confidence = "MEDIUM" if distance >= 0.5 else "LOW"
enrichment_active = sensitive_data or critical_sector or vulnerable_population
trigger = base_trigger and ((confidence == "HIGH") or (confidence == "MEDIUM" and enrichment_active))
return {"regulatory_trigger": trigger, "trigger_confidence": confidence, "human_review_recommended": confidence == "LOW", "distance_from_threshold": round(distance, 2), "legal_notice": "UAIF regulatory trigger is technical routing assistance only; legal counsel determines EU AI Act Article 73 obligations."}
4.3 Impact Scale and Temporal Adjustment
| Population | Multiplier | Blast Radius | Multiplier |
|---|---|---|---|
| 1-10 | 0.8 | single_system | 1.0 |
| 11-100 | 1.0 | business_unit | 1.2 |
| 101-1,000 | 1.2 | entire_org | 1.4 |
| 1,001-10,000 | 1.4 | cross_org | 1.6 |
| >10,000 | 1.6 | critical_infra | 1.8 |
Impact scale = min(1.8, max(population_multiplier, blast_radius_multiplier)). This prevents double-counting of scale dimensions.
4.4 Rounding Rule
All decimal scores SHALL use Decimal ROUND_HALF_UP. Score fields SHALL be rounded to one decimal place. Ratio or internal contribution values MAY be rounded to two decimal places where specified by severity_rationale.
4.5 Severity Matrix
| Level | Presentation Score Range | Indicative Harm Threshold | Regulatory Routing |
|---|---|---|---|
| 1 Info | 0.0 <= score < 2.0 | No external harm | None |
| 2 Low | 2.0 <= score < 4.0 | Minor confusion or <$10K impact | Internal audit only |
| 3 Medium | 4.0 <= score < 6.5 | Reputational/non-sensitive data/$10K-$100K | Sectoral reporting if applicable |
| 4 High | 6.5 <= score < 8.5 | Physical safety, sensitive data, >$100K | EU AI Act Article 73 technical proxy where applicable |
| 5 Critical | 8.5 <= score <= 10.0 | Widespread societal harm, critical infrastructure, major systemic impact | EU AI Act Article 73 serious incident proxy where applicable |
Boundary rule: lower bounds are inclusive; upper bounds are exclusive except Level 5, where 10.0 is inclusive.
5. Regulatory Trigger Logic
UAIF regulatory_trigger is a technical routing flag. It SHALL NOT be treated as a legal determination. EU AI Act serious incident references SHALL use Article 73. Obsolete EU AI Act incident-reporting proxy references SHALL NOT be used in UAIF v1.0.
| Parameter | Normative Rule |
|---|---|
| threshold_score | Default 6.5, evaluated against severity_presentation_score. |
| regulated_zones | Default EEA jurisdictions: AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE, plus NO, IS, LI. Implementations MAY override by policy. |
| confidence bands | sector_validated: HIGH if distance >=0.3 else MEDIUM. provisional: MEDIUM if distance >=0.5 else LOW. custom: MEDIUM. |
| human review | Required when trigger_confidence is LOW; recommended where legal obligations are uncertain. |
| reporting timelines | EU AI Act Article 73 timing must be assessed by legal counsel. GDPR/NIS2/DORA timelines are separate and SHALL NOT be copied into EU AI Act routing logic. |
6. Sector Taxonomy
The normative sector_code field SHALL use the 19-code NIS2-aligned UAIF enum below. NAICS/NACE identifiers MAY be captured in optional mapping metadata fields such as nace_code_actual or naics_code_actual; they SHALL NOT replace sector_code.
| sector_code | Usage |
|---|---|
| ENERGY | Normative UAIF sector value |
| TRANSPORT | Normative UAIF sector value |
| BANKING | Normative UAIF sector value |
| FINANCIAL_MARKETS | Normative UAIF sector value |
| HEALTH | Normative UAIF sector value |
| DRINKING_WATER | Normative UAIF sector value |
| WASTE_WATER | Normative UAIF sector value |
| DIGITAL_INFRA | Normative UAIF sector value |
| ICT_SERVICES | Normative UAIF sector value |
| PUBLIC_ADMIN | Normative UAIF sector value |
| SPACE | Normative UAIF sector value |
| POSTAL | Normative UAIF sector value |
| WASTE_MGMT | Normative UAIF sector value |
| CHEMICALS | Normative UAIF sector value |
| FOOD | Normative UAIF sector value |
| MANUFACTURING | Normative UAIF sector value |
| TELECOM | Normative UAIF sector value |
| RESEARCH | Normative UAIF sector value |
| OTHER | Normative UAIF sector value |
7. Governance, Versioning, and Supporting Documents
| Item | Rule |
|---|---|
| Version display | Use UAIF™ v1.0 in titles and market-facing text. Machine-readable schema metadata MAY use 1.0.0 only where explicitly described as semantic-version metadata. |
| Change control | ODA3 Institute maintains sole versioning and interpretation authority for UAIF v1.0. |
| Supporting Document D2 | Contributor Licence Agreement; separate companion document, not included in this specification. |
| Supporting Document D4 | Data Contribution Agreement; separate companion document, not included in this specification. |
| HMAC key management | Deduplication hash keys SHOULD be generated and stored under organisational KMS/HSM policy, rotated at least annually or after suspected compromise, and segregated by environment. |
| GEL references | Commercial use, embedding, certification claims, and conformance programme operation are governed by GEL v1.0. Section references SHALL be checked against the final GEL publication. |
8. Licensing and Brand Use
UAIF™, GAISSF™, AI-IRF™, ODA3™, and ODA3 Institute marks are proprietary marks of ODA3 Pvt Ltd. This document is licensed under GEL v1.0. No certification, endorsement, or official conformance status is granted by use of this document or schema alone.
Appendix A: UAIF Core Profile Schema Reference
The normative machine-readable schema is maintained in TCR-STD-003. The schema identifier is: https://schemas.oda3.org/uaif/core/v1.0/uaif-core-v1.0.json
Appendix B: Conditional Validation Rules
| # | Condition | Consequence |
|---|---|---|
| 1 | root_cause_specific_type = Adversarial_Attack | exploit_path_description SHALL be present |
| 2 | record_type = Incident | severity_analytical_score, severity_presentation_score, severity_level, severity_rationale, and realized_harm_categories SHALL be present |
| 3 | regulatory_trigger present | trigger_confidence and human_review_recommended SHALL be present |
| 4 | calibration_status = provisional | weight_provisional_notice SHALL be present in severity_rationale |
| 5 | context_modifiers_applied contains entries | Each entry SHALL include context, base_value, contribution_factor, effective_contribution |
| 6 | root_cause_specific_type not in controlled vocabulary | Value SHALL be prefixed x_ or validation fails |
Appendix H: Harm Weight Derivation Methodology
Default harm weights are provisional and derived from preliminary incident review and expert elicitation. Target inter-rater reliability for sector validation is ICC >= 0.80 using ICC(2,k), two-way mixed-effects model, absolute agreement, average measures. Sector validation requires >=10 raters and >=30 reference incidents per sector cohort.
Appendix I: Standards Alignment Notes
NIST AI RMF 1.0 is the current alignment basis for GOVERN, MAP, MEASURE, and MANAGE functions. NIST AI 100-2 E2025 may be referenced only for adversarial machine learning taxonomy alignment and not as a successor AI RMF release.
EU AI Act references in UAIF v1.0 use Article 73 for serious incident reporting proxies. Legal counsel determines applicability and reporting timelines.
Appendix J: NACE and NAICS Mapping Guidance
NACE and NAICS codes are mapping metadata only. Implementations SHOULD map primary activity codes to the normative UAIF sector_code enum and retain the original activity code in nace_code_actual or naics_code_actual.
Appendix K: Controlled Vocabulary
| Vocabulary | Values |
|---|---|
| root_cause_specific_type | Adversarial_Attack, Prompt_Injection, Model_Poisoning, Data_Poisoning, RAG_Leakage, Hallucination, Agent_Escalation, Policy_Violation, System_Failure, Human_Error, Supply_Chain_Compromise, Unauthorised_Access, Data_Breach, Denial_of_Service, Misuse, x_[custom] |
| realized_harm_categories | Physical_Harm, Environmental_Harm, Security_Integrity, Privacy_Violation, Financial_Loss, Psychological_Harm, Property_Damage, Reputational_Harm |
Web edition notice
This HTML edition is provided for discovery, accessibility and search. Preserve the document identifier, version, publication status, limitations and GEL terms when citing or reusing it. The downloadable source remains available for recordkeeping.