Skip to main content
COOKIE NOTICECOOKIE CHOICE

We use cookies for analytics (Google Analytics) and ad measurement (Google Ads, including remarketing, and ChatGPT Ads by OpenAI). Strictly necessary cookies keep the site working. See our Cookie Policy for what each one does and how to opt out.

We’d like to use cookies for analytics (Google Analytics) and ad measurement (Google Ads, including remarketing, and ChatGPT Ads by OpenAI), and none of them is set unless you accept. Cookie Policy

Learn · AI Governance

AI Code Provenance, Licensing and IP Risk

Turning on “block suggestions matching public code” is a real control and a weak assurance. It compares generated text against one index, above a length threshold, at the moment of suggestion. Everything that decides your exposure happens outside that comparison — in the dependency the assistant recommended, in the edit that made a blocked pattern pass, and in the question that arrives three years later asking what you can show.

The sentence that turns a contract into a control. Microsoft’s Customer Copyright Commitment documentation states that on tendering a claim “the customer will be required to demonstrate compliance with all relevant requirements”. An indemnity you cannot evidence is an indemnity you may not have.

1index a public-code filter can see
0SBOM minimum elements recording AI assistance
20+frameworks TCSA advises across

Plain-English explainer · ISO/IEC 42001:2023 AIMS · Vendor terms as documented August 2026 — verify current terms

A public-code filter protects against one thing: your developers unknowingly accepting a block of text that already exists, near-identically, in the public code the vendor indexes. It does not establish that your codebase is clean, because it matches text rather than derivation, sees one corpus rather than all code, and evaluates the suggestion rather than the merged result. The exposure it leaves behind is not exotic. It is the package the assistant told you to install, the attribution obligation nobody discharged at release, and — the one that costs the most time — the absence of any record of which code was AI-assisted, under which tool, at which configuration, on which date. That last gap is a governance problem rather than a technical one, and it surfaces years later in acquisition diligence, in a customer audit clause, or in a demand letter, where the burden is on you to describe your own history. What follows is what the filter does and does not do, the exposures ranked against the controls that actually move them, a provenance record model you can operate without instrumenting a single keystroke, how to read the indemnity you think you have, and how this is treated as an ISO/IEC 42001 risk with a documented treatment rather than a policy sentence.

Key Takeaways

  • A public-code filter is three design choices — the corpus it indexes, the match length it treats as significant, and what it does on a hit. The numbers move between releases, but the three questions are the durable way to assess any vendor’s implementation.
  • The licensing exposure that actually bites is usually the dependency the assistant recommends rather than the function body it writes: one import line can attach copyleft or attribution obligations to an entire product.
  • Provenance is a records question, not a detection question. When a licensing challenge arrives, nobody asks whether your filter was good — they ask what you can show about how the code came to exist, and an absent record makes you prove a negative.
  • You can record provenance at decision boundaries — tool and tier, configuration state with dates, repository scope, commit markers, review approvals, build-time bill of materials — without keystroke capture, which is disproportionate as well as unhelpful.
  • Vendor indemnities are real and conditional. Read the covered tiers, the required mitigations, the cap, the notice obligations and the demonstration burden — and diarise a review, because required-mitigation lists are amended by publication rather than by negotiation.
  • ISO/IEC 42001 gives this a home as an assessed AI risk with a documented treatment, and ISO/IEC 27001 supplies the intellectual-property and secure-development controls. SOC 2 reaches it only through change management, vendor management and your own system description — there is no trust services criterion for licensing.
The mechanism

What the filter actually does

Strip away the branding and every public-code filter is the same three decisions. What corpus does it index? Typically the public repositories on the vendor’s own platform, which is a large and non-exhaustive sample of the world’s code. What counts as a match? A length threshold, so that ordinary idiom does not trip it — as documented at the time of writing, GitHub’s duplication detection compares a suggestion together with its surrounding code and acts on matches at a length of roughly 150 characters, and you should verify the current figure and scope in vendor documentation rather than quoting this page. What happens on a hit? Either the suggestion is suppressed, or it is shown with references to the matching repositories and their licence types.

