AgenTomte

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

AssetLocked-in versionOwned versionHow to verify in a minute
Source codeAgency GitHub org, transferred “at project end”Your GitHub org from the first commitOpen your org and look for the repo
DatabaseAgency project, you get a dashboard loginYour account, your billing, agency invited as a memberCheck whose card is on the invoice
API keysCreated and stored by the agencyCreated by you, granted to them, revocableRotate one key and see who calls
Model API spendBundled inside a monthly feeBilled to your provider account, visible dailyOpen your own usage dashboard
DocumentationA recorded callWritten runbook committed in your repoHand it to an engineer who was not involved
Prompts and evalsDescribed as “our methodology”Files in your repo under version controlSearch 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.

Tell us what you want automated

Describe the work in writing. You get a written reply within one business day: a fixed-price proposal, a scoping question, or an honest referral out.

Start at /start

▸ written reply within one business day · no call scheduled, ever

Doesn't fit a package? Tell us what you need anyway.

Questions? Ask in writing

no chatbot · a human replies

Ask us anything, in writing

A founder replies within one business day. That is the same promise clients get.