UACC v0.2 Governance as Code¶
Version: 0.2 Public Draft
Status: Public draft / working reference
Governance-as-code expresses selected UACC requirements in version-controlled configuration and CI/CD or workflow gates. It is not a turnkey product and does not replace management-system processes, human approvals, or legal review.
Public draft artifacts¶
- Schema:
../schemas/governance_yaml_schema.json - Tier 2 example:
../examples/governance.yaml - Tier 1 high-risk example:
../examples/governance_tier1_high_risk.yaml - Validation script:
../scripts/validate_governance_yaml.py - Canonical catalog:
uacc_v02_control_catalog.md - GenAI overlay reference:
uacc_v02_genai_overlay.md
Tier 2 example¶
schema_version: "0.2.0"
system:
name: "Example Credit Decisioning Model"
inventory_id: "AI-SYS-0001"
risk_tier: 2
owner: "model-owner@example.com"
sector: "credit_lending_us"
actor:
role: "provider"
scope: "system"
overlays:
- "predictive_decisioning"
promotion:
dev_to_staging:
require_validation_pass: true
require_bias_testing_pass: true
require_model_card: true
staging_to_production:
require_risk_assessment: true
require_instructions_for_use: true
approvers:
- "ai-governance-committee"
ownership:
policy_owner: "ai-governance-committee"
project_team_owner: "credit-risk-model-team"
change_review:
loosening_requires: "policy_owner_approval"
tightening_requires: "project_team_owner_approval"
Tier 1 high-risk example¶
schema_version: "0.2.0"
system:
name: "Example High-Risk Credit Decisioning Model"
inventory_id: "AI-SYS-0002"
risk_tier: 1
eu_ai_act_annex_iii_area: "5"
cosais_use_case: "predictive_decisioning"
owner: "model-owner@example.com"
human_overseer_primary: "oversight-lead@example.com"
human_overseer_backup: "oversight-backup@example.com"
deployment_geography:
- "US"
- "EU"
sector: "credit_lending_us"
actor:
role: "provider"
scope: "system"
overlays:
- "predictive_decisioning"
data_governance:
require_provenance_manifest: true
require_third_party_manifests: true
quality_checks:
null_threshold_warn: 0.02
null_threshold_block: 0.05
distribution_shift_threshold: 1.0
schema_validation: true
duplicate_detection: true
bias_scan:
enabled: true
protected_attributes:
- "age_band"
- "gender"
- "race_ethnicity_proxy"
representation_ratio_threshold: 0.5
label_rate_difference_threshold: 0.15
proxy_correlation_threshold: 0.7
enforcement: "block"
model_validation:
metrics:
- "auc"
- "precision"
- "recall"
- "calibration_error"
per_segment_analysis: true
segments:
- "age_band"
- "income_band"
- "geography"
regression_threshold: 0.03
declared_accuracy_metric: "auc"
declared_accuracy_value: 0.86
reproducibility:
require_model_hash: true
require_dataset_hash: true
require_code_sha: true
require_seeds: true
require_env_digest: true
require_compute_attestation: true
bias_testing:
enabled: true
sector_parameter_pack: "credit_lending_us"
fairness_metric_selection_rule: "Evaluate adverse impact ratio, false negative rate parity, and calibration by group; blocking metric selected by documented sector parameter pack."
candidate_metrics:
- "adverse_impact_ratio"
- "false_negative_rate_parity"
- "calibration_by_group"
min_subgroup_sample_floor: 100
min_subgroup_sample_warn: 1000
min_subgroup_sample_invalid: 30
enforcement: "block"
independence:
approver_role: "model-risk-committee"
exclude_authors: true
exclude_managers_of_authors: true
require_competence_record: true
require_coi_declaration_annual: true
authority_to_block: true
exception:
allowed: true
secondary_approver_role: "chief-risk-officer"
max_duration_days: 90
require_remediation_plan: true
re_evaluation_cadence_days: 30
evaluate_serious_incident_disclosure: true
adversarial_testing:
enabled: true
scenarios:
- "input_perturbation"
- "feature_manipulation"
- "distribution_shift"
enforcement: "block"
explainability:
require_global: true
require_local: true
require_sample_count: 25
method:
- "shap"
- "feature_importance"
model_card:
auto_generate: true
require_review: true
reviewer_role: "model-owner"
deployment:
require_canary: true
canary_fairness_comparison: true
require_override_verification: true
require_interrupt_verification: true
rollback_on_fairness_degradation: true
monitoring:
performance:
metrics:
- "auc"
- "precision"
- "recall"
- "calibration_error"
frequency: "daily"
degradation_investigate_threshold: 0.05
degradation_remediate_threshold: 0.10
per_segment: true
alert_recipients:
- "mlops@example.com"
- "model-risk@example.com"
drift_detection:
enabled: true
metrics:
- "psi"
- "ks_statistic"
frequency: "daily"
psi_investigate_threshold: 0.10
psi_remediate_threshold: 0.25
fairness_monitoring:
enabled: true
sector_parameter_pack: "credit_lending_us"
metrics:
- "adverse_impact_ratio"
- "calibration_by_group"
protected_attributes:
- "age_band"
- "gender"
- "race_ethnicity_proxy"
frequency: "weekly"
drift_threshold: 0.05
audit_logging:
fields:
- "request_id"
- "timestamp"
- "model_version"
- "input_features_hash"
- "output_decision"
- "confidence_score"
- "decision_type"
- "override_flag"
- "overseer_id"
storage:
primitive: "hash_chained_log"
signing_method: "kms_signed"
signer_identity: "uacc-evidence-signer@example.com"
retention_years: 10
promotion:
dev_to_staging:
require_data_quality_pass: true
require_bias_scan_review: true
require_validation_pass: true
require_bias_testing_pass: true
require_adversarial_testing: true
require_model_card: true
require_explainability: true
staging_to_production:
require_risk_assessment: true
require_fria: true
require_instructions_for_use: true
require_oversight_mechanism_test: true
require_overseer_designation: true
approvers:
- "ai-governance-committee"
- "model-risk-committee"
evidence_emission:
transport: "s3_object"
endpoint: "s3://example-uacc-evidence/credit-decisioning/"
signer_identity: "uacc-evidence-signer@example.com"
signing_method: "kms_signed"
envelope_contract: "uacc.evidence_event_envelope.v0_2"
envelope_version: "0.2.0"
retention:
evidence_retention_years: 10
audit_log_retention_years: 10
model_artifact_retention_years: 10
deletion_after_retention: true
legal_hold_override: true
ownership:
policy_owner: "ai-governance-committee"
project_team_owner: "credit-risk-model-team"
change_review:
loosening_requires: "policy_owner_approval"
tightening_requires: "project_team_owner_approval"
Governance YAML schema¶
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:uacc:schema:governance-yaml:0.2.0",
"title": "UACC governance.yaml",
"description": "Public draft JSON Schema for the UACC governance-as-code configuration file. One governance.yaml per AI system. JSON Schema defaults are annotations; operational enforcement of default values and tightening/loosening rules requires a separate controlled configuration process. See docs/uacc_v02_governance_as_code.md for usage.",
"type": "object",
"required": ["schema_version", "system", "actor", "overlays", "promotion"],
"additionalProperties": false,
"properties": {
"schema_version": {
"type": "string",
"const": "0.2.0",
"description": "Schema version. Must be 0.2.0 for this schema."
},
"system": { "$ref": "#/$defs/system" },
"actor": { "$ref": "#/$defs/actor" },
"overlays": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": { "enum": ["predictive_decisioning", "genai_llm", "agent_single", "agent_multi", "dev_security"] },
"description": "Use-case overlays this system is governed under. At least one required."
},
"data_governance": { "$ref": "#/$defs/data_governance" },
"model_validation": { "$ref": "#/$defs/model_validation" },
"deployment": { "$ref": "#/$defs/deployment" },
"monitoring": { "$ref": "#/$defs/monitoring" },
"promotion": { "$ref": "#/$defs/promotion" },
"evidence_emission": { "$ref": "#/$defs/evidence_emission" },
"retention": { "$ref": "#/$defs/retention" },
"ownership": { "$ref": "#/$defs/ownership" },
"deployer_specific": { "$ref": "#/$defs/deployer_specific" },
"genai": { "$ref": "#/$defs/genai" }
},
"$defs": {
"system": {
"type": "object",
"required": ["name", "inventory_id", "risk_tier", "owner", "sector"],
"additionalProperties": false,
"properties": {
"name": { "type": "string", "minLength": 1 },
"inventory_id": { "type": "string", "pattern": "^AI-SYS-[0-9]{4,}$", "description": "Links to UACC-INV-01 inventory entry." },
"risk_tier": { "type": "integer", "enum": [0, 1, 2, 3], "description": "UACC AI risk tier. 0=Prohibited/stop condition, 1=High-risk or high-impact, 2=Limited risk, 3=Minimal risk." },
"eu_ai_act_annex_iii_area": { "type": ["string","null"], "description": "EU AI Act Annex III area number (1-8) if Tier 1 high-risk under Annex III." },
"cosais_use_case": { "enum": ["genai_assistant", "predictive_decisioning", "agent_single", "agent_multi", "dev_security"] },
"owner": { "type": "string", "format": "email" },
"human_overseer_primary": { "type": "string", "format": "email" },
"human_overseer_backup": { "type": "string", "format": "email" },
"deployment_geography": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
"sector": {
"enum": [
"employment_us", "employment_nyc",
"credit_lending_us", "insurance_us", "benefits_public_us",
"eu_high_risk_general",
"healthcare_us", "education_us", "law_enforcement_us",
"other"
],
"description": "Drives Sector Parameter Pack selection for fairness/bias controls. Replaces hardcoded universal thresholds."
}
}
},
"actor": {
"type": "object",
"required": ["role"],
"additionalProperties": false,
"properties": {
"role": {
"enum": ["provider", "deployer", "importer", "distributor", "authorized_representative"],
"description": "EU AI Act actor role for this system. Drives which controls apply and at what scope."
},
"scope": { "enum": ["system", "organization"], "default": "system" },
"material_modification": {
"type": "boolean",
"default": false,
"description": "Deployers who materially modify, fine-tune, or substantially adapt the model become subject to provider-like obligations for the modification."
}
}
},
"data_governance": {
"type": "object",
"additionalProperties": false,
"properties": {
"require_provenance_manifest": { "type": "boolean", "default": true, "description": "UACC-DAT-01" },
"require_third_party_manifests": { "type": "boolean", "default": true, "description": "UACC-DAT-01 (external data)" },
"quality_checks": { "$ref": "#/$defs/quality_checks" },
"bias_scan": { "$ref": "#/$defs/bias_scan" },
"special_category_safeguards": { "$ref": "#/$defs/special_category_safeguards" }
}
},
"quality_checks": {
"type": "object",
"description": "UACC-DAT-02",
"additionalProperties": false,
"properties": {
"null_threshold_warn": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.02 },
"null_threshold_block": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.05 },
"distribution_shift_threshold": { "type": "number", "minimum": 0, "default": 1.0, "description": "Standard deviations from reference distribution." },
"schema_validation": { "type": "boolean", "default": true },
"duplicate_detection": { "type": "boolean", "default": true }
}
},
"bias_scan": {
"type": "object",
"description": "UACC-DAT-03 (data-level bias scan, distinct from model-level UACC-MDL-02).",
"required": ["enabled"],
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"protected_attributes": {
"type": "array",
"items": { "type": "string" },
"minItems": 1
},
"representation_ratio_threshold": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.5 },
"label_rate_difference_threshold": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.15 },
"proxy_correlation_threshold": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.7 },
"enforcement": { "enum": ["flag", "block"], "default": "flag" }
}
},
"special_category_safeguards": {
"type": "object",
"description": "UACC-DAT-04 — required when protected-attribute or special-category data (GDPR Art. 9) is processed for bias detection (EU AI Act Art. 10(5)).",
"additionalProperties": false,
"properties": {
"art_10_5_safeguard_chain_documented": { "type": "boolean", "default": false },
"access_strictly_limited": { "type": "boolean", "default": false },
"no_third_party_disclosure": { "type": "boolean", "default": true },
"deletion_when_no_longer_needed": { "type": "boolean", "default": true }
}
},
"model_validation": {
"type": "object",
"description": "UACC-MDL-01 plus referenced sub-controls.",
"additionalProperties": false,
"properties": {
"metrics": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
"per_segment_analysis": { "type": "boolean", "default": true },
"segments": { "type": "array", "items": { "type": "string" } },
"regression_threshold": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.05, "description": "Max acceptable metric drop vs prior version." },
"declared_accuracy_metric": { "type": "string", "description": "The metric whose declared value is reported in Instructions for Use (TRN-01)." },
"declared_accuracy_value": { "type": "number" },
"reproducibility": { "$ref": "#/$defs/reproducibility" },
"bias_testing": { "$ref": "#/$defs/bias_testing" },
"adversarial_testing": { "$ref": "#/$defs/adversarial_testing" },
"explainability": { "$ref": "#/$defs/explainability" },
"model_card": { "$ref": "#/$defs/model_card" }
}
},
"reproducibility": {
"type": "object",
"description": "Reproducibility metadata required on every evaluation event. Aligned with UACC-MDL-02 v0.2 template.",
"additionalProperties": false,
"properties": {
"require_model_hash": { "type": "boolean", "default": true },
"require_dataset_hash": { "type": "boolean", "default": true },
"require_code_sha": { "type": "boolean", "default": true },
"require_seeds": { "type": "boolean", "default": true },
"require_env_digest": { "type": "boolean", "default": true },
"require_compute_attestation": { "type": "boolean", "default": true, "description": "Tier 1 systems should require attestation that evaluation ran in the governed CI environment, not on a developer laptop." }
}
},
"bias_testing": {
"type": "object",
"description": "UACC-MDL-02 — model-level bias and disparate impact testing. Threshold values are not specified here; they are inherited from the Sector Parameter Pack identified by system.sector so sector-specific requirements can govern.",
"required": ["enabled", "sector_parameter_pack", "fairness_metric_selection_rule", "independence", "exception"],
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"sector_parameter_pack": {
"type": "string",
"description": "References the sector pack ID. Must match system.sector or be a more specific pack the org has published."
},
"fairness_metric_selection_rule": {
"type": "string",
"minLength": 1,
"description": "Required documented rule explaining which fairness metric(s) govern for this sector and why. Single-metric reliance is discouraged."
},
"candidate_metrics": {
"type": "array",
"items": { "type": "string", "enum": ["adverse_impact_ratio", "equalized_odds", "demographic_parity_difference", "calibration_by_group", "false_negative_rate_parity", "false_positive_rate_parity"] },
"minItems": 1
},
"min_subgroup_sample_floor": { "type": "integer", "minimum": 1, "default": 100 },
"min_subgroup_sample_warn": { "type": "integer", "minimum": 1, "default": 1000, "description": "Below this, evaluation reports must include confidence intervals." },
"min_subgroup_sample_invalid": { "type": "integer", "minimum": 1, "default": 30, "description": "Below this, fairness metric is flagged 'insufficient data' rather than reported." },
"enforcement": { "enum": ["flag", "block"], "default": "block" },
"independence": { "$ref": "#/$defs/independence" },
"exception": { "$ref": "#/$defs/exception" }
}
},
"independence": {
"type": "object",
"description": "Independence Criteria for the approval role on bias evaluation reports (and other approve/review controls).",
"required": ["approver_role", "exclude_authors", "require_competence_record", "require_coi_declaration_annual", "authority_to_block"],
"additionalProperties": false,
"properties": {
"approver_role": {
"type": "string",
"minLength": 1,
"description": "Named approver role; e.g., model-risk-committee, designated-validator. Must satisfy organizational and functional independence."
},
"exclude_authors": { "type": "boolean", "default": true },
"exclude_managers_of_authors": { "type": "boolean", "default": true },
"require_competence_record": { "type": "boolean", "default": true, "description": "Approver must have training records traceable to UACC-GOV-03." },
"require_coi_declaration_annual": { "type": "boolean", "default": true },
"authority_to_block": { "type": "boolean", "default": true, "description": "Pipeline must enforce approver's block authority." }
}
},
"exception": {
"type": "object",
"description": "Time-bound conditional pass mechanics for when a control cannot be fully satisfied. See UACC-MDL-02 v0.2 Exception / Risk-Acceptance Mechanics section.",
"required": ["allowed", "secondary_approver_role", "max_duration_days"],
"additionalProperties": false,
"properties": {
"allowed": { "type": "boolean", "default": false },
"secondary_approver_role": {
"type": "string",
"description": "Approver in addition to the Independence Criteria approver; e.g., cro, general-counsel, board-ai-committee-chair."
},
"max_duration_days": { "type": "integer", "minimum": 1, "default": 90 },
"require_remediation_plan": { "type": "boolean", "default": true },
"re_evaluation_cadence_days": { "type": "integer", "minimum": 1, "default": 30 },
"evaluate_serious_incident_disclosure": { "type": "boolean", "default": true, "description": "EU AI Act Art. 73 — assess whether breach constitutes serious incident requiring 15-day notification." }
}
},
"adversarial_testing": {
"type": "object",
"description": "UACC-MDL-04",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean" },
"scenarios": {
"type": "array",
"items": { "enum": ["input_perturbation", "feature_manipulation", "distribution_shift", "evasion", "poisoning_simulation", "membership_inference"] },
"minItems": 1
},
"enforcement": { "enum": ["flag", "block"], "default": "block" }
}
},
"explainability": {
"type": "object",
"description": "UACC-TRN-02",
"additionalProperties": false,
"properties": {
"require_global": { "type": "boolean", "default": true, "description": "Global explanation (e.g., SHAP summary, feature importance)." },
"require_local": { "type": "boolean", "default": true, "description": "Per-instance explanations." },
"require_sample_count": { "type": "integer", "minimum": 1, "default": 10 },
"method": { "type": "array", "items": { "enum": ["shap", "lime", "feature_importance", "counterfactual", "anchors"] } }
}
},
"model_card": {
"type": "object",
"description": "UACC-MDL-03",
"additionalProperties": false,
"properties": {
"auto_generate": { "type": "boolean", "default": true },
"require_review": { "type": "boolean", "default": true },
"reviewer_role": { "type": "string", "default": "model-owner" }
}
},
"deployment": {
"type": "object",
"description": "UACC-HUM-01 plus deployment hardening.",
"additionalProperties": false,
"properties": {
"require_canary": { "type": "boolean", "default": true },
"canary_fairness_comparison": { "type": "boolean", "default": true },
"require_override_verification": { "type": "boolean", "default": true, "description": "Test override mechanism before deploy." },
"require_interrupt_verification": { "type": "boolean", "default": true, "description": "Test interrupt/stop mechanism before deploy." },
"rollback_on_fairness_degradation": { "type": "boolean", "default": true }
}
},
"monitoring": {
"type": "object",
"additionalProperties": false,
"properties": {
"performance": { "$ref": "#/$defs/monitoring_performance" },
"drift_detection": { "$ref": "#/$defs/monitoring_drift" },
"fairness_monitoring": { "$ref": "#/$defs/monitoring_fairness" },
"audit_logging": { "$ref": "#/$defs/monitoring_audit_logging" }
}
},
"monitoring_performance": {
"type": "object",
"description": "UACC-MON-01",
"additionalProperties": false,
"properties": {
"metrics": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
"frequency": { "enum": ["continuous", "hourly", "daily", "weekly"], "default": "daily" },
"degradation_investigate_threshold": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.05 },
"degradation_remediate_threshold": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.10 },
"per_segment": { "type": "boolean", "default": true },
"alert_recipients": { "type": "array", "items": { "type": "string", "format": "email" }, "minItems": 1 }
}
},
"monitoring_drift": {
"type": "object",
"description": "UACC-MON-02",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean", "default": true },
"metrics": { "type": "array", "items": { "enum": ["psi", "ks_statistic", "wasserstein", "jensen_shannon"] } },
"frequency": { "enum": ["continuous", "hourly", "daily", "weekly"], "default": "daily" },
"psi_investigate_threshold": { "type": "number", "minimum": 0, "default": 0.10 },
"psi_remediate_threshold": { "type": "number", "minimum": 0, "default": 0.25 }
}
},
"monitoring_fairness": {
"type": "object",
"description": "UACC-MON-03 — uses the same Sector Parameter Pack as bias_testing for consistency between pre-deployment and post-deployment fairness.",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean", "default": true },
"sector_parameter_pack": { "type": "string", "description": "Inherits from bias_testing.sector_parameter_pack unless overridden." },
"metrics": { "type": "array", "items": { "enum": ["adverse_impact_ratio", "equalized_odds", "demographic_parity_difference", "calibration_by_group"] } },
"protected_attributes": { "type": "array", "items": { "type": "string" } },
"frequency": { "enum": ["continuous", "daily", "weekly", "monthly", "quarterly"], "default": "weekly" },
"drift_threshold": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.05, "description": "Change from deployment-baseline fairness." }
}
},
"monitoring_audit_logging": {
"type": "object",
"description": "UACC-MON-04",
"required": ["fields", "storage", "retention_years"],
"additionalProperties": false,
"properties": {
"fields": {
"type": "array",
"items": { "type": "string" },
"minItems": 1,
"description": "Per-decision fields logged. Recommended minimum: request_id, timestamp, model_version, input_features_hash, output_decision, confidence_score, decision_type, override_flag, overseer_id."
},
"storage": { "$ref": "#/$defs/storage_integrity" },
"retention_years": { "type": "integer", "minimum": 1, "default": 10, "description": "EU AI Act Art. 12 + Art. 19 — high-risk system logs retained 10 years." }
}
},
"storage_integrity": {
"type": "object",
"description": "Concrete evidence integrity primitive for tamper-evident evidence storage or attestation.",
"required": ["primitive"],
"additionalProperties": false,
"properties": {
"primitive": {
"enum": ["append_only_log", "hash_chained_log", "object_lock", "merkle_signed", "transparency_log", "external_grc_attestation"],
"description": "Choose one. Append-only WORM, hash-chained log (e.g., signed Merkle), S3 object lock, or external transparency log (e.g., Sigstore Rekor)."
},
"signing_method": { "enum": ["sigstore", "in_toto", "x509", "kms_signed", "none"] },
"signer_identity": { "type": "string", "description": "Service identity (e.g., GitHub Actions OIDC subject) that signs evidence events." },
"external_attestation_provider": { "type": "string", "description": "If primitive is external_grc_attestation, the provider name." }
}
},
"promotion": {
"type": "object",
"required": ["dev_to_staging", "staging_to_production"],
"additionalProperties": false,
"properties": {
"dev_to_staging": { "$ref": "#/$defs/promotion_gate" },
"staging_to_production": { "$ref": "#/$defs/promotion_gate_production" }
}
},
"promotion_gate": {
"type": "object",
"minProperties": 1,
"additionalProperties": false,
"properties": {
"require_data_quality_pass": { "type": "boolean", "default": true, "description": "UACC-DAT-02" },
"require_bias_scan_review": { "type": "boolean", "default": true, "description": "UACC-DAT-03" },
"require_validation_pass": { "type": "boolean", "default": true, "description": "UACC-MDL-01" },
"require_bias_testing_pass": { "type": "boolean", "default": true, "description": "UACC-MDL-02" },
"require_adversarial_testing": { "type": "boolean", "default": true, "description": "UACC-MDL-04" },
"require_model_card": { "type": "boolean", "default": true, "description": "UACC-MDL-03" },
"require_explainability": { "type": "boolean", "default": true, "description": "UACC-TRN-02" }
}
},
"promotion_gate_production": {
"type": "object",
"minProperties": 1,
"additionalProperties": false,
"properties": {
"require_risk_assessment": { "type": "boolean", "default": true, "description": "UACC-RSK-01 (human-completed)." },
"require_fria": { "type": "boolean", "default": true, "description": "UACC-RSK-02 (human-completed)." },
"require_instructions_for_use": { "type": "boolean", "default": true, "description": "UACC-TRN-01 (human-completed)." },
"require_oversight_mechanism_test": { "type": "boolean", "default": true, "description": "UACC-HUM-01" },
"require_overseer_designation": { "type": "boolean", "default": true, "description": "UACC-HUM-02" },
"approvers": {
"type": "array",
"items": { "type": "string" },
"minItems": 1,
"description": "Named approver roles required for staging→production promotion."
}
}
},
"evidence_emission": {
"type": "object",
"description": "How evidence events are emitted, signed, and addressed. Events MUST conform to the UACC evidence event envelope described in docs/uacc_v02_governance_as_code.md.",
"required": ["transport", "signer_identity", "signing_method", "envelope_contract", "envelope_version"],
"additionalProperties": false,
"properties": {
"transport": { "enum": ["http_api", "kafka", "kinesis", "pubsub", "log_file", "s3_object"] },
"endpoint": { "type": "string" },
"signer_identity": { "type": "string", "description": "OIDC subject, KMS key alias, or service principal." },
"signing_method": { "enum": ["sigstore", "in_toto", "x509", "kms_signed", "none"] },
"envelope_contract": { "type": "string", "const": "uacc.evidence_event_envelope.v0_2", "description": "Normative evidence-event envelope contract identifier." },
"envelope_version": { "type": "string", "const": "0.2.0", "description": "Envelope version for the normative evidence-event envelope contract." }
}
},
"retention": {
"type": "object",
"description": "Evidence retention and lifecycle. EU AI Act high-risk systems require 10-year retention post-last-placement.",
"additionalProperties": false,
"properties": {
"evidence_retention_years": { "type": "integer", "minimum": 1, "default": 10 },
"audit_log_retention_years": { "type": "integer", "minimum": 1, "default": 10 },
"model_artifact_retention_years": { "type": "integer", "minimum": 1, "default": 10 },
"deletion_after_retention": { "type": "boolean", "default": true, "description": "Schedule deletion at end of retention; deletion event must itself be evidence." },
"legal_hold_override": { "type": "boolean", "default": true, "description": "Honor legal holds that suspend deletion." }
}
},
"ownership": {
"type": "object",
"description": "Who owns the governance.yaml itself. Loosening any parameter requires the policy_owner; tightening can be done by the project_team_owner.",
"required": ["policy_owner", "project_team_owner", "change_review"],
"additionalProperties": false,
"properties": {
"policy_owner": { "type": "string", "description": "Role responsible for the schema and default values (typically AI Governance / GRC)." },
"project_team_owner": { "type": "string", "description": "Role responsible for the per-system instance (typically the model owner)." },
"change_review": {
"type": "object",
"required": ["loosening_requires", "tightening_requires"],
"additionalProperties": false,
"properties": {
"loosening_requires": { "type": "string", "default": "policy_owner_approval", "description": "Loosening any threshold requires this approval." },
"tightening_requires": { "type": "string", "default": "project_team_owner_approval" }
}
}
}
},
"deployer_specific": {
"type": "object",
"description": "Required when actor.role == 'deployer'. Captures third-party model dependencies and deployer-only obligations (EU AI Act Art. 27 FRIA, in-context evaluation).",
"additionalProperties": false,
"properties": {
"third_party_model": {
"type": "object",
"additionalProperties": false,
"properties": {
"provider": { "type": "string" },
"model_id": { "type": "string" },
"provider_evidence_received": { "type": "array", "items": { "type": "string" }, "description": "Provider artifacts received (e.g., model_card, evaluation_report, conformity_declaration)." },
"provider_evidence_gaps": { "type": "array", "items": { "type": "string" }, "description": "Known gaps the deployer must fill (e.g., bias_evaluation_in_our_context)." }
}
},
"in_context_evaluation": {
"type": "object",
"additionalProperties": false,
"properties": {
"required": { "type": "boolean", "default": true },
"cadence": { "enum": ["continuous", "weekly", "monthly", "quarterly"], "default": "quarterly" }
}
},
"fria": {
"type": "object",
"description": "EU AI Act Art. 27 deployer Fundamental Rights Impact Assessment.",
"additionalProperties": false,
"properties": {
"required": { "type": "boolean", "default": true },
"review_cadence_months": { "type": "integer", "minimum": 1, "default": 12 }
}
}
}
},
"genai": {
"type": "object",
"description": "Required when overlays includes 'genai_llm'. Reflects controls summarized in docs/uacc_v02_genai_overlay.md.",
"required": ["prompt_injection", "output_safety", "hallucination_monitoring", "audit_logging"],
"additionalProperties": false,
"properties": {
"prompt_injection": {
"type": "object",
"description": "UACC-GEN-01",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean", "default": true },
"test_suites": { "type": "array", "items": { "enum": ["owasp_llm_top10_2025", "internal_redteam", "promptbench"] } },
"frequency": { "enum": ["pre_deploy_only", "weekly", "daily", "continuous"], "default": "weekly" },
"enforcement": { "enum": ["flag", "block"], "default": "block" }
}
},
"rag_governance": {
"type": "object",
"description": "UACC-GEN-05 — RAG Data Source Governance.",
"additionalProperties": false,
"properties": {
"source_inventory_required": { "type": "boolean", "default": true },
"corpus_provenance_required": { "type": "boolean", "default": true },
"access_control_required": { "type": "boolean", "default": true },
"indirect_injection_detection": { "type": "boolean", "default": true },
"corpus_change_review": { "type": "boolean", "default": true }
}
},
"output_safety": {
"type": "object",
"description": "UACC-GEN-02 — Output Safety and Content Filtering. Also supports UACC-GEN-04 data leakage prevention where PII/secret redaction and policy override logging are used as leakage controls.",
"additionalProperties": false,
"properties": {
"content_filter": { "type": "boolean", "default": true },
"pii_redaction": { "type": "boolean", "default": true },
"secret_redaction": { "type": "boolean", "default": true },
"policy_override_log": { "type": "boolean", "default": true }
}
},
"hallucination_monitoring": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": { "type": "boolean", "default": true },
"grounding_check": { "enum": ["rag_attribution", "citation_required", "fact_check_external", "none"], "default": "rag_attribution" },
"review_sampling_rate": { "type": "number", "minimum": 0, "maximum": 1, "default": 0.01 }
}
},
"system_prompt_change_control": {
"type": "object",
"description": "Supporting schema capability for prompt/release governance. Not a canonical UACC-GEN-05 mapping; GEN-05 is RAG Data Source Governance.",
"additionalProperties": false,
"properties": {
"version_controlled": { "type": "boolean", "default": true },
"review_required": { "type": "boolean", "default": true },
"regression_test_suite": { "type": "boolean", "default": true }
}
},
"audit_logging": {
"type": "object",
"description": "GenAI-specific log fields beyond the base UACC-MON-04 set.",
"additionalProperties": false,
"properties": {
"log_prompt": { "type": "boolean", "default": true },
"log_response": { "type": "boolean", "default": true },
"log_rag_context": { "type": "boolean", "default": true },
"log_guardrail_events": { "type": "boolean", "default": true },
"log_token_counts": { "type": "boolean", "default": true }
}
}
}
}
},
"allOf": [
{
"if": { "required": ["actor"], "properties": { "actor": { "properties": { "role": { "const": "deployer" } }, "required": ["role"] } } },
"then": { "required": ["deployer_specific"] }
},
{
"if": { "required": ["overlays"], "properties": { "overlays": { "contains": { "const": "genai_llm" } } } },
"then": { "required": ["genai"] }
},
{
"if": { "required": ["system"], "properties": { "system": { "properties": { "risk_tier": { "const": 1 } }, "required": ["risk_tier"] } } },
"then": { "required": ["deployment", "monitoring", "evidence_emission", "retention", "ownership"] }
}
]
}
Schema status¶
The public schema includes base predictive/decisioning blocks plus a GenAI overlay block. The sample governance files were validated locally against the public schema on 2026-06-06 using JSON Schema Draft 2020-12 validation. Run python3 scripts/validate_governance_yaml.py from the public repository root to repeat the validation.
JSON Schema validation checks structure, types, required fields, enumerations, patterns, and conditional requirements. JSON Schema default values are annotations; validation does not automatically materialize defaults or prove that governance teams prevent project teams from loosening controls. Organizations that use defaults operationally should apply them through a controlled configuration-generation or policy-enforcement process.
The schema is normative for governance-configuration syntax in this public draft. It does not make every referenced overlay control assessor-grade in v0.2 and does not replace the control catalog, evidence review, or approval workflow.
Evidence event envelope¶
The evidence_emission block in governance.yaml identifies how evidence events are emitted, signed, and addressed. In v0.2, the schema requires the following envelope contract identifier and version when evidence emission is configured:
envelope_contract:uacc.evidence_event_envelope.v0_2envelope_version:0.2.0
An evidence event envelope is the minimum metadata wrapper that makes a generated evidence record traceable to a system, control, source, signer, and time period. It is not a complete evidence payload and does not prove control operating effectiveness by itself.
Minimum envelope fields for the v0.2 contract are:
| Field | Purpose |
|---|---|
event_id |
Unique evidence event identifier. |
event_type |
Evidence event type, such as assessment_result, approval, monitoring_export, log_reconstruction, exception_record, or incident_notification. |
event_timestamp |
Timestamp when the event was generated or finalized. |
system_id |
AI system identifier that links to the inventory record. |
control_id |
UACC control or overlay control associated with the evidence. |
evidence_artifact_id |
Evidence template or artifact identifier where applicable, such as EVD-05 or MON-04. |
source_system |
System, workflow, repository, dashboard, ticketing tool, or service that produced the event. |
assessment_period_start / assessment_period_end |
Time period covered by the event where applicable. |
subject_version |
Model, prompt, dataset, policy, workflow, schema, or configuration version covered by the evidence where applicable. |
result_status |
Outcome such as passed, failed, conditional_pass, not_applicable, or informational. |
artifact_uri |
URI, object path, ticket link, report link, or evidence-store reference for the underlying artifact. |
artifact_hash |
Hash or integrity reference for the artifact where available. |
signer_identity |
Identity that signs or attests to the event, aligned to the configured signer_identity. |
signature |
Signature, attestation reference, or none only where the configured signing method allows it. |
Organizations may add local fields, but should preserve these envelope fields or a documented equivalent mapping if they want automated evidence records to remain portable across UACC tooling. JSON Schema validation of governance.yaml confirms the emission configuration; it does not validate individual evidence event payloads in v0.2.
GenAI ID synchronization¶
uacc_v02_genai_overlay.md is the public reference for GenAI overlay control IDs in v0.2:
| Schema sub-block | Canonical mapping | Notes |
|---|---|---|
prompt_injection |
UACC-GEN-01 |
Prompt injection defenses and tests. |
output_safety |
UACC-GEN-02 |
Output filtering, PII/secret redaction, policy override logging. |
hallucination_monitoring |
UACC-GEN-03 |
Grounding, citation, and review sampling. |
output_safety leakage controls and audit/logging fields |
Partial UACC-GEN-04 support |
Data leakage prevention is represented through PII/secret redaction and auditability in this public draft schema. Audit logging supports investigation but must itself be governed by minimization, redaction, retention, and access controls. |
rag_governance |
UACC-GEN-05 |
RAG source inventory requirement, corpus provenance, access control, and corpus change review. |
audit_logging |
UACC-MON-04 |
GenAI-specific audit fields. |
system_prompt_change_control |
Supporting schema capability | Not a GEN-05 control. It supports GEN-01, GEN-08, release governance, and auditability. |
Public draft scope note¶
The public draft schema does not create a dedicated data_leakage_prevention block. It documents UACC-GEN-04 support through output_safety redaction controls and audit/logging fields. A later schema version may split data leakage prevention into a dedicated block if public feedback shows that implementers need separate configuration.
Overlay names are use-case labels plus conditional validation hooks. For v0.2, genai_llm has the most developed overlay schema. Other overlay values are retained for forward-compatible classification and may require additional organization-defined controls outside the schema until future releases add deeper schema profiles.