Skip to content
← AI in operationsStudy 11L3 (pre-registered release gates, AST publishing locks, and live SQL oversight views)

Implementing ISO/IEC 42001 Clause 8 and Annex A.8 to A.10: change control, human oversight, and incident response

Published
Data
47 pre-registered evaluation records, 818 replayed runs, 787 audited diagnostic runs, 7 external publishing paths, 6 containment entry points
Figures
4

The claim

Once an AI system is in production, governance depends on how the organization controls changes, prevents operator over-reliance, and contains failures. In ISO/IEC 42001 (2023), Clause 8 (8.1 to 8.4) and four Annex A domains govern day-to-day operations. Annex A.6 (9 controls) covers the technical lifecycle. Annex A.8 (4 controls) and Annex A.9 (3 controls) govern user transparency and human oversight. Annex A.10 (3 controls) covers third-party suppliers and customer responsibilities. In Europe, these controls map directly to EU AI Act Articles 12, 14, 15, 17, and 50, alongside EN 18286 (2026).

Paper procedures rarely survive contact with a live incident queue. Across our benchmarks, frontier models remain confidently wrong on up to 12.7% of complex incidents. Meanwhile, modifying two schema descriptions reduced diagnostic accuracy by 6.4 points (95% to 88%) across 94 evaluation runs. Without automated release gates and hard output locks, routine prompt updates or operator complacency (Parasuraman & Manzey, 2010) can turn minor errors into customer incidents.

This final report in our ISO/IEC 42001 (2023) series (Part 1 and Part 2) details four operational controls.

First, we gate model and prompt changes with 47 pre-registered evaluation records (6 candidate releases blocked). We pair those records with $0 trace replay across 818 runs and a 9.44-second pull-request gate (15x to 27x faster). Second, we replace model self-confidence with deterministic verification badges and block direct external publishing across all 7 output channels (0 leaks over 90 days). Third, we verify cloud endpoint vector-space parity (cosine 1.0 across 26 test vectors) and map customer exclusion and deletion across 4 storage layers (100% mapped, 0 requests outstanding). Fourth, we pair a 6-entry-point cloud containment runbook (15-minute SEV-1 target) with 365-day cloud audit retention (380,730 audited trace spans).

Four operational controls to implement first

  1. Test prompt and schema edits with the same pre-registered gate as model upgrades. Under Annex A.6.2.4 and EN 18286 (2026), any change that alters system behavior requires verification. Replaying 818 stored traces at $0 model cost and running blinded evaluations caught a 6.4-point accuracy regression caused by two field descriptions.
  2. Compress slow generative CI judges into single-pass prefill gates. A 3-pass generative judge panel needed 750 calls (>18.5 minutes) for a 50-ticket pull request, tempting teams to make CI non-blocking. Moving to a single-pass 2-option choice head compressed the 50-ticket gate to 9.44 seconds (kappa = 0.918, 0 of 324 repeat flips).
  3. Replace model self-confidence with deterministic evidence badges. Because LLM confidence is uncalibrated (report 01), showing raw confidence scores invites automation bias under EU AI Act Article 14(4)(b). Compute status badges (grounded, supported, inconclusive) in deterministic post-processing code from verified tool citations (787 audited runs).
  4. Hardcode public=False in every external publishing path and verify it via syntax-tree gates. Do not rely on prompt instructions to keep AI drafts internal (Annex A.9.2). Enforce internal-note flags in code across all 7 publishing modules, verify them with an automated Python AST gate, and audit a 400-day SQL window continuously.

Clause 8 and Annex A.6: pre-registered change control and 15x to 27x CI compression

In ISO/IEC 42001 (2023), Clause 8.1 and Annex A.6.2.4 require verification before deployment. EU AI Act Article 17(1)(a) and EN 18286 (2026) likewise mandate pre-determined change control across models, prompts, and parsers (Sculley et al., 2015).

1. Pre-registered evaluation records (47 records) and 6 blocked production releases

Our verification index tracks 47 pre-registered evaluation records (16 agent evaluation rounds and 31 log-engine differential records). Each record pins container or binary SHA-256 digests, separates confirmatory from exploratory metrics, and enforces automated spend caps.