That third choice is the one with governance consequences, and it is usually made by whoever set the tenant up. Blocking mode removes the decision from the developer. Annotate or reference mode keeps the suggestion and hands them a licence obligation, on screen, in the middle of a task — which is a reasonable design if somebody is going to record and discharge the obligation, and a liability if nobody is. The published required-mitigation terms for one major platform make this explicit for code generation: the protected-material code model must be configured in either filtering or annotating mode, and where annotating is chosen, complying with the cited licence becomes the customer’s own obligation. The contract is not ambiguous about who owns that.

Two practical notes. The setting almost always exists at both user and organisation level, and only the organisation-level policy is a control you can evidence — a per-user toggle is a preference. And the setting is a point-in-time state, so a new organisation, a migrated repository or an acquired team inherits platform defaults rather than your policy. Most of the gaps we find in readiness work are not policy failures. They are scope failures, in a console nobody knew existed.

The real problem

Provenance is a records question

The scenario that costs organisations weeks is not a lawsuit. It is a question. An acquirer’s counsel, a customer exercising an audit clause, or an open-source compliance team writes to ask which parts of a codebase were produced with AI assistance, under what tool, with what settings, over what period. The code is years old. The engineers who wrote it have moved on. The tool has been through four releases and two contract revisions. There is no artefact anywhere in the estate that answers the question, and the burden of answering sits with you.

This is what makes provenance a governance problem rather than a technical one. Nothing about the difficulty is unsolved: the records are trivially cheap to generate at the moment the code is written and effectively impossible to reconstruct afterwards. The failure is one of anticipation. Teams instrument what they are measured on this quarter, and nobody is measured on being able to describe 2025 in 2027.

There is a second, quieter reason to keep the record, and it points the other way — towards what you own rather than what you owe. The United States Copyright Office’s registration guidance on works containing AI-generated material, published in the Federal Register in March 2023 and reinforced by its 2025 report on copyrightability, holds that material generated without sufficient human authorship is not protectable, that only the human contribution to a mixed work is in play, and that an applicant must disclose AI-generated material that is more than de minimis and describe the human contribution. That is a disclosure obligation resting on a factual claim about how a work was made. The organisation that kept a record can make it. The organisation that did not is guessing on a government form.

Framed that way, provenance stops being defensive paperwork. It is the same artefact that answers a buyer’s questionnaire, supports a registration, satisfies an indemnity condition and lets you scope a remediation to the four repositories it affects rather than the whole estate. It belongs beside your AI system inventory, not in a separate initiative.

The record

What to capture, without keystroke logging

The instinct on hearing “provenance” is to reach for telemetry — capture every suggestion, every acceptance, every edit. Resist it. Keystroke-level capture is disproportionate to the risk, creates employee-monitoring and works-council exposure in several jurisdictions, and produces a corpus so large that nobody can answer a question from it. Record at decision boundaries instead: the points where a human or a policy already makes a choice, and where a durable artefact already exists.

