August 7, 2026 · 7 min read
The handover test: own every repo your AI agency builds
By Anna, co-founder, build and content
Vendor lock-in with an AI agency is rarely a contract clause. It is an access list. The code sits in their GitHub organization, the database runs on their hosting account, the API keys live in their password manager, and the only documentation is a screen recording on their Drive. The handover test is one question, asked before you sign: if this agency disappeared on Friday, what still runs on Monday, and who holds the keys?
Ask it early. It is cheap to fix in a scope document and expensive to fix after a system is live and doing real work.
What lock-in looks like when the deliverable is an agent
An AI agent is not a website. A website you cannot edit is annoying. An agent you cannot edit is an operational dependency doing daily work: routing leads, reconciling numbers, answering customers. Lock-in at that level means the system running part of your operations has a landlord, and your rent is whatever they decide to charge in year two.
Four assets decide whether you are locked in, and the source code is only one of them:
- The repository, and which organization account owns it
- The data store, and whose billing account it sits under
- The third-party accounts: model provider keys, ad platforms, CRM, email
- The documentation, meaning whether an engineer who has never met the builders can operate the thing from writing alone
By default, you may not own the code you paid for
Under US copyright law, a contractor keeps copyright in what they write unless there is a written assignment. Joseph S. Heino, a partner at the law firm Amundsen Davis, set this out in a May 2025 alert: “work for hire” wording on its own does not transfer ownership of commissioned software, because software is not among the nine categories the Copyright Act lists for work-for-hire treatment. Paying the invoice does not move the copyright. Jurisdictions differ in the detail, and the pattern holds everywhere: ownership is whatever the contract says in writing, and silence favors the builder.
So the first line of the handover test is dull and legal. You want a written assignment of all intellectual property in the deliverables, effective on payment, naming code, prompts, configuration, evaluation cases, and documentation. The prompts matter more than people expect. On an agent build, the prompt set and the test cases that prove it behaves are a large share of the actual work.
Lock-in gets expensive because AI engagements end
Gartner, in research published in June 2025, expects more than 40% of agentic AI projects to be canceled by the end of 2027, citing cost, unclear business value, and risk controls. Separately, an MIT NANDA study reported by Fortune in August 2025 found that roughly 95% of generative AI pilots produced no measurable profit-and-loss impact, with about 5% driving rapid revenue gains.
Read those as a base rate for churn rather than a reason to avoid building. Most engagements end. Some end because the project failed, some because it worked and moved in-house, some because the agency pivoted or closed. Ownership decides whether that ending is an afternoon of admin or a rebuild from zero. We covered the delivery side of those failure rates in why your AI pilot died. Losing a system you own is a different failure: the pilot worked, and you still lost it.
Moving infrastructure later is also harder than the plan assumes. Gartner research reported by Network World in May 2025 projects that by 2028, 25% of organizations will have experienced significant dissatisfaction with their cloud adoption, and that by 2029 more than half will not get the results they expected from multicloud deployments, with interoperability friction between vendors named as a driver.
The handover test: five questions, asked before money moves
- Whose GitHub organization holds the repository on day one? “We transfer it at the end” is a different answer from “yours from the first commit”. Only one of them survives a disagreement.
- Whose name is on the infrastructure billing? If the agency pays the hosting and database bills and rebills you, your production system lives inside somebody else’s account.
- Who creates the API keys and third-party accounts? Keys created inside your accounts can be rotated by you tonight. Keys created inside theirs cannot.
- What exactly is the documentation deliverable? Ask for the artifact list: runbook, environment variable reference, deploy steps, failure modes, recovery steps. A recorded walkthrough is a good addition and a poor substitute.
- Can I take a full copy today, mid-project, without asking permission? If the honest answer is no, you are not a client. You are a tenant.
If a vendor gets uncomfortable at question two, you learned what you needed for the price of one email.
Locked-in versus owned, asset by asset
| Asset | Locked-in version | Owned version | How to verify in a minute |
|---|---|---|---|
| Source code | Agency GitHub org, transferred “at project end” | Your GitHub org from the first commit | Open your org and look for the repo |
| Database | Agency project, you get a dashboard login | Your account, your billing, agency invited as a member | Check whose card is on the invoice |
| API keys | Created and stored by the agency | Created by you, granted to them, revocable | Rotate one key and see who calls |
| Model API spend | Bundled inside a monthly fee | Billed to your provider account, visible daily | Open your own usage dashboard |
| Documentation | A recorded call | Written runbook committed in your repo | Hand it to an engineer who was not involved |
| Prompts and evals | Described as “our methodology” | Files in your repo under version control | Search the repo for them |
What ownership does not give you
Owning the repository does not mean your team can run the system. That is a second question, and it is the one most handover clauses skip. Ask what the thing costs to operate after handover, in real numbers: hosting, database, model API usage per month at your volume. Ask what breaks first when an upstream API changes, and what the recovery step is. Ask who is on the hook for the 30 days after launch.
An owned system nobody can maintain is a slower kind of lock-in. The fix is boring and works: standard infrastructure instead of a proprietary platform, written runbooks instead of tribal knowledge, and a fixed post-launch support window stated in the scope rather than negotiated after something breaks.
The law is moving your way, slowly, and it does not cover your agency
The EU Data Act gives cloud customers switching rights that started applying on 12 September 2025. In a 2025 briefing, Raj Shah of the law firm Mishcon de Reya set out the mechanics: a two month notice period, a 30 day transition window that can be extended to seven months, switching charges capped at cost in the interim and banned outright from 12 January 2027.
That is aimed at cloud service providers, not at the agency building your automations, and no regulation will retrieve a repository from a vendor who has stopped replying to email. Useful direction of travel. Not a substitute for a clause you write yourself.
What we do about it, and why we say it out loud
Every build we ship runs on the client’s GitHub, the client’s database, and the client’s hosting and API accounts, created in their name on day one rather than migrated at the end. Documentation is written for the client’s team. Zero lock-in is something we sell, not a concession we make when someone pushes.
The reasoning is self-interested. When leaving is easy, the only thing holding a client is the work being good, and that is the right incentive to run a company on. Same logic as publishing every price on one page: an AI Workforce Sprint is a fixed price and a fixed scope over four to six weeks, with handover as the default ending rather than an exit clause.
It also comes from having been on the wrong side of a number we did not control. Our own D2C brand was scaling spend on an ad platform dashboard reporting 4.87x return while the ledger showed between 0.33x and 0.50x. We found that out by building our own ad-spend truth engine on our own data, inside our own accounts. Had that system lived in a vendor’s environment, the number we could not see would have stayed unseeable.
If you are still weighing an agency against an internal hire, the actual math on agency versus in-house covers the cost side. Ownership is the part most quotes leave out entirely.
Send the five questions to whoever you are about to sign with. Or describe the job you want automated and you get a written plan back within one business day: fixed price, fixed scope, and the exact list of what lands in your accounts at the end. No call required. Start async.