During our model upgrade round (report 03), a pre-flight spend gate halted the smoke check at 4 cells. Projected spend of $216.96 had exceeded the $170 budget cap. Across 47 incidents (188 judged cells), upgrading the model raised usable accuracy from 83% to 95% (+11.7 points). Confidently-wrong answers fell from 6% to 0% (-6.4 points).

By contrast, our pre-registered gates blocked 6 candidate releases from shipping to production when they failed their acceptance rules.

  • Blocking a schema-and-retry regression (94 cells). Tightening two JSON field descriptions and adding a retry dropped usable accuracy by 6.4 points (95% to 88%). It also induced upfront hedging in 45 of 94 runs (report 03).
  • Blocking a combined prompt-and-tool modification (-9.4 points). A confirmatory gate vetoed a combined prompt change after it regressed strict root-cause accuracy by 9.4 points and triggered the over-attribution guardrail.
  • Blocking 9 candidate log-engine patches (28 cloud A/B rounds). As detailed in report 06, our palindromic cloud harness accepted 19 optimization rounds and rejected 9 candidates that failed memory, liveness, or multiset-equivalence gates.
  • Zero-dollar trace replay (818 runs). Before spending tokens on live evaluations, we replay candidate post-processing rules across 818 archived traces at $0 model cost (reproducing 100% of stored historical labels).

Panel A: usable accuracy deltas (in percentage points) across our pre-registered evaluation gates, highlighting blocked regressions. Panel B: log-scale wall-clock time for a 50-ticket pull-request quality gate.

2. Compressing pull-request quality gates by 15x to 27x (9.44 seconds)

A release gate only protects production if it runs fast enough to enforce on every pull request. Our original quality gate ran a 3-pass generative judge panel across 5 rubric dimensions (15 calls per ticket). Scoring a 50-ticket benchmark required 750 generative calls (>18.5 minutes). Because 18.5 minutes slowed developer iteration, teams left the CI job non-blocking (continue-on-error: true).

As shown in report 07, we compressed that gate by 15x to 27x using our single-pass 4B model (0 output tokens). On a clamped binary log-probability endpoint (floor = 0.801), server-side clamping snapped uncertain probabilities to the boundaries. That clamp suppressed 6 of 6 borderline escalations. Switching to an unclamped 2-option choice head restored smooth probabilities and preserved all 6 of 6 escalations. It completed the 50-ticket pull-request gate in 9.44 seconds (50 calls, human kappa = 0.918, 0 of 324 flips), enabling promotion into a blocking CI check.

Annex A.8 and A.9: countering automation bias and enforcing human oversight

EU AI Act Article 14(4)(b) and ISO/IEC 42001 (2023) Annex A.8.2 and A.9.2 govern human oversight. Both standards require interfaces that help operators counter automation bias (trusting fluent automated recommendations despite contradicting evidence; Parasuraman & Manzey, 2010).

1. Why displaying raw LLM confidence induces automation bias (787 audited runs)

We audited 787 forensic agent runs (166 in Wave 1 across 8 models, report 01 and report 02). On every run, we tested whether verbalized model confidence predicted root-cause accuracy.

Pooled verbalized confidence scored 0.463 AUROC (0.60 in Wave 1, cost-weighted MCC = -0.20), below the 0.50 random baseline. On our primary workhorse model (gemini-3.8-flash), runs where the model declared itself "grounded" achieved 40.0% exact-match accuracy, compared to 70.3% when it declared itself "inconclusive" (a -30.3 point confidence gap). Displaying raw model confidence badges to engineers actively misleads reviewers.

We replaced model self-reports with three structural safeguards:

  1. Deterministic post-run evidence chips (3 tiers). A deterministic Python gate checks whether the cited log lines, entities, and tool calls exist in the execution ledger. It assigns grounded, supported, or inconclusive in code (downgrading 71 of 94 raw Opus 5.5 claims from 81 down to 10 verified grounded badges in report 03). Combining that runtime evidence ledger with our 4B calibration gate lifted Wave 2 AUROC from 0.463 to 0.725 (report 07).
  2. Correlated-ensemble disclosure (3 legs across 2 vendor families). Complex bundles run a 3-model ensemble. When 2 of the 3 legs share a provider family, the note prints (same model family) so reviewers do not mistake correlation for consensus.
  3. Documented epistemic limits (7 limits). Our operator guide trains engineers on 7 failure modes: hallucinations, hypothesis vs proof, correlation vs causation, unverified notes, truncated archives, prompt injection, and sample noise.