Record fieldThe question it answers years laterWhere it comes fromWhat it is not
Tool and tierWhich product generated assistance in this repository, on which commercial tier, under whose contract. Tier is the field that decides whether any indemnity exists at all.Licence assignment records from the vendor admin console, reconciled to your identity provider group membership.Not a per-suggestion record. One row per tool per scope per period is enough.
Configuration state, with datesWhether the public-code filter was in blocking or annotate mode when the code was written, and whether it was ever switched off.The organisation policy setting, exported on a stated cadence, plus the platform audit log of changes to that setting.Not a screenshot taken today. Today tells you about today. The question will be about a period that has closed.
Scope: which repositoriesWhere assistance was permitted and where it was not — including repositories deliberately excluded because of customer commitments.A repository inventory with an AI-assistance attribute, held next to the rest of your asset register.Not an assumption that the estate is uniform. New organisations and forks inherit defaults, and defaults are rarely your policy.
Commit-level markerWhich changes were materially AI-assisted, as declared by the author at the moment they knew the answer.A commit trailer convention, checked by CI on the branches that matter. Any consistent key works. Consistency is the whole value.Not a measure of how much of the diff a model wrote. It is a flag for later retrieval, not a percentage.
Human review recordWho read the change before it merged, and whether they were somebody other than the author.Pull-request approval metadata and the branch protection rule that made approval non-optional.Not an assertion that review catches derivation. It records that a competent human accepted the change.
Component manifest at buildWhat third-party code is actually in the shipped artefact and under what licences.A bill of materials generated during the build, in SPDX or CycloneDX, retained with the release.Not a record of AI assistance. No SBOM minimum element captures whether a component was written with a model.
Exception recordEvery occasion somebody accepted a suggestion the filter had flagged, and what licence obligation was accepted with it.A ticket raised at the moment of acceptance, referencing the matched repository and licence the tool reported.Not optional if you run annotate mode. In annotate mode the obligation to comply with the cited licence is yours.
Retention and custodyWhether the records still exist when the question is asked, which is usually years after the commit.Your own storage, not the vendor default. Platform audit-log retention is a plan setting and is routinely shorter than a diligence horizon.Not the tool vendor’s responsibility. If retention lapses, the record is gone and the burden is yours.

Two of these deserve emphasis because they are the ones teams skip. The configuration state with dates is the field that converts a vendor commitment into something you can rely on, and it is the field that expires: platform audit-log retention is a plan setting, commonly ninety days, while the question you will be asked arrives at a diligence horizon measured in years. Export it on a cadence into storage you control. And the commit-level marker is worth having precisely because it is cheap and declarative — a trailer the author adds at the moment they are the only person who knows the answer. It is not a percentage, it will not be perfectly applied, and it is still the difference between scoping a review to eighty commits and scoping it to a codebase.

What the record deliberately omits is as important as what it holds. It does not attempt to measure how much of a diff a model produced, because that number is unstable, unverifiable and would invite exactly the surveillance instrumentation this design avoids. It records that assistance was used, under which conditions, and that a human accepted the result.

The contract

Read the indemnity, do not assume it

Several vendors have published named commitments to defend customers against intellectual-property claims arising from generated output — Microsoft’s Customer Copyright Commitment, GitHub’s Copilot IP indemnity, Google Cloud’s generative AI indemnification and OpenAI’s Copyright Shield among them. They are genuine, materially different from one another, and amended more often than most customers notice. Seven questions decide whether yours means anything.

The questionWhy it bitesWhere to look
Which products and tiers are covered?Coverage attaches to defined products, usually paid business or enterprise tiers. A developer using a personal subscription on a work laptop is outside the definition entirely, whatever your policy says.The product terms definition of covered products, and your own licence assignment records.
Is training data covered, output, or both?These are different claims. Some commitments cover only claims arising from the output delivered to you, while others also address claims about the data the model was trained on. The gap is where surprise lives.The scope clause, then compare it against the claim you are actually worried about.
What are the required mitigations?Coverage is typically conditioned on configuration. One published example requires a protected-material code filter to be configured in either filtering or annotating mode — and where annotating is chosen, makes compliance with the cited licence the customer’s own obligation.The vendor’s required-mitigations documentation, which is a live page and not part of the signed contract.
Can you demonstrate the conditions were met?The obligation is evidentiary. If you tender a claim, you are expected to show the required mitigations were in place at the time the output was generated — a configuration record, not a recollection.Your own provenance record. Nothing in the vendor console is retained on your behalf for this purpose.
Is the commitment capped?Caps tied to fees paid in a preceding period are common. A cap measured against twelve months of seat licences is not proportionate to litigation, and that asymmetry belongs in the risk assessment rather than in a footnote.The limitation-of-liability clause, and whether the indemnity sits inside or outside the general cap.
Who controls the defence?Most commitments require prompt written notice and give the vendor conduct of the defence. Settling or admitting anything on your own initiative can extinguish the coverage you were relying on.The notice, cooperation and settlement provisions — and make sure legal, not engineering, holds that runbook.
How can the terms change?Required mitigations are amended by publication. One vendor gives customers six months from publication to implement newly required mitigations. The same page has also removed a requirement that many teams still believe is mandatory.The amendment mechanics, plus a diarised review so you learn about changes on your schedule rather than during a claim.

