AI has changed how software gets written faster than most organizations have updated their methods for how software gets checked. That gap raises fair questions. If an LLM can write code, explain a license, and conduct code reviews in minutes, what does that mean for software composition analysis?
In the enterprises we work with, the people asking are rarely proposing to swap one for the other. Rather, they want a clear way to explain the relationship, so that nobody in the organization, whether a budget owner, a new engineering lead, or an executive reading about AI, concludes too hastily that something as consequential as SCA can be handled by a prompt or a weekend project.
That clarity matters as the market reacts to big news like Adobe clone, Artcraft or Anthropic building its own internal Git replacement. It’s natural for business leaders to panic a bit and think “what should we be vibe-coding ourselves?”. But consider the function and use case. In automotive, semiconductors, telecom, and other regulated industries, an SBOM is something you may have to defend to a regulator, a customer, or an acquirer. Getting the roles of AI and SCA right is part of getting that defense right.
The short version: LLMs and SCA are not competing for the same job. An LLM can make an SCA workflow faster and easier, and SCA increasingly needs AI to keep pace with how code is now written – or generated. Here is why, and how the two fit together.
Generating an answer is not the same as identifying code
An LLM predicts plausible text. Ask it what license a file is under and you will get a confident, well-formatted response. Sometimes it reads a license header and gets it right. Often there is no header. The code was copied, modified, or arrived as a fragment, and the model is reasoning from resemblance.
SCA identification is a different kind of problem. It is a lookup against evidence: fingerprint a file or snippet, match it against a knowledge base of known open source, and trace it to an origin and a license. A finding is either supported by a match or it is not, and you can show the match.
That distinction matters most where the risk is highest. The code most likely to create license or security exposure is the code nobody declared: a function pasted from a forum years ago, a vendored library with its header stripped, a block of code an AI assistant reproduced from its training data. Those are the cases where an LLM has the least to go on and a match-based scanner does its most important work.
The same applies to a vibe-coded scanner. Wrapping a model around a package manifest parser finds declared dependencies, which is the easy part. The model then fills in the rest with guesses that look like reasonable findings on the surface.
For global enterprises, that lack of visibility into decades of legacy unmanaged code with unknown AI-generated code piled on top makes it more urgent than ever to have accurate code snippet detection that’s resilient in the face of modifications.
What the evidence says
Phil Odence at Black Duck recently published a thoughtful look at this question, and the data he brings together is worth reading.
He points to LiCoEval, an academic study that tested 14 LLMs on identifying the licenses of open source code the models themselves had reproduced. That is a best case, since the model has seen the code before. By his summary, accuracy on permissive licenses landed around 70 to 80 percent. On copyleft licenses it was far worse, with the best model reaching about 40 percent on the most problematic licenses. His own experiments put the best models at roughly 75 to 80 percent accuracy for component identification.

