30 Days Gen AI Risk Trial -Start Now
Skip to main content

Developer data protection

Can you send client code to AI?

Use client source code with AI only within the permission granted by the governing contracts and the client’s authorised decisions. An NDA alone does not identify every permitted recipient, service or use. Review the specific terms, data path and decision authority; where permission is unclear, prepare an independently written synthetic example instead of disclosing the client material.

For Software agencies, counsel and engineering leads

Aona field notesD20
Client permission
Permission must match the disclosure

Name the code, recipient, purpose and authorised decision-maker.

A worked fictional permission decision plus an independently written toy example. No actual client consent or legal conclusion is supplied.

01

Start with the client’s rights and agreements

A developer’s access to a client repository is not automatically permission to disclose its contents to an AI provider. Identify the governing agreements, confidentiality definition, permitted purposes, subcontracting or service-provider provisions, and any explicit AI restrictions relevant to the work.

This is a contract-specific review, not a universal interpretation of NDAs. Ask the responsible legal or commercial owner to resolve ambiguous terms. Employer-owned code classification belongs in the separate guide; here the deciding question is what a third-party client has authorised and who may speak for that client.

02

Describe the proposed disclosure concretely

Record the actual code or derived information the task would share, the AI service and account, additional recipients such as gateways or connected tools, and the intended purpose. Include automatically supplied repository context where relevant. “We use an AI tool” is too vague for a meaningful permission decision.

Provider no-training commitments, encryption and business-plan labels do not rewrite the client’s contract. They can be evidence the client considers, but they do not themselves supply consent. Keep the client permission decision separate from the security team’s assessment of a supported technical control.

03

Get the decision from the right person

Identify who can approve the proposed service and disclosure under the agreement and the client’s process. A colleague’s informal comfort may not be the required authorisation. Keep the permission record specific enough that another developer can tell whether a different task, recipient or codebase is covered.

The worksheet is a request for review, not a legal permission instrument. It does not create a waiver, amend an NDA or decide the applicable law. Record the governing document and the authorised decision in the organisation’s approved system rather than treating the example fields as a substitute for that process.

Get the decision from the right person
QuestionEvidence to obtainDo not assume
Which material?Repository/module or reduced example scopeAll client code is covered
Which recipients?Service/account and relevant data pathA provider label identifies every recipient
Which purpose?Approved task or useOne approval covers unrelated work
Who can approve?Authority under the client processAny project participant can consent

04

Prepare a clean synthetic alternative

If the question can be answered without client code, write a minimal example independently using invented names, values and data. Preserve the general programming issue while leaving out client-specific algorithms, structures, comments and business rules. Renaming identifiers in the original code may leave its confidential substance intact.

The download contains a toy quantity-check function and fictional input/output cases. It was written for this guide and is not derived from a client repository. Use it to understand the clean-example approach, not as proof that an adaptation of your own client’s code is outside contractual restrictions.

05

Keep permission and later changes visible

Record the decision’s scope, evidence reference and review date. Reopen it when the service, account, recipients, purpose or material changes. If permission is refused or remains unresolved, keep the client code out of the AI workflow and use an approved alternative.

Official USPTO guidance illustrates why sending confidential client information to third-party AI systems can raise professional obligations and cross-border concerns. It is specific nonbinding guidance for USPTO practice, not a rule that determines every software NDA. Your contract and applicable requirements remain the basis for the actual decision.

Source context: USPTO: Guidance on use of AI-based tools

Put it into practice

Client-code AI permission review

Record the proposed material, recipients, purpose and authorised client decision, with a clean synthetic alternative.

A worked fictional permission decision plus an independently written toy example. No actual client consent or legal conclusion is supplied.

The permission record should answer four questions
01

Material

What client information would leave?

Include derived and automatic context

02

Recipient and purpose

Which service/account and task are proposed?

Follow the relevant data path

03

Authority

Who can decide under the client’s process?

This worksheet does not grant permission

Client-code AI permission review
Fictional caseScope or decisionMeaning
Requested materialA function from SYNTHETIC_CLIENT_PORTALOriginal client code remains withheld
Proposed recipientSYNTHETIC_AI_SERVICE and model providerActual recipients would need review
AuthorityFictional client contract ownerProject request alone is insufficient in this exercise
Illustrative outcomeUse the independent toy example onlyNo real client consent is supplied

Work through your review

Use the checks to organise the evidence you need. Your selections stay in this tab.

0 of 3 reviewed

Example files for this task

Keep the source material and the instructions together. You can also download the complete worksheet or matrix as CSV.

README.mdInspect
# Client-code permission review

This pack is a review aid, not an NDA, legal opinion, consent or contract amendment. It sends no message and makes no API call. Do not put actual client source code or credentials into the training files.

Use permission-review.md with the responsible legal/commercial owner and the client’s authorised process. Record exact scope and evidence in your approved system. The toy function and cases were written independently for this guide and contain no client information. They illustrate a clean reproduction, not a guarantee that modified client code is free of restrictions.