A worked illustration of why the review date matters more than the summary. Microsoft publishes its required mitigations on a documentation page rather than in the signed terms. At the time of writing that page carries universal mitigations effective from December 2023 that expressly do not apply to GitHub or Copilot Studio, code-generation mitigations specific to Azure OpenAI, a six-month window from publication to implement any newly required mitigation — and a line stating that for GitHub offerings, as of 3 April 2026, there are no additional required mitigations and use of the duplicate detection filter is no longer required for coverage. A team that turned the filter on for indemnity reasons in 2024 and never looked again holds a belief about its contract that is two revisions old. That is not an argument for switching the filter off. It is an argument for a dated register and a diarised review.

One more limit worth stating plainly, because it is where expectations diverge most from drafting. An indemnity is generally a promise about defence costs and money damages. It is not a licence to keep shipping the code, it does not indemnify the engineering cost of removing and replacing it, and it does not resolve the commitment you separately made to your own customer. Treat it as recovery, and treat the controls above as the thing that prevents you needing it.

Controls that move the number

Availability, enforcement, dependencies, SBOM

Model and tool availability governance comes first because it is the only control that operates before anything is generated. Decide which tools may be used for code at all, on which commercial tier, and enforce it where software is actually acquired — identity provider groups, device management, and the expense policy that quietly funds the alternative. A personal subscription used on a work machine sits outside every contractual protection you hold, which is the practical link between this page and shadow AI: the licensing exposure created by a personal account is not merely unmanaged, it is uninsured.

Filter enforcement is second, and the word doing the work is enforcement. Set the policy at organisation level so it cannot be overridden per user, apply it to every organisation rather than the main one, alert on changes to the setting, and export its state on a cadence. The pattern is the same one that makes any configuration control testable: capture the setting at more than one point in the period and keep the audit log that proves it was not relaxed in between.

Dependency provenance is third and pays best. Publish a licence policy as code — permitted, prohibited, requires review — differentiated by how you deliver the artefact, then enforce it in CI so a non-compliant dependency fails the build rather than generating a report. Resolve installs through an internal proxy so a hallucinated or newly registered package cannot be pulled from a public registry on first use. Research presented at USENIX Security in 2025 found that a substantial minority of package names suggested by models did not exist at all, with rates varying widely by model and the same fabricated names recurring across attempts — recurrence being precisely what makes pre-registration worth an attacker’s time. The rate will keep moving. The control should not depend on the rate.

A bill of materials is fourth, and it is worth being precise about what it does. Generate an SBOM at build in SPDX or CycloneDX and retain it with the release. It answers the dependency question completely and the authorship question not at all: the recognised minimum elements — supplier, component, version, unique identifiers, dependency relationships, the author of the SBOM data and a timestamp — contain no field for whether a component was written with model assistance. Related work exists on describing AI systems themselves, including the AI and dataset profiles added in SPDX 3.0, but that documents models and datasets as components rather than recording that a human used an assistant to write a function. Give the SBOM for the dependency question and the provenance record for the authorship question.

The review gate is last on this list and first in importance, because it is the only control that engages with derivation. Branch protection requiring an approving review from somebody other than the author is already your change-management control. Nothing about AI assistance requires a second, parallel process. What changes is throughput and reviewer attention, which is a separate discipline covered under agent governance — and the honest position is that a reviewer will catch a recognisable implementation only if they happen to recognise it.

Worked example

A question in March 2027 about a commit from 2025

An illustrative composite, not a client. Read the middle column first — the distance between the second row and the fourth is the entire lesson.