Panel A: verbalized LLM confidence AUROC and accuracy gap across 787 runs vs our deterministic evidence ledger + 4B gate. Panel B: 100% compliance across the four human-in-the-loop publishing safeguards.

2. Transport-layer human-in-the-loop confinement (7 publishing paths)

Given a 12.7% confidently-wrong floor on hard incidents, prompt instructions alone cannot guarantee that an AI agent never messages a customer directly (Annex A.9.4). We enforce human-in-the-loop confinement across four independent layers:

  • Hardcoded public=False across all 7 publishing paths. Every comment constructor across all 7 ticketing and notification adapters hardcodes public=False at the transport layer. Even if a prompt injection instructs the agent to reply publicly, the transport layer traps the output as an internal note.
  • Automated syntax-tree verification gates. Our Python AST verification suite parses all publishing modules and verifies that every Comment(...) call passes a constant False to public=. A companion verification gate checks that every note template renders a high-contrast HTML oversight warning banner. Both gates are being promoted into blocking CI checks.
  • Continuous SQL public-comment auditing (400-day window). A live PostgreSQL view continuously audits all public ticket comments across a 400-day window against approved deterministic templates (confirming 0 unclassified automated public comments over the past 90 days).

Annex A.10: cloud endpoint consolidation parity and 4-store customer erasure

Annex A.10 (A.10.2 to A.10.4) governs how responsibilities are allocated between the organization, its upstream AI suppliers, and its enterprise customers.

1. Cloud endpoint consolidation and vector-space parity (cosine 1.0 across 26 vectors)

Under Annex A.10.3, organizations must verify that third-party AI suppliers meet security, privacy, and performance requirements across every model path. We consolidated our retrieval query embedding workloads (gemini-embedding-2) onto regional enterprise Google Cloud Vertex AI alongside text generation (with ingestion migration tracked in our attestation ledger). Before switching traffic, our pre-cutover gate required strict mathematical parity.

We ran a pre-registered vector-space parity check across 26 production test vectors. Cosine similarity between the prior endpoint and regional Vertex AI measured 1.0 (>= 0.99999998 across all 26 vectors). That proved our 4.31M indexed chunks remained 100.0% compatible without re-embedding or recall loss. Meanwhile, explicit prompt caching cut generation cost on Vertex AI by 71.1% to 74.8% (report 04).

Panel A: vector-space parity (100%), index preservation (4.31M chunks), enterprise endpoint coverage, and prompt-cache savings on regional Vertex AI. Panel B: 4-store customer exclusion and deletion architecture (4 of 4 storage layers mapped, 100%).

2. Four-store customer exclusion and deletion architecture (4 of 4 stores mapped)

Under Annex A.10.4 and customer data-governance rules, deleting rows from one relational table is insufficient when customer telemetry spans multiple storage engines. Our data register defines a 4-store customer exclusion and deletion architecture across every persistence layer (100% of storage layers mapped).

  1. Store 1 (Relational tickets and pgvector embeddings). Remove ticket rows and associated vector chunks by organization and case identifier, and update organization exclusion lists across output and retrieval paths.
  2. Store 2 (Cloud storage and batch analysis archives). Purge compressed diagnostic archives from cloud storage buckets and unpacked analysis directories from batch hosts by case identifier.
  3. Store 3 (Git-backed case notes and history rewrite). Remove markdown case files and rewrite Git commit history so deleted customer identifiers do not persist in prior tree objects.
  4. Store 4 (Observability traces). Purge matching trace spans from the observability store and recompute daily PostgreSQL aggregate tables.

Our PostgreSQL attestation ledger tracks end-to-end single-command automation across all 4 stores, with 0 customer exclusion or deletion requests outstanding.

