Two things get said in the same conversation. We want a pipeline with no hands in it. And nothing audits our DevSecOps. They are not two problems — they are one. Today the reviewer glancing at a green check is the control. Take that person out and you get zero touch and zero assurance at the same moment. So the work is not automating more of the pipeline. It is making the pipeline prove itself, after which taking the hands out becomes safe.
and nothing anywhere says which one
None of the following throws an error. That is precisely what makes them audit problems rather than engineering problems — engineering problems announce themselves.
Forced merges, administrative overrides, a step configured to continue on error, a scanner that "passed" because the job swallowed its own failure.
Tests deleted or quarantined to turn a build green. Coverage falls, and the build goes from red to green — which reads as progress.
Waivers with no owner and no expiry date. The finding is technically tracked and practically permanent.
The pipeline definition says the scan runs. Whether it ran on this release, against this commit, is a different question and usually an unanswerable one.
A passing gate proves the source was clean at scan time. It does not prove the artefact in production came out of that pipeline.
Somebody clicked in the console. The code still describes an environment that no longer exists.
This is measured, published, and not a matter of model quality. On a 458-task infrastructure-as-code benchmark, a frontier model that solves the large majority of ordinary programming tasks solves fewer than a fifth.
The cause is structural rather than mysterious. A correct configuration has to satisfy four constraints simultaneously, and ordinary code generation only ever faces the first.
Compliant with organisational rules — which are usually not written anywhere the generator can read.
Dependencies coherent across every referenced resource, not just locally well-formed.
Conformant to the pinned provider version. This is an API surface nobody memorises and it changes per version. A model asked to recall it invents plausible names, and plausible names are exactly what a reviewer fails to catch.
Valid against the provider plugin. The only one ordinary code generation has to satisfy.
Retrieval and repair fix different failure classes. A loop that only knows "it failed" re-rolls the dice on a cause its retry cannot address — which is why the stage that failed matters more than the number of attempts.
Read the pinned provider schema and correct against it. Never retry from memory.
The vocabulary is right and the structure is wrong. Fix the diagnostics as given.
Usually not the code at all: credentials, a held state lock, a provider version mismatch.
Valid and forbidden are different verdicts. Retrying never turns a denial into an approval.
Whether an agent's work is acceptable is usually a judgement call, which is why so much agentic work cannot be gated or priced on outcome. Infrastructure code is the exception: the plan is a deterministic statement of what will happen, produced before anything happens.
Creates and updates only. Nothing is lost if it proceeds.
Something is destroyed or replaced. A person decides.
A stateful resource would be destroyed. It does not proceed.
Free-form generation means the search space is the entire provider surface — thousands of resource types, each with dozens of version-specific arguments. Composing from an approved module catalogue collapses that to your own forty modules, and bounds the hallucination surface by construction rather than by supervision.
Every hop — specification, plan, generated configuration, validation, policy decision, apply — emits a signed verification certificate: hash-bound to the artefact it describes, verifiable against a published key, and expiring. The evidence is produced as the work happens, rather than reconstructed afterwards from logs that were never designed to answer the question.
Signed posture exports into the service-management, compliance or GRC system you already run. We are not asking you to adopt another pane of glass — we feed the one you have.
The EU Cyber Resilience Act turns pipeline hygiene from good practice into a dated legal obligation for products with digital elements placed on the EU market.
Reporting obligations apply: actively exploited vulnerabilities and severe incidents must be notified to ENISA and the relevant national CSIRT within 24 hours — including for products already on the market.
The full regime applies: secure development requirements, technical documentation, conformity assessment and CE marking. Penalties reach €15 million or 2.5% of worldwide annual turnover.
Point it at your pipelines and it reports what the gates actually did over the last N runs: bypasses taken, findings waived and never closed, steps that failed silently, and artefacts that cannot be traced back to a reviewed commit. It reads your own records — so it needs no trust from you, and no change to your pipeline.