Rollout4 February 2025A forty-engineer B2B SaaS company enables an AI coding assistant across its main GitHub organisation on a business tier, with the public-code filter set to block. The setting is switched on once. Nobody exports it, and nobody writes down that it exists.
The drift12 June – 1 July 2025A second GitHub organisation is created for a spun-out data project. It inherits default settings, so blocking is off for nineteen days across roughly four hundred commits. Nobody notices, because the policy lived in one console and the new organisation was a different console.
A partial fixSeptember 2025Dependency licence scanning is added to CI with an allow list after a customer questionnaire asks about copyleft. Three packages are replaced. The snippet-level question is not addressed, because nobody has asked it yet.
The question11 March 2027In acquisition diligence, buyer’s counsel asks three things: (1) which repositories contain AI-assisted code and over what period, (2) which tool and configuration produced it, evidenced, and (3) what licence obligations attach to the shipped artefact and how they are discharged.
The reconstructionMarch – April 2027Question three is answered in a day from build artefacts. Questions one and two take three weeks: the audit log retained ninety days, so 2025 configuration state cannot be evidenced at all, and the nineteen-day gap is found by an engineer reading organisation creation dates. The finding lands as a holdback, not a deal-breaker.
The two changesMay 2027A quarterly export of every organisation’s policy state into the evidence store, and a CI check requiring an assistance trailer on the protected branches. Both take under a week. Neither would have been of any use applied in March 2027, which is the whole point.

Nothing in this sequence is a failure of judgement. The company enabled the right setting on the right day, added dependency scanning before a customer forced it, and had a review gate throughout. It still could not answer two of three questions, for one reason: every artefact that would have answered them was held in a system that retained ninety days, while the question arrived at twenty-five months.

The nineteen-day gap is the second lesson, and it is the more common one. It was not caused by anyone disabling a control. It was caused by a new scope appearing — a second organisation, created for a legitimate reason, inheriting platform defaults rather than company policy. Any control expressed as a setting has this property. The countermeasure is not vigilance but a periodic reconciliation: list every organisation, every repository and every seat, and compare the actual setting against the policy on a stated cadence.

The control you can evidence is the retention window, not the setting. A setting you cannot prove was on is a setting the record says nothing about.
— the lesson the holdback exists to teach
Where this lives

An ISO 42001-style treatment for IP risk

ISO/IEC 42001:2023 is an AI management system standard, certifiable by an accredited certification body. Its value here is not that it contains a control about code provenance — it does not. Its value is the shape it imposes: an identified risk, an assessment under clause 6.1.2, a treatment decision under 6.1.3, applicable controls justified in a Statement of Applicability, and monitoring under clause 9. Written that way, “we turned the filter on” becomes a treatment with an owner, a residual risk, a review date and evidence, which is what an auditor and an acquirer are both actually asking for.

The Annex A controls that carry it are the life-cycle and accountability ones rather than anything IP-specific: an AI policy aligned with your other policies, AI roles and responsibilities, requirements and specification for AI systems, technical documentation, recording of event logs, processes for responsible use and intended use, and — for the supplier dimension — the allocation of responsibilities across third parties and the controls for suppliers. Annex A does contain a data provenance control at A.7.5, but read it for what it is: it governs the provenance of data used in AI systems, not the provenance of code an assistant helped a human write. Borrow the discipline, but do not claim the control.

The intellectual-property controls themselves sit in ISO/IEC 27001:2022, which is one reason an integrated AIMS and ISMS is the efficient shape. Annex A 5.32 requires appropriate procedures to protect intellectual property rights, and the standard’s treatment of the term expressly contemplates source-code licences and software copyright. A 8.28 covers secure coding and A 8.30 covers outsourced development, where the guidance already points at licensing agreements addressing code ownership. If you hold ISO 27001, you have a control that already obliges you to do most of this. What is new is the mechanism creating the risk, not the obligation.

Two boundaries to keep straight. On the EU AI Act, the copyright obligation in Article 53 — a policy to comply with Union copyright law including the reservation of rights under the text-and-data-mining provisions, and a sufficiently detailed public summary of training content — sits on providers of general-purpose AI models, applicable from 2 August 2025. It is not an obligation on you as a deployer. What it gives you is a due-diligence question with a documented answer behind it: ask for the training-content summary and the copyright policy, and keep the response. And on SOC 2, there is no trust services criterion for intellectual property. It reaches the examination only through change management, through vendor and business-partner controls where the assistant is the vendor, and through the accuracy of your own description. Saying so plainly is more credible than implying a SOC 2 report answers a licensing question.