Annex A.6.2.8 and A.8.4: 6-point incident containment and 365-day audit logs

When an AI system misbehaves in production, operators need physical cloud containment controls that do not depend on a single application flag (Annex A.8.4). They also need durable logs that reconstruct the full event chain (Annex A.6.2.8 and EU AI Act Article 12).

  • Six-entry-point cloud containment runbook (15-minute SEV-1 target). Our AI incident response procedure defines 3 severity levels (SEV-1, SEV-2, and SEV-3). It sets a 15-minute containment target for SEV-1 and a 30-minute mitigation target for SEV-2. It also sets a 4-hour (240-minute) triage target for SEV-3 and a 24-hour (1,440-minute) customer notification target after confirmed exposure. Across all 6 production entry points, the runbook specifies 4 physical cloud containment controls (IAM invoker binding removal, Cloud Run job cancellation, --ingress=internal confinement, and Vertex AI IAM role revocation).
  • 365-to-400-day audit retention and hourly trace sync (380,730 audited trace spans). Cloud _Default log retention defaults to 30 days, which is too short for forensic reconstruction under EU AI Act Article 12. We extended _Default log retention from 30 days to 365 days alongside our locked 400-day _Required admin activity log bucket. In parallel, an hourly pipeline syncs summary metrics across an audited baseline of 380,730 trace spans (as of 2026-08-21) into PostgreSQL. It also strips file-path PII from trace names.

Panel A: AI incident response targets across SEV-1 containment (15 minutes), SEV-2 mitigation (30 minutes), SEV-3 triage (240 minutes), and confirmed-exposure notice (1,440 minutes). Panel B: cloud audit log and SQL public-comment retention windows (30 days extended to 365 and 400 days).

Verification gates and methodology checks

  • Zero-dollar trace replay fidelity (818 runs). Verified that replaying stored historical traces through each run's original gate version reproduced 818 of 818 stored labels (100%) before evaluating new gate rules.
  • Clamping probe on single-pass CI gates (324 repeat checks). Probed hosted binary endpoints across borderline cases, catching the 0.801 floor on the binary log-probability endpoint (6 of 6 escalations suppressed) and 0 of 324 choice flips.
  • Syntax-tree and live SQL publishing checks (7 paths, 400 days). Verified public=False via our automated Python AST gate (being promoted into a blocking CI check) and in production via our live SQL view (0 unclassified automated public comments over 90 days).
  • Embedding endpoint parity check (26 vectors). Verified cosine similarity 1.0 (>= 0.99999998) across 26 production vectors when consolidating embedding workloads onto regional Vertex AI.

Operational antipatterns rejected by our gates

  1. Shipping prompt or JSON schema edits without blinded evaluation. Blocked after two field edits cut accuracy by 6.4 points (95% to 88%) and a combined prompt edit lost 9.4 points (-9.4 points).
  2. Slow generative pull-request judges (>18.5 minutes across 750 calls). Compressed to a 9.44-second single-pass 2-option choice gate (kappa = 0.918) for blocking CI enforcement.
  3. Displaying raw LLM self-confidence to human reviewers (0.463 AUROC, -30.3 point gap). Replaced by deterministic post-run evidence chips (grounded, supported, inconclusive).
  4. Relying on prompt instructions or single-flag kill switches for safety. Replaced by hardcoded public=False across all 7 publishers and 4 physical cloud containment controls across all 6 entry points (15-minute SEV-1 target).
  5. Consolidating embedding endpoints without pre-cutover vector-space parity verification. Verified cosine = 1.0 across 26 vectors before cutover so 4.31M indexed chunks required zero re-embedding.

Pressure tests

Every finding was checked against the six standing fronts in Methods.

