Try Replit, G7, refund, approval, or EU AI Act. Use the arrow keys to move and Enter to open.
Control gap classification
Thirteen ways in which an AI system’s action can get past the controls meant to stop it, in four groups. Each gap is defined closely enough that public sources can show whether it occurred. The control gap record applies them to documented incidents.
Version 0.2, released 3 October 2026. Free to use under CC BY 4.0.
What it classifies
The classification is concerned with what allowed an action to take effect once a system had decided to act. Models make mistakes, and the controls around a model determine whether a mistake causes damage.
Each entry in the record is one incident: something an automated system did, or kept doing, that had an effect outside the system. The record marks each gap the sources support. Why the system acted is recorded separately, with the outcome and the kind of harm, so that the same gap can be counted across different causes.
The approach follows one used in aviation safety. In 2000, Scott Shappell and Douglas Wiegmann described the Human Factors Analysis and Classification System (HFACS) in a report for the FAA’s Office of Aviation Medicine. HFACS sorts the human causes of accidents into four levels, from the unsafe acts of the people involved to the organizational influences behind them, so that many accidents can be compared and prevention directed to the failures that recur. This classification does the same for the controls around an AI action. Each gap describes what the sources show was missing, independent of which control might remedy it. The editor wrote the gaps alongside the architecture page on this site, and reviewers from outside G-14 will examine them before version 1.0.
The 13 gaps
The table lists the gaps by group. The last column counts the incidents in record version 0.3 that had each one.
The rule that should have stopped the action existed only as an instruction, prompt, or trained behavior of the AI system, so it held only as long as the system followed it.
Words the system produced reached customers or the public in the organization’s name, on matters people rely on such as prices, policy, law, or health, and nothing checked them first.
The action reached systems, data, or operating conditions outside those the system was built or approved for, and nothing enforced that boundary when it acted.
Each action was allowed one at a time. Nothing tracked what the actions added up to in volume, rate, exposure, or repetition until the total did the harm.
The action, or the approval of it, was based on the system’s own output or on a single unverified input. Evidence that would have shown the error was never gathered, was thrown away, or was available and not consulted.
A person was supposed to catch the error but lacked the information, time, training, or practical means to do it, so the review did not work as a check.
A decision that needed a person went through without one. The need can come from law, from policy, from the product’s own design, or from the user’s explicit instruction.
Signs that the action was wrong existed before or during the harm, but none of them could stop or hold the action, and nothing required anyone to act on them.
Nothing could stop the system in time without relying on the system itself. In the agent incidents with this gap, the only way to stop the action went through the agent.
A check that could have caught the action existed but was switched off, bypassed, set to approve automatically, or not working when the action happened.
The change that introduced the harmful behavior went live without independent review. The change can be code, a prompt, a model, a package, a configuration, or a procedure.
After the action, the only account of what the system did, or of what could be undone, came from the system itself or from the party that ran it, and that account was wrong or incomplete.
2
A. Where the limit lived
Whether anything outside the AI system stood between its decision and the effect.
G1
Instruction-only limit
6 entries in the record
The rule that should have stopped the action existed only as an instruction, prompt, or trained behavior of the AI system, so it held only as long as the system followed it.
Count it when
Sources show that a user or the organization relied on telling the system what not to do, or on behavior its maker trained into it, and the system acted anyway.
Do not count it when
A check outside the system existed and failed. Count what made it fail instead, such as G11. If no rule existed at all, count the gap that left the action uncontrolled, such as G3.
Ask about your own system
If the AI ignored every instruction it had been given, what would stop this action?
The system held the credentials or connection to carry out the action itself, so nothing outside it stood between its decision and the effect.
Count it when
The system or its tools could write, delete, pay, order, or send on their own authority, using keys, sessions, or connections they held.
Do not count it when
The output was words sent to people; count G3 instead. Access that passed through a check able to refuse the action is not direct access.
Ask about your own system
Which credentials, sessions, or connections does the AI hold that reach records, money, messages, or equipment without passing a check it does not control?
Words the system produced reached customers or the public in the organization’s name, on matters people rely on such as prices, policy, law, or health, and nothing checked them first.
Count it when
A chatbot, assistant, or automated account made a statement, offer, or piece of advice that the organization had not approved, and no check compared it with approved text or policy before it was sent.
Do not count it when
A person approved the statement without the means to catch the error; count G7 instead. If the statement passed an automated screen that missed it, it was checked, and this gap does not apply.
Ask about your own system
What does this system say that a customer, a court, or the public could hold you to, and what checks it before it is sent?
The action reached systems, data, or operating conditions outside those the system was built or approved for, and nothing enforced that boundary when it acted.
Count it when
A documented boundary existed, such as a design domain, a project folder, a development environment, or a freeze window, and the sources show that this action crossed it. A finding that the boundary was unenforced in general is not enough.
Do not count it when
The boundary appears only as guidance to the people who deploy the system, such as a model card’s advice against high-risk uses, and not as a limit on the running system.
Ask about your own system
What stops this system from acting on data, systems, or conditions outside the ones it was approved for?
Whether the check that existed could see what the system’s actions added up to, and evidence that did not come from the system.
G5
Blind to the total
8 entries in the record
Each action was allowed one at a time. Nothing tracked what the actions added up to in volume, rate, exposure, or repetition until the total did the harm.
Count it when
The harm came from many actions or repeated activations, and sources show no limit on the total, or a limit that was not connected to the action. Harm to many people from many separate actions also counts as a total when the sources show that nobody tracked it.
Do not count it when
A single action did the harm on its own, and the sources show no untracked volume or repetition.
Ask about your own system
What is the most this system could do in an hour if each action passed its checks?
The action, or the approval of it, was based on the system’s own output or on a single unverified input. Evidence that would have shown the error was never gathered, was thrown away, or was available and not consulted.
Count it when
A reviewer checked the AI’s output by asking the AI, the source material was erased, a model’s match or estimate was treated as proof, or a second input that could have caught the error was not used.
Do not count it when
The only fact is a perception or prediction error, with no sign that independent evidence was available. That error is recorded as the trigger (what started the incident), and this gap does not apply. An account given after the action is G13.
Ask about your own system
When this system’s output is approved, what evidence does the approver have that did not come from the system?
Whether people had effective authority over the action, and a way to use it in time.
G7
Review in name only
9 entries in the record
A person was supposed to catch the error but lacked the information, time, training, or practical means to do it, so the review did not work as a check.
Count it when
Sources describe approvals given without the evidence needed, supervisors who were not told how the system behaves, or supervision that relied on people paying attention when nothing in the design made sure they would.
Do not count it when
No person was involved at all; count G8 instead.
Ask about your own system
For each approval step, what does the approver see, how long do they have, and how often do they say no?
A decision that needed a person went through without one. The need can come from law, from policy, from the product’s own design, or from the user’s explicit instruction.
Count it when
Determinations with legal or financial effect were fully automated, or an agent acted where its user or its maker required confirmation first.
Do not count it when
A person did decide, but without the means to decide well; count G7 instead. A mode or flag had switched the confirmation off; count G11 instead.
Ask about your own system
Which of this system’s actions are supposed to need a person, and what makes sure they get one?
Signs that the action was wrong existed before or during the harm, but none of them could stop or hold the action, and nothing required anyone to act on them.
Count it when
Alerts, error messages, detections, complaints, legal advice, or published findings reached the organization or the system before the harm or while it continued, and the action went on.
Do not count it when
The warning came only after the harm was complete, or it was general guidance, such as a model card or a recommendation to an industry, rather than a sign about this system’s actions.
Ask about your own system
When this system’s own monitoring detects trouble, what holds the next action automatically?
Nothing could stop the system in time without relying on the system itself. In the agent incidents with this gap, the only way to stop the action went through the agent.
Count it when
People tried to stop the system through the system and failed, had to reach the machine in person, or had no procedure to halt it while the harm went on.
Do not count it when
Nobody needed to stop the system before the harm was done.
Ask about your own system
If this system stopped responding to you, how would you stop it, and how long would that take?
Whether safeguards stayed on and changes were reviewed before they went live, and whether anyone could learn what the system did without relying on its own account.
G11
Safeguard off
8 entries in the record
A check that could have caught the action existed but was switched off, bypassed, set to approve automatically, or not working when the action happened.
Count it when
A safety function was disabled to reduce false alarms or friction, an auto-run mode was on, a confirmation was skipped with a flag, or an alert was broken.
Do not count it when
The check never existed. Count the gap its absence left.
Ask about your own system
Which of this system’s safeguards can be switched off, set to approve automatically, or stop working without anyone noticing?
The change that introduced the harmful behavior went live without independent review. The change can be code, a prompt, a model, a package, a configuration, or a procedure.
Count it when
Sources show a deployment without a second check, a modification that went around code review, an update adopted without review, or a design change whose safety analysis was not updated.
Do not count it when
The change was reviewed and approved.
Ask about your own system
Who reviews a change to this system’s prompts, tools, models, and dependencies before it goes live, and where is that review recorded?
After the action, the only account of what the system did, or of what could be undone, came from the system itself or from the party that ran it, and that account was wrong or incomplete.
Count it when
An agent misreported what it had done or whether it could be reversed, and the user relied on it; or an operator’s report was the record a regulator or court relied on, and it left out what happened.
Do not count it when
The account was checked against an independent record before anyone relied on it, or nothing shows it was wrong.
Ask about your own system
If this system’s own logs and reports were wrong, what independent record would show what it did?
For each gap, the table gives the controls most closely aimed at it in the frameworks mapped on the frameworks page. “None” means the editor found no control in that framework aimed squarely at the gap. For G3, statements an organization can be held to, the only partial match is the misinformation risk in the OWASP LLM Top 10 (LLM07:2026), which is why contract clause C-1 lists such statements among the actions to be registered. The mappings are the editor’s own.
The table compares the gaps with two published specifications and one open-source runtime that check an agent’s actions as it runs. The specifications page describes what each one provides for each gap. The comparison is the editor’s own.
AddressedThe document requires or provides a control aimed squarely at the gap.
PartlyThe document covers part of the gap, makes the control optional, or leaves a named part of it open.
Not addressedThe editor found nothing in the document aimed at the gap.
Each gap, and how far each specification addresses it
The trigger records what started the incident. It is kept apart from the gaps so that the same gap can be counted across different causes.
Model error
The model or perception system produced a wrong output, or took an action its developer did not intend, from ordinary input.
Manipulated input
A user or third party steered the system with crafted input.
Faulty or malicious change
A change to code, a prompt, a package, or a configuration introduced the behavior.
Conventional fault
A defect in conventional software or hardware, or a faulty sensor.
Working as designed
The system did what it was built to do, and the design was wrong or unlawful.
Outcome
Harm
The action caused harm: death or injury, financial loss, loss or exposure of data, a denial of rights or benefits, or a statement the organization was held to. This follows the OECD definition of an AI incident.
Near miss
An action that would have caused harm was set in motion, and the harm was avoided by chance or late intervention.
Hazard
The action happened and could plausibly have caused harm, but no harm was reported. This follows the OECD definition of an AI hazard.
Kind of system
Agent with tools
An AI system that acts through tools, credentials, or a computer.
Conversational assistant
A chatbot or automated account that talks to customers or the public.
Generative model in a workflow
A model whose output people put into records, filings, or reports.
Perception and control
A system that senses the road and controls a vehicle.
Predictive or matching model
A model whose scores, matches, or valuations drive decisions.
Conventional automation
Rule-based or conventional software, included as a precedent.
Kind of evidence behind each gap
Each gap marked in the record has a label for the strongest kind of evidence that shows it.
Finding
Determined by an investigator, court, tribunal, regulator, or public inquiry.
Admission
Stated by the organization itself, including in a filing, a statement, or an agreement.
Allegation
Claimed in a complaint or lawsuit and not determined. A court’s summary of the claims, and a settlement without admission, leave it an allegation.
First-hand account
Stated by a person directly involved.
Reporting
Established by a news organization’s own reporting or by independent research.
Confidence
Each entry carries one rating, set by the weakest evidence behind any of its gaps.
High
Each gap marked is stated in an official finding, in a statement or filing by the organization itself, whether it published the document or an authority released it, or in an independent technical analysis of the system’s code or records.
Medium
At least one gap rests on an allegation not yet decided, on news reporting, on the organization’s statements as relayed by others, or on accounts by people involved that other sources corroborate, or is inferred from what the sources state.
Low
At least one gap rests on a single account that no other source confirms.
Harm and sector
Harm types: Death or injury; Money; Data and records; Rights and liberty; Public statements. Sectors: Software and IT; Consumer and retail; Transportation; Government services; Healthcare; Finance and real estate; Policing and courts; Media and platforms.
Rules for applying the gaps
One incident per entry. An entry covers one action that had effects outside the system, or a run of the same action by the same system.
All supported gaps are marked. Most incidents have more than one gap, and each is marked.
Only what the sources support. A control the sources do not mention is not assumed to have been missing. Where gaps were considered and left out, the entry lists them with the reason.
Causes are recorded separately. Why the system attempted the action is recorded as the trigger. A model’s mistake, a misclassification, or a bad forecast is never a gap by itself.
Each gap shows its evidence. For each gap, the entry quotes or summarizes the supporting passage, names the source, and states what kind of evidence it is: a finding, an admission, an allegation, a first-hand account, or reporting.
G6 and G7 often go together. G6 records that independent evidence was missing, and G7 records that the person approving could not make up for it. Both are marked when the sources support both.
Near misses are included. When harm was avoided by chance or by late intervention, the gaps marked are those that would have let the action through if it had run its course.
Older automation is treated the same way. Incidents involving conventional automation are included when the controls that failed are of the same kind. They are marked as precedents and counted separately.
Checked from outside before version 1.0. No one outside G-14 has checked the entries in this release. Before version 1.0, at least two reviewers outside G-14 will mark the gaps in each entry from its sources, without seeing the record’s answers or each other’s. Their agreement with each other and with the record will be published, and each disagreement will be settled against the sources.
Numbers do not change. Gap numbers and entry numbers are never reused. If a gap is retired, the entries that had it keep it, with a note.
What goes into the record
An automated system took an action, or people acted on its output, with an effect outside the system: on records, money, messages, vehicles, legal standing, or statements made in an organization’s name.
It happened during ordinary use of the system, or in a test, evaluation, or training run whose actions reached systems or people outside it. Studies and red-team exercises whose effects stayed inside the test are left out.
The sources describe how the system’s output led to the effect clearly enough to tell whether each control was present.
At least one primary source exists: an official record, a court or regulator document, a company statement, or a first-hand account. Where the only primary source is a party to the incident, independent reporting is also required.
The system is an AI system in the OECD’s sense, one that infers from its inputs how to produce outputs such as predictions, content, recommendations, or decisions. Conventional automation qualifies as a precedent.
Outcomes follow the OECD’s definitions. An AI incident is an event in which an AI system leads to harm, and an AI hazard is one that could plausibly lead to harm. The OECD counts near misses as AI hazards. The record lists them separately as near misses, meaning actions that were already under way and would have caused harm if luck or a last-minute intervention had not stopped them.
Relation to other work
Several other groups collect and classify AI incidents, and this classification is meant to be used alongside their work.
Collects reports of AI incidents and sorts them with three classifications: the Center for Security and Emerging Technology’s AI Harm Taxonomy, which describes incidents and their harms for public policy; the Goals, Methods, and Failures taxonomy, which covers the technical and process factors behind an incident; and the MIT AI Risk Repository’s taxonomies. Entries in this record link to the database where an incident number is confirmed.
Classifies incidents from the AI Incident Database by harm severity, EU AI Act risk level, cause, and risk domain. The tracker uses language models for this and measures how well they agree with human reviewers.
Run by the Centre for Long-Term Resilience, it collects posts on X that report AI systems acting against their users’ intentions, such as ignoring instructions or getting around safeguards. A language model scores each report out of 9 for the credibility of its evidence, and reports scoring 5 or more are counted as incidents.
Catalogs the tactics and techniques of attacks on AI systems, with case studies.
Research taxonomies
Some classify what goes wrong inside agents, such as AgentRx for failed agent runs and Shah and colleagues for faults in agentic software. Others, such as Popchanovska and colleagues, classify the responses reported after an incident by the organizations involved and by regulators.
Agent incident mappings
Two recent efforts are the closest to this one. The Cloud Security Alliance’s analysis of 10 agent incidents (March 2026), a companion to its Agentic AI Autonomy Levels and Control Framework, lists the controls each incident was missing, such as per-action approval, boundary enforcement, and an independent kill switch. The Agent Incident Registry (Kumar and colleagues, September 2026) catalogs 487 agent-related events and records which guardrails the sources describe. Both cover agents only, and neither publishes rules for checking incidents against a fixed set of gaps.
Safety engineering has a longer tradition of analyzing accidents against the controls or barriers that should have stopped them, and this classification borrows from it.
STAMP and CAST
Nancy Leveson’s systems-theoretic accident model, described in Engineering a Safer World (MIT Press, 2012), treats an accident as a failure to enforce safety constraints on a system’s behavior rather than as a chain of component failures, and CAST applies the model to incident investigation. Its premise that a controller outside the process must enforce the constraint is close to the premise of this classification, which differs in fixing 13 gaps in advance so that many incidents can be marked the same way and compared.
MORT
The Management Oversight and Risk Tree, developed for the US Atomic Energy Commission in the 1970s, analyzes an accident against a fixed tree of barriers and management controls and judges each one “less than adequate” where it failed. It is the closest precedent for checking incidents against a fixed list of controls, although it was designed for industrial operations. MORT is described in the NRI MORT User’s Manual.
Barrier-based analysis
Bow-tie diagrams and barrier-based investigation methods trace an incident to the barriers that were missing or failed, as in Pitblado and colleagues’ method for barrier-based incident investigation (2015). Each gap in this classification names a barrier, fixed in advance, that an AI system’s action got past.
The Swiss cheese model
James Reason’s model of layered defenses treats each defense as a layer with holes, which can line up to let a hazard through. The classification names the holes an AI system’s action passed through.
The editor knows of no other public classification that checks incidents against a fixed set of barriers at the point where the action takes effect, across all kinds of automated systems from agents and chatbots to conventional automation. We will cite any that readers send us, with an explanation of how the two relate.
Practice and proposals
The practice tool presents an incident from the record, asks which gaps the facts support, and compares the answer with the record gap by gap.
The classification will change as the record grows. Proposals for a new gap, a clearer definition, or a different gap for an entry should include the incidents that support them. We answer each proposal in writing and publish the answer with the next version.
Email ecl@g14.ai with “ECL classification” in the subject line.
External Control Layer. Control Gap Classification, version 0.2. Maintained by G-14, Inc. Released 3 October 2026. https://externalcontrollayer.ai/classification
Versions
3 October 2026Version 0.2, the first public release. A test, evaluation, or training run now qualifies for the record when its actions reached systems or people outside it. The rule in the 0.1 pilot left out all tests, including evaluations in which agents broke into other companies. No gap or definition changed.
PilotVersion 0.1, an internal pilot that was not released: 13 gaps in four groups, applied to 25 incidents. In marking those incidents, the editor separated accounts given after an action from evidence recorded at the time of the action, and G13 came from that distinction.
Share this pagehttps://externalcontrollayer.ai/classificationEmailLinkedIn