Why Shift-Left Security Keeps Failing (and What Actually Works)
Shift-left security sounds right but fails in practice. Learn why context-first AppSec and AI coding agents deliver better results than pushing fixes to developers.

Shift-left security has been the default advice in application security for over a decade: find bugs earlier, fix them cheaper, ship safer code. The problem is that it keeps failing. Security teams push findings to developers who lack the context to prioritize them, and the backlog grows instead of shrinking.
Neatsun Ziv, co-founder and CEO of OX Security and a former VP of Cyber Security at Check Point, puts it bluntly: "Shift left as a concept failed us for years. We've been trying to make it work, but it's just that everybody's got their priorities."
The failure is not a tooling problem. It is a context problem. And the fix changes how security teams think about where responsibility actually belongs.
What Shift-Left Security Promised
The original premise was straightforward. Bugs caught during development cost less to fix than bugs caught in production. If security teams could move their testing earlier in the software development lifecycle, organizations would save money, reduce risk, and ship faster.
In practice, shift-left security devops workflows added static analysis, dependency scanning, and secret detection into CI/CD pipelines. Developers got dashboards full of findings. Security teams got metrics showing earlier detection.
The theory was sound. The execution broke down at the handoff.
Why Shift-Left Keeps Failing in Practice
Shift-left security best practices assume developers can act on findings. That assumption falls apart when developers lack the context to distinguish a critical vulnerability from background noise.
Consider a typical scenario. A scanner flags a vulnerability in a dependency. The developer sees the alert but has no way to answer the questions that matter:
Is this dependency deployed to a production environment?
Does the affected code path handle externally exposed APIs?
Which databases does this service connect to?
Are there existing rate limits or input sanitization in place?
As Ziv explains, "Most of us are coming blind to those questions. Is it deployed to the cloud? I don't know. Is it right now exploitable, exposing any APIs? We're blind to that."
Without that context, developers make one of two bad choices: they either fix everything (wasting engineering time on low-risk issues) or they ignore the backlog (leaving real risks unaddressed). Neither outcome is what shift-left security promised.
The result is developer security fatigue. Teams burn out on alerts that lack actionable context, and the security program loses credibility with the people it depends on most.
Context-First Security: The Alternative That Works
The alternative is not to shift security further left or further right. It is to shift the context to wherever the code is being written.
Context-first application security prioritization means automatically enriching security findings with the data developers need to act. Instead of a raw vulnerability report, the developer sees:
Without Context | With Context |
|---|---|
CVE-2026-1234 in package X | CVE-2026-1234 in package X, deployed to prod, handles external API traffic, connected to customer database |
Priority: unknown | Priority: critical, fix this sprint |
This is not a theoretical improvement. OX Security built their platform around exactly this approach: correlating vulnerability data with deployment context, API exposure, and data flow to surface the findings that actually matter.
The shift is structural. Security teams stop being ticket generators and start being context providers. Developers stop drowning in unranked alerts and start fixing the three things that would actually cause a breach.
This principle mirrors what is happening across security more broadly. Just as zero trust microsegmentation replaced blanket perimeter rules with context-aware access controls, context-first AppSec replaces blanket vulnerability alerts with threat-relevant, prioritized findings.
How AI Coding Agents Change the Equation
The emergence of AI coding agents creates a new opportunity to apply context-first security at the point where code is generated, not after it ships.
Ziv describes the approach: "If we can load up front the context saying, you are going to touch right now with this request an API that is externally exposed, these are the databases that this app is connected to, those are the microservices that are going to be deployed in connection with it. We want you to have those security restrictions and this rate limit and this sanitization."
Instead of asking a developer to review an AI-generated pull request for security issues, the security context gets loaded into the agent before it writes the first line. The agent knows which APIs are external, which secrets belong in a vault, and which sanitization rules apply to the service it is modifying.
This is the practical application of least privilege for AI agents. The agent operates with exactly the security context it needs: not less (which leads to insecure code) and not more (which expands the blast radius if the agent is compromised).
The implications extend beyond code generation. When context is embedded in the development workflow, several downstream problems shrink:
Security review bottlenecks decrease because code arrives with security constraints already applied.
False positive rates drop because findings are pre-filtered by deployment context.
Mean time to remediation improves because developers see exactly what to fix and why it matters.
What a Context-Driven AppSec Program Looks Like
Moving from shift-left to context-first does not require ripping out existing tools. It requires changing what information those tools deliver and when.
Step 1: Map your deployment context. Know which services are externally exposed, which handle sensitive data, and which connect to critical infrastructure. This mapping is the foundation.
Step 2: Enrich vulnerability findings at scan time. Instead of delivering raw CVEs, attach deployment data, API exposure status, and data flow context to every finding before it reaches a developer.
Step 3: Prioritize by exploitability, not severity alone. A critical CVE in an internal-only test service is less urgent than a medium CVE in a production API handling payment data. Context makes this distinction visible.
Step 4: Load security constraints into AI coding tools. If your teams use AI code generation, feed security policies, rate limits, and sanitization rules into the agent's context window. Fix the code before it is written, not after.
Step 5: Measure what matters. Track mean time to remediation for context-enriched findings versus raw findings. The difference validates the approach.
Founders building security startups have seen this pattern before: the companies that win are the ones that reduce the decision burden on their users, not the ones that generate more alerts.
Listen to the Episode
Neatsun Ziv joined Jon McLachlan (co-founder of YSecurity and Cyberbase.ai) and Sasha Sinkevich (co-founder of YSecurity and Cyberbase.ai) on The Security Podcast of Silicon Valley to discuss why shift-left security failed, how context-first AppSec works in practice, and what AI coding agents mean for the future of application security.
Ziv shares specific examples from OX Security's work with enterprise customers, including how loading security context into development workflows reduced the noise developers face without slowing their velocity.
Listen to Episode 91 for the full conversation on what actually works when shift-left does not.
What does shift-left security mean?
Why does shift-left security fail?
What is context-driven application security?
How do AI coding agents improve application security?
Meet the hosts