front what was tested result
Specification Clamped binary log-probability head (floor = 0.801) vs 2-option choice head (50 tickets) Binary log-probability floor suppressed 6 of 6 escalations; 2-option choice preserved 6 of 6 in 9.44 s (0 of 324 flips)
Aggregation Pooled verbalized confidence (N=787 runs) vs per-model conditioned accuracy (gemini-3.8-flash) Pooled AUROC sat at 0.463; conditioning on "grounded" vs "inconclusive" exposed a -30.3 point accuracy reversal
Adjustment coarseness Raw model confidence claims (81 of 94 Opus 5.5 runs) vs 3-tier deterministic post-processing gate Deterministic link and entity checks filtered 81 raw claims to 10 grounded and 24 supported badges (0% confidently wrong)
Prior work Automation bias (Parasuraman & Manzey, 2010), CACE entanglement (Sculley et al., 2015), and 3-layer audits (Mökander et al., 2023) Operationalized into EU AI Act Art. 14(4)(b) deterministic badges, SHA-256 change gates, and 4-store customer deletion
Baseline sufficiency Deterministic evidence ledger alone (0.723 AUROC) vs ledger + 4B calibration gate (0.725 Wave 2, 0.680 Wave 3) Reported exact ledger contribution (+26.0 pts over 0.463 verbalized baseline) alongside the 4B gate (+5.1 pts on Wave 3)
Cross-sectional units Prior embedding endpoint vs regional Vertex AI embedding vectors (n=26 vectors across 4.31M chunks) Verified cosine 1.0 (>= 0.99999998) prior to cutover so production retrieval required zero re-indexing

What this does not show

First, our 4-store customer exclusion and deletion runbook is mapped across PostgreSQL, cloud storage, Git case notes, and traces (4 of 4 stores mapped, 0 requests outstanding). Full single-command automation across all 4 stores and organization exclusion lists is tracked in our PostgreSQL attestation ledger. Our 6-entry-point containment targets (15-minute SEV-1 and 30-minute SEV-2) also schedule a live stop-command drill on our roadmap.

Second, hardcoded public=False and our 400-day SQL audit view guarantee that AI agents never post directly to customers. However, human engineers can still copy an inaccurate internal draft into a customer reply if they skip verification. Countering automation bias requires combining technical locks (deterministic chips and oversight banners) with ongoing operator training (11 technical enablement sessions across 5 curriculum modules).

Finally, internal engineering gates are necessary but not sufficient on their own. We take AI governance seriously enough to subject our systems, code, and processes to independent external ISO/IEC 42001 (2023) certification audits by an accredited third-party auditor. Any leader deploying AI in enterprise operations should pair internal automated gates with independent external audits.

Reproduce

All aggregate metrics in this report and its four figures are published in numbers.json, with SHA-256 file digests recorded in MANIFEST.md.

References

  • Brundage, M., Avin, S., Wang, J., Belfield, H., Krueger, G., Hadfield, G., et al. (2020). Toward Trustworthy AI Development: Mechanisms for Supporting Verifiable Claims. arXiv preprint. arXiv.
  • CEN/CENELEC. (2026). EN 18286 (prEN 18286): Artificial Intelligence - Quality Management System for EU AI Act Regulatory Purposes. European Committee for Standardization.
  • European Parliament & Council of the European Union. (2024). Regulation (EU) 2024/1689 Laying Down Harmonised Rules on Artificial Intelligence (Artificial Intelligence Act). Official Journal of the European Union.
  • ISO/IEC. (2023). ISO/IEC 42001 (2023): Information Technology - Artificial Intelligence - Management System. International Organization for Standardization.
  • Mökander, J., Schuett, J., Kirk, H. R., & Floridi, L. (2023). Auditing Large Language Models: A Three-Layered Approach. AI and Ethics. DOI.
  • Parasuraman, R., & Manzey, D. H. (2010). Complacency and Bias in Human Use of Automation: An Attentional Integration. Human Factors. DOI.
  • Raji, I. D., Smart, A., White, R. N., Mitchell, M., Gebru, T., Hutchinson, B., et al. (2020). Closing the AI Accountability Gap: Defining an End-to-End Framework for Internal Algorithmic Auditing. Proceedings of ACM FAT* 2020. DOI.
  • Sculley, D., Holt, G., Golovin, D., Davydov, E., Phillips, T., Ebner, D., et al. (2015). Hidden Technical Debt in Machine Learning Systems. Proceedings of NeurIPS 2015.