## Guide and sources

Canonical guide: https://aona.ai/resources/guides/client-source-code-ai-nda/
Source review: 2026-09-21
- USPTO: Guidance on use of AI-based tools: https://www.govinfo.gov/content/pkg/FR-2024-04-11/html/2024-07629.htm

fictional-permission-case.md is a completed teaching example: the fictional authority withholds original client code and allows only the independent toy reproduction within its stated example scope. It is separate from the blank actual-client review and grants no real permission.
Download README.md
permission-review.mdInspect
# Proposed client-code disclosure

Client/reference: ____________________
Governing agreement and relevant review owner: ____________________
Material proposed, including derived/automatic context: ____________________
Service, account and additional recipients: ____________________
Purpose and expected benefit: ____________________
Provider handling evidence for the client to consider: ____________________
Who is authorised to decide under the client process: ____________________
Decision/evidence reference: NOT OBTAINED
Limits and recheck triggers: ____________________

This file grants no permission and does not amend an agreement.
Download permission-review.md
clean-example.pyInspect
# Independently written synthetic example. No I/O or client code.
def require_quantity(payload):
    if "quantity" not in payload:
        raise ValueError("quantity is required")
    return payload["quantity"]
Download clean-example.py
synthetic-cases.jsonInspect
{
  "notice": "INDEPENDENT SYNTHETIC EXAMPLES ONLY",
  "cases": [
    {
      "input": {
        "quantity": 2
      },
      "expected_return": 2
    },
    {
      "input": {},
      "expected_exception": "ValueError",
      "expected_message": "quantity is required"
    }
  ],
  "client_material_used": false,
  "provider_calls_performed": false
}
Download synthetic-cases.json
clean-reproduction-review.mdInspect
# Clean reproduction review

General programming question: ____________________
Independently written example: ____________________
Invented names/values and minimal structure: ____________________
Client-specific algorithm, comments or business rules excluded: ____________________
Does any derived information still require permission? ____________________
Reviewer and decision: NOT YET REVIEWED

A renamed copy is not automatically an independent example.
Download clean-reproduction-review.md
fictional-permission-case.mdInspect
# Worked fictional client-permission decision

SYNTHETIC SCENARIO. This is not consent, legal advice or a contract amendment.

Request: a software agency wants an AI explanation of a quantity-check failure in SYNTHETIC_CLIENT_PORTAL.
Material proposed: the original fictional client function and nearby context. No actual client function is included in this pack.
Recipient path: SYNTHETIC_AI_SERVICE in SYNTHETIC_WORKSPACE, then a fictional model provider. These are labels, not real services.
Authority in this exercise: only the fictional client contract owner may decide disclosure scope; the project manager cannot extend it.
Decision: original client code is not authorised for this use. Use only clean-example.py, independently written for the guide, with synthetic-cases.json.
Limits: no client names, algorithms, comments, surrounding files or production values may be added under this illustrative decision.
Recheck: any change to material, purpose, account or recipients requires a new authorised review.
Outcome: a useful general programming question can proceed with the independent synthetic example while the client-code request stays unresolved.
Download fictional-permission-case.md

Before you proceed

Keep these distinctions clear

Treating provider privacy terms as client consent
The client’s permission and the provider’s handling commitments are different decisions.
Renaming confidential logic
Anonymised identifiers may leave the underlying client-specific substance unchanged.

Apply it to employee AI use

Bring your actual data path.

Aona can help evaluate supported employee prompt/file protection policies after the permitted workflow is defined.

Aona does not interpret an NDA, authorise client disclosure or guarantee compliance with a contract. No technical control supplies missing permission.

Bring a permitted independent synthetic example to a scoped endpoint demonstration; keep client approval evidence with the responsible owner.

Review your use case

FAQ

Questions for this decision

Does an NDA automatically ban every AI-assisted task?
Its effect depends on the governing terms, permitted purposes and recipients, and applicable requirements. Have the responsible owner review the actual agreement rather than relying on a universal answer.
Does a no-training business plan make client-code sharing permitted?
No-training terms may inform the client’s decision, but they do not create contractual permission. Record the actual material, recipient path, purpose and authorised decision.
Is changing variable names enough to remove confidentiality concerns?
Not necessarily. Algorithms, structure, comments or derived information can still be covered. Prefer an independently written minimal example and review any remaining client-derived substance.
Can the supplied worksheet serve as client consent?
No. It is an inert review aid, not a legal instrument or amendment. Obtain and record permission through the authority and process required by the governing agreement.

Evidence behind the guide

Sources and scope

Prepared by Aona. Sources checked 2026-09-21. The cited material supports the specific points below; it does not certify a product or your use case.

  1. USPTO: Guidance on use of AI-based tools

    Nonbinding, USPTO-specific guidance discussing confidential client information shared with third-party AI; not a general interpretation of software NDAs.

    regulator · checked 2026-09-21
Client source code, AI tools and NDA permission