A note on roles, since this page touches both regimes. Tranquility Cybersecurity advises, implements and coordinates: risk assessments, control design, policy and evidence, readiness. ISO 42001 certificates are issued by accredited certification bodies and SOC reports by licensed CPA firms. The firm that designs or operates your controls cannot be the one that examines them.

Where this gets contested

The edge cases that generate the questions

The map above covers the common eighty per cent. These are the situations that produce genuine disagreement between an engineering organisation, its counsel and its customers.

The model reproduces your own code

A suggestion that echoes a distinctive internal implementation is not a licensing problem — it is a confidentiality one, and it belongs to a different control set. The governance question is whether your inputs are retained or used for training on the tier you hold, which is a contract term to confirm in current vendor documentation rather than an assumption to carry. Where the answer matters commercially, it is worth the procurement cycle to get it in writing on the tier you actually bought, not the tier on the pricing page.

Permissive licences are the ones you breach

Teams brace for copyleft and get caught by attribution. MIT, BSD and Apache-2.0 permit almost everything and require notice, so the breach is not that you used the code but that you shipped it without preserving the licence text. A blocked suggestion is a non-event. An accepted match under annotate mode creates an obligation that only reaches your notices file if somebody records it deliberately, because the snippet never enters the dependency graph the notices file is generated from.

Contributing back out

Where your engineers contribute upstream, most projects require a Developer Certificate of Origin sign-off or a contributor licence agreement. Both ask an individual to certify something about the origin of the contribution. A developer who cannot say what produced the change is being asked to certify a thing they do not know. This is one of the few places where a per-commit record has an operational use rather than an evidentiary one, and it is worth telling contributors what your convention is before they sign.

"No AI-generated code" clauses

These are appearing in enterprise and public-sector agreements, sometimes drafted broadly enough to catch autocomplete. Before negotiating the clause, establish whether you could answer it: an absolute prohibition you cannot evidence is worse than a disclosure obligation you can. The usual landing zone is a commitment about specific repositories, specific configuration and disclosure on request — which is only negotiable if the repository-level scope record already exists.

Self-hosted and open-weights models

Running a model on your own infrastructure removes the data-egress question and changes nothing about provenance. The training corpus is still not yours to inspect, the licence attached to the weights may restrict fields of use or downstream distribution, and vendor indemnities generally do not follow a model you host yourself. Read the model licence with the same attention as the service terms. It is frequently the more restrictive of the two.

Patents and inventorship

If AI-assisted work reaches something you want to patent, inventorship requires a significant contribution by a natural person. This is live doctrine rather than settled ground — inventorship guidance for AI-assisted inventions has already been issued and superseded in the United States, which is precisely why the record you keep should carry a date and a review owner rather than a conclusion.

The retrospective question

Almost every organisation adopting assistants now has a period behind it with no records. Backfilling is not available and inventing it is worse than admitting the gap. The defensible position is a stated start date for the control, an honest description of the preceding period, and a dependency-level answer for the whole estate — since the bill of materials can be generated retrospectively from build artefacts even where the commit-level record cannot.

From the other side of the table

What buyers ask and the answer

These arrive in security questionnaires, in diligence and increasingly in contract negotiation. The difference between a good answer and a defensive one is, as always, specificity.

"Do you use AI to write code?"

Answer with scope rather than yes or no, because the unqualified yes invites four follow-ups and the unqualified no is usually untrue. The useful answer names which tools are permitted, on which commercial tier, with which settings enforced at organisation level, in which repositories, and what review gate every change passes regardless of origin. A buyer who receives that generally moves on to the review gate, which is the question they actually care about.

"Your filter is on, so the code is clean."

This one usually comes from your own side of the table, and it is worth correcting internally before a buyer does it for you. A public-code filter compares generated text against one index above a length threshold at the moment of suggestion. It cannot see code outside that index, it does not evaluate derivation that is not literal, and it says nothing about what happened to the suggestion after it was accepted. It reduces one specific exposure well. It is not an assurance about the codebase.

