Software development didn't just get faster. It broke shape. The old shape of plan, design, build, test, deploy is not how software gets built anymore. Now it is specs in one place, prompts in another, code written by humans and agents, architecture decisions made in a chat window, and tests generated after the fact.
The boundary around who builds is dissolving too. Engineers orchestrate agents. Product managers turn ideas into real products with the help of vibe coding. Business Analysts build workflows that touch real data and real systems. Some of it enters the formal SDLC. Some never do. All of it changes the attack surface.
The end state is becoming obvious: software factories run mostly by agents, the way lights-out factories run manufacturing lines with no humans on the floor. Some companies are already there. Most are in the awkward middle - partial adoption, uneven quality, and pressure to move faster anyway.
Strip away the noise and the goal is simple: whatever reaches production has to be secure and follow the rules you set for it. That job did not change. Everything around it did.
Shift left and DevSecOps were the right answers for their moment - but both were designed around developers making decisions. Now agents make architectural choices, wire data flows, and push work forward faster than any human checkpoint can follow. Every prompt, every PR, every agent-generated feature is an architectural decision your security team never reviewed.
The next model is not a faster human. It is an autonomous security agent operating in the same environment as the development agents - and it cannot work component by component. Attackers already don't: AI-powered attack tooling chains the design flaws, code vulnerabilities, and cloud misconfigs your agents just introduced into single exploitable paths. Scanners see files. Pipelines see changes. Attackers see weaknesses - and need only one that connects. Security has to see the product - that is where weaknesses connect: what is being planned, what is in work, and what has shipped.
That is what Product Security means now. Not security embedded in a pipeline - security as an autonomous participant in it, holding the product view through every stage: before the code, in it, and after it.
Before the code - where intent gets set and attack vectors get introduced
For business critical features and complex systems, design still deserves real scrutiny before a single line gets written. An agent factory executing a flawed design quickly is worse than a slow team building the wrong thing manually. The blast radius is bigger. A missing auth requirement, a broken tenant isolation model, an exposed data flow - these are not code problems. They are design decisions, and agents execute them at speed.
As spec-driven development matures, getting the spec right becomes the highest-leverage security investment you can make. The old way of getting it right was threat modeling - a workshop, a whiteboard, an architect asking the right questions. It worked, for the handful of features that got one. That trade dies when a product manager's spec becomes running code in a day. Autonomous review changes the economics: it reads every spec, ticket, and PRD as it is written - wherever intent lives - and asks what the architect would have asked.
What the design stage gives you is the missing context: what the feature is meant to do, who should reach it, what data it touches, and what it must never allow. Without that, the check after the code can only answer one question: is this vulnerable? With it, it can answer the ones that actually drive a decision: does this vulnerability matter, what does it cost the business, and is this what was supposed to get built?
Design is still where security starts. It is no longer where it stops. The review does not produce just a report. It produces the context the next stage runs on.
In the code - security cannot just guide agents. It has to act.
Prompts change. Models change. Agents change. The system is what accumulates - every architecture decision, every trust boundary, every data flow, every intent, layered over years. Without that context, a security agent can reason about code. With it, it can reason about the system.
Security has two jobs here: steer the work while it is written, and gate it before it merges.
Steering happens in the moment. A development agent starts wiring a new data flow - the security agent loads the live architecture, reads the trust boundaries, and if something is wrong, intervenes. Not a flag. Not a ticket. An agent with the authority to block a bad decision before it is ever committed.
The gate is the pull request - the last moment a change is still just a proposed change. Everything gets checked, every time, no matter who or what wrote the code. The gate answers one question: does this change violate a rule you already set? Hardcoded secrets, broken cryptography, and prohibited patterns do not require system-wide reasoning. They are known violations and should be stopped immediately. That is what makes the gate fast, deterministic, and difficult to argue with. Exploitability is a different question.
The PR merges. The change becomes part of the system. And exploitability lives in the system, not the diff.
After the code - where exploitable paths get validated
The change has landed. It is part of a system now. Whether it is exploitable is no longer a fact about the change - it is a fact about the system around it. The gate answered one question: did you break a rule. This stage answers the other: is there a path to exploit. The analysis starts the moment the change lands, before anything ships, and it never stops after.
First, at the repo level. A flagged line of code matters only if it plays a part in an attack path - as the way in, or as a step along the way - past the controls that exist. A vulnerable dependency only matters if the vulnerable function is reachable and exploitable with input an attacker controls. Part of no path is noise. That is how the 200-issue queue dies - validation eliminates the 195 that never mattered and confirms the five that did.
Then at the system level, continuously. Clean when it landed does not mean clean today: a new CVE drops against a dependency you merged six months ago, a cloud config drifts, another team's change opens a path through your service. The attacker does not care which PR introduced which piece - only whether a path exists through the system as it runs right now.
You hold the source, the architecture, the cloud controls, and the intent behind every feature - everything an attacker wishes they had, and you have it first. Run the real thing from the inside: continuous, white-box attack path analysis across the live system. An internal service skips authentication because nothing external can reach it. An agent builds on its API, a routing change exposes it - zero findings, one path to customer data. Only the intent recorded on day one makes the last change light up.
Not is this vulnerable - a scanner guesses at that. Is there an exploitable path, through this architecture, past these controls, into this data. You do not infer it. You validate it. The output is not a list of findings. It is a path an attacker can take, end to end.
–
The challenge has shifted. It is no longer "How do we find bugs earlier?" It is "How do we release secure software when the decisions that matter are made autonomously, continuously, and faster than any human review can follow?" That question does not have a checkpoint answer. Security cannot review decisions after they are made. It has to participate in them as they happen.
And participation is not three products at three checkpoints. It is one view of the product - planned, in work, shipped. The intent understood before the code is what makes steering possible during it, and what makes validation credible after it. Break that chain into point tools and each sees a slice; the exploitable path that matters often spans all three. That is not another scanner or another policy engine. It is a new operating model for Product Security.
We built Prime to run that model.
Before the code, it reviews design intent autonomously and records what every feature is supposed to do. In the code, it steers agents and developers with the live architecture loaded, and gates every PR on the rules you set. After the code, it validates exploitable paths continuously across the live system.
This only works as one platform. Prime can validate an exploitable path because it understood what the feature was supposed to do before the code existed, followed how it was implemented, and sees how the system and its controls connect today. That context cannot be reconstructed reliably after the fact. It has to persist from intent through implementation.
The factory is already running. Security can review its decisions after they happen, or participate in them as they are made. We built Prime for the second answer. Before the code. In the code. After the code.




