AI and Automation

Human-in-the-Loop Gates: Designing Approval Checkpoints

22 September 2026 7 min read

A human-in-the-loop gate is the point in an automated pipeline where a person’s decision replaces the system’s default action. Place gates in the wrong spots and one of two failure modes shows up within a month: either reviewers are asked to approve so many low-stakes actions that they stop reading and start clicking, or a genuinely destructive step (a patch, a service restart, a firewall rule change) runs unattended because nobody thought to gate it. Designing gates well means deciding exactly which four moments in the pipeline need a human, what information the approval screen must carry, how timeouts resolve, and how a team earns the right to remove a gate later without losing the audit trail that justified removing it.

Where Gates Belong in an Automated Pipeline

Not every automated step deserves a gate. A gate that fires on every low-severity finding or every routine dependency scan trains reviewers to approve without reading, which defeats the purpose of having a gate at all. Reserve gates for the moments where an action is either irreversible, expensive to undo, or changes what the organization can see going forward.

Before execution

Any step that writes to a production system, applying a patch, restarting a service, rotating a credential, or modifying a firewall rule, belongs behind a gate unless that exact change has already been validated in a staging environment with a matching configuration. The gate should trigger on the class of action (a write operation against a live host) rather than on the scanner’s confidence score, because a high-confidence vulnerability finding can still pair with a low-confidence remediation script.

Before closure

Closing a ticket removes a finding from every dashboard and SLA clock the security team tracks. If closure happens automatically whenever a retest passes, one flaw in the retest logic, say, a scanner that reports success on a timeout instead of a real check, silently erases a finding that is still live. A closure gate should require attached retest evidence: a second scan result tied to the same check ID, not a repeated exit code from the patch command.

Before suppression

Suppression, marking a finding as accepted risk, false positive, or out of scope, is the action most often used to make a dashboard look clean without changing anything on the host. Every suppression request should carry a named owner, an expiration date, and a reason code drawn from a fixed list: compensating control in place, confirmed false positive with evidence attached, business exception approved by a named role, or risk formally accepted. A free-text box alone does not hold up during a PCI DSS or ISO 27001 audit.

Before scope change

Adding or removing hosts, subnets, or asset groups from scan coverage changes what the platform will see from that point forward. Removing a subnet from discovery is functionally identical to suppressing every current and future finding on that subnet in one action, so it deserves the same review depth as a suppression request, not the lighter sign-off usually given to routine configuration edits.

What an Approval Screen Must Show

A request that reads “Approve remediation for CVE-2024-3400 on host 10.2.4.17?” forces the reviewer to either approve on trust or open two or three other tools to get context. Under time pressure, the second option rarely happens, so the screen itself has to carry enough information to decide without leaving it.

Field What it must contain
Action The exact command, API call, or patch package that will run, not a paraphrase of it
Target Hostname, IP, asset owner, and environment tag (production, staging, dev)
Reasoning Which scanner or scanners confirmed the finding, the validation method used, CVSS score, and known exploitability signals such as a public exploit or active scanning activity
Rollback The exact reverse action, who is authorized to run it, and the time window during which rollback is still safe

The rollback field is the one teams skip most often, and it is the one that determines whether a reviewer is deciding on a reversible step or a one-way door. Platforms that automate the remediation phase, such as SITEY, attach the specific patch command and its paired rollback command to the same approval record, so the person clicking approve can see both actions before committing to either one.

Designing Gates That Do Not Become Rubber Stamps

A gate only works if the reviewer is actually evaluating the request. Two metrics catch a rubber stamp before it becomes a habit: approval rate and median time-to-decision. If a given gate type is approved more than roughly 98 percent of the time with a median decision time under ten seconds, the reviewer is not reading the reasoning field, they are clicking through it. At that point the gate should either be removed (see progressive autonomy below) or redesigned, because a gate nobody reads provides no actual control while still slowing the pipeline down.

Three practices reduce rubber-stamping in practice. First, require a short justification on approve, not only on decline; typing even one sentence forces a moment of attention that a single click does not. Second, rotate which team member sees a given gate type week to week, since a fixed reviewer becomes desensitized to a repetitive queue faster than a rotating one. Third, run periodic sampling audits where a second person reviews a random slice of already-approved actions after the fact, independent of whether anything went wrong, to catch drift before an incident forces the review.

Timeouts, Defaults and Escalation When Nobody Approves

Every gate needs a defined answer to “what happens if nobody responds,” and for any action that writes to production the default on timeout must be no action, not auto-approve. Auto-approving on timeout turns the gate into a delay mechanism rather than a control, and it means an attacker or a misconfigured job only has to wait out the clock.

A workable escalation pattern ties SLA windows to severity and environment rather than using one blanket timer: four hours for a critical finding on a production asset, twenty-four hours for high severity, seventy-two hours for medium. When a window lapses, the request escalates to the next role in the chain (team lead, then on-call) rather than resolving itself. The gate configuration should log every escalation hop with a timestamp, because a pattern of repeated escalations to the same secondary approver usually means the primary approver’s queue is too large, which is itself a signal to revisit gate placement.

Progressive Autonomy: Earning the Right to Remove a Gate

The end goal of a mature autonomous operations program is not zero gates, it is gates placed only where they still add signal. Removing a gate should be evidence-driven and scoped narrowly, to a specific action-and-target combination rather than an entire severity tier. A reasonable bar: a given check-and-remediation pair clears a defined number of consecutive cycles, for example ninety days or twenty-five occurrences, with zero rollbacks and zero reviewer rejections, before the gate for that specific pair is relaxed to notify-only.

Some platforms track this at the pair level automatically. SITEY, for instance, keeps a rolling outcome window per scanner-and-check combination and offers to relax the gate for that combination once it clears its threshold, instead of granting blanket autonomy across a whole severity tier the moment one instance succeeds. Even after a gate is relaxed, keep sampling audits running on a small percentage of the now-unattended actions; autonomy earned under one configuration can silently stop applying once a dependency, a patch source, or an asset owner changes.

Recording Approvals as Audit Evidence

An approval record is only useful as evidence if it captures the full context shown at decision time, not just the current state of the ticket. At minimum, store the reviewer’s identity, a timestamp, the action, target, reasoning, and rollback fields exactly as they appeared on screen, the decision itself, and any justification text. Declined requests need the same treatment plus the reason for the decline and whatever happened to the underlying finding afterward, since an auditor reviewing ISO 27001 change management controls or a PCI DSS assessor will ask what became of a rejected remediation, not only whether it was rejected.

Retention periods should follow whichever compliance framework applies to the environment, whether that is SOC 2 change management evidence, GDPR or KVKK data-handling logs, or BDDK requirements for regulated financial infrastructure. The record itself should be append-only or hash-chained so an approval cannot be edited after the fact; a mutable approval log is not meaningfully different from having no gate at all, because it cannot prove what a reviewer actually saw. SITEY, for example, stores the retest evidence and the reviewer’s decision on the same retest and closure record, so an auditor can reconstruct why a finding was closed without cross-referencing a separate ticketing system.

About SITEY

SITEY is an autonomous vulnerability management platform. It discovers, validates, prioritizes, remediates and re-tests vulnerabilities through an eight-phase automated pipeline, unifying output from 17 integrated scanners. SITEY is self-hosted: it runs in your own infrastructure and your findings are stored there. Outbound connections are limited to licence activation and the optional services you enable, such as an AI provider, CVE enrichment and patch catalogues. Pricing is 599 USD per month or 5,999 USD for a perpetual lifetime license. See pricing or how the platform works.

SITEY closes the loop, not just the report.Discover, validate, fix and verify in your own infrastructure.

See pricing