"Show us an SBOM that covers AI-generated code."

A bill of materials records third-party components — supplier, component, version, identifiers, dependency relationships, who produced the document and when. None of the recognised minimum elements record whether a component was written with model assistance, because an SBOM answers a different question. Say so plainly, provide the SBOM for the dependency question, and provide the repository-level provenance record for the authorship question. Two artefacts, two questions. Conflating them produces a document that satisfies neither.

"Who owns the code the model wrote?"

Two separate questions live inside that one. Between you and the vendor, output ownership is a contract term and enterprise terms commonly assign whatever rights the vendor has to the customer — confirm the tier you hold. Under copyright law, material generated without sufficient human authorship may attract no protection at all, which is a limit on what you can assert rather than a claim someone else has. Where a work mixes human and generated material, only the human contribution is in play, and registration in the United States carries a disclosure obligation once the generated portion is more than de minimis.

"Your vendor indemnifies you, so we are covered."

No. A vendor commitment runs to the customer that holds the contract, not down the chain to that customer’s customers. Your exposure to your buyer is governed entirely by your agreement with them, and the vendor commitment is a recovery you may or may not have behind it. This distinction is worth making explicitly during negotiation, because a buyer relying on a mistaken flow-through has not priced the risk they are actually holding.

"What happens if the litigation goes the other way?"

The honest answer is that the outcome is not knowable and that your position should not depend on it. The material dispute in this area has narrowed to contract-based open-source licence claims, with an appellate question outstanding on whether a copyright-management-information claim requires identical copying. What changes with the ruling is the size of the surface. What does not change is that an organisation able to describe its estate, its configuration history and its dependency obligations can answer a demand letter in days, and an organisation that cannot will spend weeks establishing facts about itself.

"We require that no AI-generated code enters our deliverables."

Ask what the clause is protecting against, because the drafting is often broader than the intent — several drafts we have seen would prohibit autocomplete. If the concern is third-party code, the answerable commitment is about filter configuration, dependency licence policy and review. If the concern is quality, it is about the review gate. If the concern is genuinely categorical, establish whether you can evidence compliance before you agree to it. An unevidenced absolute is a breach waiting to be discovered by someone else.

Frequently Asked Questions