Two things stand out to me.
First, the gap is in the wrong place. Copyleft licenses such as the GPL can introduce significant obligations around source code availability, distribution, and compatibility with proprietary licensing. A tool that does reasonably well on MIT and Apache but misses most GPL code is weakest exactly where you need it to be strongest.
Second, the gap may widen. As Odence notes, model providers increasingly exclude copyleft code from training data to avoid reproducing it. That is sensible risk management for them, but it means future models may recognize copyleft code even less reliably by not having knowledge of it.
There is a knock-on effect as well. If you miss the component, you miss its vulnerabilities. One wrong identification produces a wrong license, a wrong set of CVEs, and an SBOM that is wrong in ways nobody was warned about.
Is 80 percent good? For some tasks, yes. In an intellectual property or license compliance audit, the 20 percent you cannot see is the whole question.
Why homegrown approaches struggle at enterprise scale
Accuracy is only the first consideration in understanding the right relationship between SCA and LLMs. Here are a few more:
- The knowledge base. Identification is only as good as what you match against. Building and curating a knowledge base of open source at the file and snippet level takes years. An LLM’s training data is not a substitute. You cannot query it, version it, or ask it where a fragment came from.
- Scale and cost. Odence describes roughly 10 million lines of code as a typical audit. Many enterprise codebases are much larger once you count firmware, SDKs, and decades of internal code. SCA’s fingerprinting at that scale is efficient. Having a model reason through every file, on every scan, for every release, is slow and expensive, and the token consumption bill grows with every commit.
- Repeatability. Run the same prompt twice, and you may get two different answers. Change the model version and results shift again. A scan you cannot reproduce is hard to rely on and harder to defend.
- Total cost of ownership. A vibe-coded tool is easy to start and expensive to own. Someone has to keep it working as models, APIs, and package ecosystems change, and that person usually has a different day job.
None of this is a criticism of the curiosity behind these experiments. It is a reminder that the hard part of SCA was never the interface. It is the data curation and the matching methods underneath.
What regulated enterprises need from SCA
The customers I spend most of the time with build software that ends up in cars, chips, network devices, and medical and industrial equipment. Their requirements are shaped by regulations such as the EU Cyber Resilience Act, standards such as OpenChain (ISO/IEC 5230), and customer contracts that now ask for SBOMs.
When I listen to how they describe what they need, three words keep coming up:
- Evidence. For every component: where was it found, what did it match, and why is the associated license what it is?
- Determinism. The same code, analyzed with the same rules and knowledge base, should produce consistent, reproducible results.
- Defensibility. When a customer, auditor, or acquirer questions a finding, there is a trail that holds up.
An LLM struggles with the first by design. It can explain its reasoning, but the explanation is generated too. “The model said so” is not something a compliance team can take to a regulator or a deal team.
This is also why FossID intentionally took an expert systems approach with ID Assist in 2024: rule-based logic that captures how experienced auditors make decisions, applied the same way every time. We wanted the speed of automation without results we could not explain.
A better pattern: agents on top of real SCA
This is where the question gets more interesting. The choice is not LLM or SCA. It is what each should be responsible for.
In April we announced Agentic SCA, which is built on that view. Instead of asking a model to identify code, it gives AI agents access to FossID’s Scan Engine, Intelligence Database, and Policy Management. The agent decides when to check and what to do with the results. The identification itself comes from signature scanning, snippet detection, license and copyright file extraction, and dependency analysis against our Intelligence Engine.
Agentic SCA by FossID has five parts:
- MCP Server: exposes FossID’s scanning tools and the Intelligence Engine to AI agents through the Model Context Protocol.
- Intelligence Engine: the constantly-curated knowledge base agents query for identification.
- IDE extension: brings these checks into the editor, starting with VS Code, so developers get immediate feedback against compliance policies whether the code came from them or an AI assistant. It flags prohibited open source snippets, modified license text, vulnerable dependencies, and vulnerable code fragments before they ever reach a commit.
- Skills: auditor-derived logic for code identification, risk assessment, and compliance checks.
- Hooks: event-driven guardrails that trigger analysis as developers work in the IDE.
In practice, an AI coding assistant can check a snippet as it is generated, flag a mixed-license conflict before it is committed, and surface a known vulnerability with remediation guidance in the same workflow. For audits, findings are prioritized by risk and reports update as the code changes, which takes much of the waiting out of the process.
The agent gets faster, and the answers stay grounded. LLMs are good at orchestration, summarization, and helping people act on findings. A purpose-built engine is good at knowing what the code is. Put each where it is strongest.
Odence reaches a similar conclusion from a different angle: AI assists, while tools and experts decide. I agree, and I would add one thing. As more code is written by agents, SCA checks need to live where agents work, not only at code integration or at the end of a release cycle.
Where an LLM helps, and where it should not decide
A practical way to divide the work:
- Explaining license obligations in plain language
- Summarizing scan results for engineering, legal, or leadership
- Triaging and prioritizing findings already identified
- Drafting remediation steps or attribution notices for review
- Orchestrating scans inside developer workflows
- Identifying components and snippet origins
- Determining which license applies
- Producing an SBOM you will share externally
- Clearing code for release, distribution, or an acquisition
- Signing off on compliance
If you are the one helping Legal, Engineering, Compliance, and your executive team understand why an agentic SCA approach is the right one, three questions tend to make the case. Only an approach grounded in real SCA can answer yes to all of them:
- Can it find undeclared code and snippets, not just dependencies listed in a manifest?
- Will it give the same answer twice?
- Can you show an auditor the documented evidence why each finding is right?
The bottom line
So, can an LLM or a vibe-coded tool replace SCA? For a personal side project, perhaps. For software that customers, regulators, and acquirers will scrutinize with millions of dollars at stake, no, and that is not a knock on the models. The job requires evidence, and models produce plausibility. The right arrangement gives each the work it does well.
The more useful question is how to bring AI into your SCA practices without giving up what makes it trustworthy. That is the conversation we are having with customers every week. If you are working through it, I would welcome hearing how you are approaching it.
Watch Agentic SCA in Action
See how FossID brings evidence-based SCA into AI-driven development workflows.
Sources
- Phil Odence, “The reality of using LLMs to identify open source risk: Helpful though limited,” Black Duck, October 5, 2026
- Xu, Gao, He, and Zhou, “LiCoEval: Evaluating LLMs on License Compliance in Code Generation”
- FossID Reveals Agentic Software Composition Analysis for the AI Era, April 14, 2026
- FossID Introduces Expert Systems AI to Slash Manual Effort in Software Composition Analysis, June 25, 2024

