← q52 Labs

Autonomous Engineering Workflow

Isometric factory with workers and conveyor belts producing metal gears

The concern this page answers: How do we keep our detection capabilities up-to-date?

New threats and IoCs are surfaced all the time.
Engineering detection capabilities need to be continuously reviewed and updated. .

Four gates and one soak reads like bureaucracy.
The objection is fair on its face. Indeed, every gate is a place work can stall, and detection engineering competes with attackers who do not hold change advisory boards.

The answer is not fewer gates. It is that most of what used to make a gate expensive was clerical, and clerical work is exactly what agents absorb.

What each gate actually costs now

GateHistoricallyNow
1. Engineering ValidationRead the standard, hand-check identifiers and field mappings, hope you did not miss a required sectionvalidate_rule.py, about a second. Reads naming-registry.yaml, so it fails an unallocated family or band by name and tells you which one
2. Independent ReviewSchedule a peer, wait for a slot, get inconsistent depth depending on who was free/raas-review against a published six-dimension rubric, on demand, same rubric every time
Soak stages 1 and 2A calendar commitment nobody owned, often skipped under pressureA waiting period, not a meeting. The rule runs with alerting off while you do other work. Evidence accumulates in the package working tree
3. CABJudgementStill judgement. Unchanged
4. Alerting change requestFrequently bundled into deployment and never explicitly decidedStill judgement, now explicit and per environment

Two of six steps need a human, and they are the two that commit the organisation to a real cost:
absorbing alert volume, and pointing alerts at an analyst queue.

Where the gates stopped being paperwork

The governance file is the mechanism. Everything a gate needs to know is a field, so the tooling can check it instead of a person remembering to:

  • detection.data_sources[].telemetry_verified — Phase 0’s telemetry check. An unverified required source is recorded and warned on, and travels with the rule to review and CAB. It does not block.
  • governance.soak.stage1_cw_security.days — the seven-day floor. promote_rule.py refuses --to alert below it, and refuses outright if logic_changed_during_window is set, because the clock restarts when logic changes.
  • governance.alerting_cr.<environment>.cr_ref — Gate 4. Two environments, two decisions, two change requests. Enabling alerting on cw-security does not authorise it on customer tenants.

None of that is new policy. It is the same policy, moved from prose a person had to remember into fields a script can enforce — which is what makes it cheap to comply with and hard to skip by accident.

What the agents do

 AgentPurpose 
mdr-governance-agentAligns
mdr-rule-engineerTakes a detection intent through Phases 0–3: telemetry feasibility, identifier assignment, prior-art search across the corpora, and the full four-part operational package. Stops at authoring.
/rule-reviewGate 2, against the published rubric. Never on content it authored — an agent that writes and then scores its own rule has produced two opinions from one source, not a gate.
Hunting agents
(next phase)
Continuous retrohunt over deployed content, feeding observed volume and false-positive drift back into the tuning cycle

Both shipped agents run out of the repository, so a contributor gets them by cloning it. Point Claude Code or Codex at the folder root and ask.

What agents are not allowed to do

The separation of duties is the entire reason the gates mean anything, so it is enforced rather than encouraged:

An agent never enables alerting, never reviews its own work at Gate 2, never sets CWRuleSetID, never shortens a soak, and never deploys. It prepares content and evidence; a human with platform authorisation decides and deploys.

An agent that could approve its own detection into an analyst queue would not be an efficiency gain.

Why this makes the throughput argument

Speed came from removing clerical latency

  • A rule that fails Gate 1 fails in a second, not after a review cycle. Bad submissions stop consuming reviewer attention.
  • Prior-art search is cheap enough to actually do, so “adopt the legacy rule” beats “author a near-duplicate” — which is where most of the real coverage gain is. We run 481 production rules that predate this framework; bringing one into governance is worth more than writing its twin.
  • Review depth is consistent, so a PASS means the same thing regardless of who was available.
  • The soak is the only genuinely slow step, and it is slow on purpose. Seven days of measured volume is what stops an uncharacterised false-positive rate landing on the analyst queue — the failure mode that gets rules disabled instead of tuned, which costs far more than seven days.

Discover more from q52.ai

Subscribe now to keep reading and get access to the full archive.

Continue reading