What does "block suggestions matching public code" actually do?
It compares a generated suggestion, together with its surrounding code, against an index of public code held by the vendor, and acts when the match exceeds a length threshold. In blocking mode the suggestion is suppressed and the developer never sees it. In the alternative mode it is shown along with references to the matching repositories and their licence types, which shifts the licence decision onto the developer in the middle of a task. The setting normally exists at both user and organisation level, but only the organisation-level policy is a control you can evidence. Verify the current threshold, corpus and modes in your vendor’s documentation rather than relying on any summary, including this one.
Does turning the filter on mean our code is free of licensing risk?
No, and the gap is structural rather than a shortcoming in any particular product. A filter can only match against the corpus it indexes, so code that was never public on that platform is invisible to it. It matches text, so output that reproduces the structure and organisation of a protected work without matching its characters passes. It evaluates the suggestion, not the merged result after edits. And it says nothing about the dependencies the assistant recommended, which is where most licence obligations actually attach. Treat it as one control against one exposure, and describe it that way to buyers.
Why is the recommended dependency a bigger risk than the generated snippet?
Because of scale and obligation. Twelve generated lines create at most an attribution or removal problem confined to one file. A single dependency can attach copyleft or notice obligations to the whole artefact you distribute, and it enters through a route nobody treats as a code review — someone accepts an import line. Two additional failure modes ride along: models sometimes name packages that do not exist, which attackers pre-register, and package names collide across ecosystems. A licence policy enforced in CI plus resolution through an internal proxy addresses all three, and none of it depends on the assistant behaving well.
How do we record provenance without monitoring developers?
Record at decision boundaries rather than at keystrokes. Six fields cover almost every question: which tool and tier is licensed for which repositories, the configuration state of the public-code filter with dates and change history, a repository-level scope record, a commit trailer the author adds when they know the answer, the pull-request approval showing a reviewer distinct from the author, and a build-time bill of materials retained with the release. All six already exist as artefacts in a normal engineering estate. Keystroke or suggestion-level capture is disproportionate, raises employee-monitoring issues in several jurisdictions, and produces a corpus nobody can query.
Are vendor IP indemnities worth relying on?
They are worth having and not worth assuming. Read seven things: which products and tiers are covered, whether the scope is training data or output or both, what mitigations are required as a condition, whether you could demonstrate those mitigations were in place when the output was generated, whether the commitment is capped, who controls the defence, and how the terms may be amended. The last matters more than it sounds: required-mitigation lists are published on documentation pages and revised without negotiation. Keep a dated register of what you rely on and review it on a cadence.
Does an SBOM cover AI-generated code?
No. An SBOM records third-party components — supplier, component, version, unique identifiers, dependency relationships, the author of the SBOM data and a timestamp under the recognised minimum elements — and none of those fields indicate whether a component was written with model assistance. Work is under way to describe AI systems as components, including the AI and dataset profiles introduced in SPDX 3.0, but that documents models and datasets rather than recording that a developer used an assistant. Provide the SBOM for the dependency question and a separate repository-level provenance record for the authorship question.
Who owns code generated by an AI assistant?
Separate the contract from the copyright. Between you and the vendor, enterprise terms commonly assign whatever rights the vendor has in the output to the customer — confirm this on the tier you actually hold rather than the tier on the pricing page. Under United States copyright law, material generated without sufficient human authorship is not protectable at all, and where a work combines human and generated material only the human contribution is in play. Registration carries a disclosure obligation once the generated portion is more than de minimis, together with a description of the human contribution — which is a factual claim your provenance record either supports or does not.
How does this map to ISO 42001?
As an assessed risk with a documented treatment rather than as a named control. Run it through the AI risk assessment at clause 6.1.2, decide the treatment under 6.1.3, justify the applicable Annex A controls in the Statement of Applicability, and monitor under clause 9. The supporting controls are the life-cycle and accountability ones — AI policy, roles and responsibilities, requirements and specification, technical documentation, event logs, responsible and intended use, and the third-party controls covering allocation of responsibilities and suppliers. Annex A does contain a data provenance control at A.7.5, but it governs data used in AI systems, not code an assistant helped a human write.
Is AI-assisted development a SOC 2 issue?
Only indirectly, and it is worth being precise with buyers about this. SOC 2 is an attestation performed by a licensed CPA firm under AT-C 205. There is no trust services criterion for intellectual property or licensing. Where the subject reaches the examination it does so through change management, through the vendor and business-partner criterion when the assistant is a vendor with access to your environment, and through your system description evaluated against the description criteria in DC section 200. That last one is the live risk: a description written before assistants were adopted and never updated is a management statement that no longer matches the system.
What should we do about the period before we had any of this?
State the start date and stop there. Backfilling commit-level provenance is not possible and manufacturing it converts a records gap into an integrity problem that is far harder to explain. The defensible position has three parts: an honest description of the earlier period and what was and was not in place, a dependency-level answer covering the entire estate — which can be generated retrospectively from build artefacts even where authorship records cannot — and a stated date from which the controls operate. Most acquirers and most customers accept that. Almost none accept a reconstruction that does not survive a second question.

Written By Expert Auditors

Surendra Pal SinghChief Information Security Officer & Data Protection OfficerCISODPOCISAMCSEITILISO 27001 Lead AuditorISO 27701 Lead AuditorISO 42001 Lead Auditor
Saundhi ChauhanLead AuditorISO 27001 Lead AuditorISO 27701 Lead AuditorISO 42001 Lead Auditor
Last reviewed: August 2026 • Content verified by certified lead auditors

Get in touch

Book a free consultation or send us your requirements. We respond within 24 hours.

Send us your requirement.

01Your details
02What is it about?
ISO 42001 (AI)
03Send
Asking about: ISO 42001 (AI)