Guide / 2026-09-28

How to hand an AI-built app to a developer for review

A concrete handoff for founders: reproduce the app, show the exact change, list verified behavior and unknowns, and ask a developer for a risk decision.

Canopy Git view showing changed files for review
Canopy Git view showing changed files for review

'The AI built it' is not enough information for someone to maintain or approve an app. Give a developer the repository state, a repeatable way to run it, the behavior you personally checked, and the decisions you need from them. A local preview is a useful demonstration, but it is not a production review.

Freeze one reviewable version

Identify the repository, branch, commit, and pull request that contain the proposed work. If the agent is still editing, wait for a stable checkpoint or open a draft pull request so the developer can inspect a specific diff. Record the target branch and whether a later agent run has changed it. GitHub's review model attaches discussion and checks to a pull request, while later commits can change what was reviewed. Do not send only a chat transcript or a screenshot of the final page.

Give the developer a working route into the app

Write down the setup steps you actually used: required runtime versions, install command, environment-variable *names* and who provides their values, start commands by component, and the local URLs. Keep credentials out of the handoff. If the README is stale, say so and include the working commands. In Canopy, you can show the saved project commands, process output, detected ports, and Preview beside the agent session. The reviewer should be able to reproduce the same state from the named branch without guessing which shell was left open.

Separate observed behavior from agent claims

List three things you personally tried in the running app, including one failure or empty state. Add a short screen recording or screenshots with the URL and date if they help reproduce behavior. For every test, say what you did, what appeared, and whether the result met your request. Then list what you did not test. An agent's 'tests passed' line is evidence of a command it reports running; it does not establish that login, payment, data handling, or deployment is ready.

Ask for decisions by risk

Give the developer specific questions: Can this code be maintained? Are data access and error paths sound? Which tests are missing? What would be required before public deployment? Request early review for authentication, payments, personal data, migrations, public APIs, and infrastructure. GitHub can require reviews, status checks, and conversation resolution on protected branches when configured; those controls help enforce the review you decide you need. A passing check and a pretty preview are still different from a human approval of the actual change.

A handoff should say who owns each judgment.
EvidenceFounder can supplyDeveloper decides
Product behaviorExpected journey and observed resultWhether implementation meets the request
ReproductionBranch, commands, URL, visible failureWhether setup and tests are repeatable
RiskData involved and intended usersSecurity, architecture, migration, and release requirements
ReleaseDesired timing and acceptance criteriaWhether the reviewed version is ready to ship

Close the loop on the same diff

When the developer requests changes, give one agent the exact review comments and the branch to edit. Ask it to report which comments it addressed and the checks it ran. Reopen the app, verify the product behavior again, and have the reviewer inspect the latest diff. GitHub notes that new commits update the pull request and can rerun checks; the final review must cover the changed version, not just the earlier preview. Resolve comments only when the underlying concern is actually addressed.

Copyable resources

Copyable developer handoff

Fill the brackets with your own evidence and remove fields that do not apply.

Project and purpose: [one sentence]
Repository / branch / commit / PR: [links and commit]
How to run locally: [runtime versions, install and start commands, local URLs]
Configuration: [environment-variable names and owner; no values or secrets]
What I checked: [action -> observed result -> expected result, for three cases]
What I have not checked: [known gaps]
Agent changes: [files or behavior changed; link to the diff]
Developer decisions needed: [security, data, tests, maintainability, deployment]
Who approves the final version: [name or role]
Current status: [local demo / draft PR / reviewed / ready for release]

Frequently asked questions

Can I hand over a deployed link instead of the repository?

A deployed link shows behavior, but a developer also needs the source version, configuration shape, change history, and a way to reproduce or inspect failures. Include both when available.

Should I paste my .env file into the handoff?

No. Record variable names, purpose, and who supplies the values. Transfer any required secrets through your team's approved secret-management process.

When should a developer review an AI-built app?

Bring one in before production-sensitive design or release decisions, especially for authentication, payments, personal data, database changes, or infrastructure. A small local prototype can be demonstrated first with its limits stated.

Does a green CI check mean the app is approved?

No. It reports the configured checks for a particular commit. The reviewer still needs to judge the intended behavior, risk, and latest diff.

Browse more Canopy questions →

Sources and further reading