AC/DC governs the code agents write. Runtime enforcement governs what agents do.

6 min read · For engineering leaders adopting Sonar's Agent Centric Development Cycle

TL;DR: Sonar's AC/DC framework (Guide → Generate → Verify → Solve) is a code-quality lifecycle for agentic development. It has no Pre-Execution Gate stage. The highest-blast-radius agent failures — destructive shell, unauthorized MCP calls, force-push to main, secret exfiltration — never become committed code. They are runtime actions that happen between Generate and the next Guide loop. PreToolUse runtime enforcement is the layer that closes that gap. The two compose: AC/DC verifies the code, runtime enforcement verifies the action.

What AC/DC is

Sonar published the Agent Centric Development Cycle (AC/DC) in early 2026 as a framework for teams shipping AI coding agents at scale. The New Stack covered it as the governance framework teams should reach for. Four stages, each feeding the next, with outputs from Verify and Solve looping back into Guide:

Stage What happens What it inspects
Guide Hand the agent your standards, architecture, and constraints before it writes a line of code. Prompts, context packs, conventions.
Generate The LLM produces the code it believes will achieve the desired outcome. Nothing yet — pure generation.
Verify Mandatory verification of the generated code — static analysis, security hotspots, coverage, duplication. Committed source code.
Solve Fix the issues Verify surfaces, so the next iteration is cleaner. Issues, lessons.
"In an agentic development model, the primary challenge is no longer writing code; it is creating a system that makes generated code trustworthy." — Sonar, on AC/DC

That's a correct framing for the code-quality slice of agentic governance. It is also the slice Sonar happens to own. The framework is honest about that — it is explicitly a code-trust framework, not an action-trust framework.

The structural gap: no Pre-Execution Gate

Look at the four stages again. Verify inspects code the agent already wrote. Solve fixes that code. Guide informs the next generation. Nowhere in the loop is there a stage that intercepts an action the agent is about to take.

That matters because the failures that wake operators at 2 a.m. are rarely "the committed code had a bug Verify missed." They are:

None of those produce committed source code that Verify can read. They are runtime actions that happen between Generate and the next Guide loop. By the time AC/DC's Verify stage runs, the damage is done.

The gap in plain terms: AC/DC governs what the agent writes. The unsolved layer is what the agent does — tool calls, shell commands, file writes, MCP invocations, outbound network calls — before any of those actions become text that a static analyzer can see.

Where runtime enforcement plugs into AC/DC

ThumbGate operates at the PreToolUse boundary inside the agent runtime — Claude Code, Cursor, OpenAI Codex CLI, Google Gemini CLI, Sourcegraph Amp, Cline, OpenCode, Claude Desktop. When the agent is about to execute a tool call, ThumbGate inspects the proposed call and returns allow, warn, block, or route-to-human. The boundary is the runtime, not the file system.

Mapped onto AC/DC, that lands in two stages:

AC/DC stage What runtime enforcement adds
Guide Local prevention rules promoted from prior failures (auto-generated from feedback hooks) become part of the context handed to the agent. The agent doesn't just see "your team's standards" — it sees "your team's standards plus a list of specific tool-call patterns that have caused incidents here."
Verify (runtime) A second Verify pass runs at PreToolUse: before the agent's proposed tool call executes, ThumbGate checks it against the local lesson DB, allowlists, and policy bundles. Allow, warn, block, or route. Evidence is logged structurally so reviewers can audit decisions later.

Verify of code

Static analysis on committed source code. Catches quality, security, and duplication issues after the diff exists. This is what Sonar does well, and what AC/DC's Verify stage maps to.

Verify of action

Runtime inspection of the proposed tool call before it fires. Catches destructive shell, unauthorized MCP, secret exfiltration, force-push, and out-of-scope file writes — before they become incidents.

The two-layer deployment for an AC/DC team

If your team already runs Sonar (or any static-analysis Verify stage), the integration story is short and additive:

  1. Keep AC/DC's Verify on code. Sonar, SonarQube, or your existing static-analysis pipeline continues to inspect the source the agent produces. Nothing changes there.
  2. Add a Verify-of-action layer at the PreToolUse boundary. Install ThumbGate in the agent runtimes your developers actually use. The runtime now inspects every proposed tool call against your local rules and the prevention-rules.md generated from prior failures.
  3. Wire the feedback loop back into Guide. Every blocked action becomes a lesson. Lessons promote to prevention rules. Prevention rules become part of the context the next Guide iteration hands to the agent. AC/DC's loop closes one stage earlier.
Sales line: If your team adopted AC/DC and stopped at Verify-of-code, you are governing what the agent wrote and not what the agent did. Add the Pre-Execution Gate before the next blast-radius incident teaches you which half of the loop was missing.

What this looks like in a buyer demo

  1. One AC/DC iteration where Sonar's Verify catches a real code-quality issue in generated code. Good. That's what AC/DC promises.
  2. One proposed tool call (git push --force origin main) blocked at PreToolUse before execution. Evidence logged.
  3. The blocked call promoted to a prevention rule. The next agent run sees that rule in its Guide context.
  4. An export a reviewer or risk officer can inspect: allowed calls, blocked calls, overrides, rule-promotion history.

FAQ

Why doesn't AC/DC name a Pre-Execution Gate stage?

AC/DC is framed by Sonar, whose product surface ends at static analysis of code. Naming a runtime-action stage that Sonar doesn't ship would be marketing against itself. The framework is internally consistent for the slice it owns; it just doesn't claim coverage of runtime actions. That's the gap a runtime-enforcement layer fills.

Can I run ThumbGate without Sonar, or vice versa?

Yes to both. ThumbGate adds runtime-action Verify regardless of what static-analysis tool runs alongside it. AC/DC's Verify stage can be filled by any static-analysis pipeline. They are independent layers.

Where do prevention rules come from?

From your team's own incidents and feedback. ThumbGate captures thumbs-down events via feedback hooks, promotes recurring failures to the local lesson DB, and synthesizes prevention rules that survive model upgrades and prompt resets. The rules are local to your team — they encode your specific failure patterns, not generic SOC2 boilerplate.

Does ThumbGate work with Claude Code only?

No. The PreToolUse boundary exists in Claude Code, Cursor, OpenAI Codex CLI, Google Gemini CLI, Sourcegraph Amp, Cline, OpenCode, and Claude Desktop. ThumbGate's adapter matrix covers all of them. One rule set, every agent runtime.

Close the pre-execution gap in AC/DC

Install runtime enforcement at the PreToolUse boundary across every agent your team uses. Local rules, hosted evidence, no static-analyzer in the path.

$ npx thumbgate init
Try it now: npx thumbgate init GitHub →