AI Founder OS
Proof Packets

What good proof looks like

Proof is not a feeling. It is the output of verification commands and git history. Every handoff you write should answer two questions: did the build pass, and can someone else see exactly what changed?

Proof packet pipeline

CodeVerifyCommitProveHandoff

Proof packet anatomy

HANDOFF PACKETSummary1–3 bullets of what changedFiles Changedpath + new / modified / deletedVerificationtsc + build resultsGit Proofsgit show --stat & --name-onlyNext Stepswhat to do after this task

Every handoff packet must include the literal output of git show --stat HEAD and git show --name-only HEAD. No exceptions. The six examples below show the format for web, backend, and mobile tasks.

Key idea

Proof is the literal output of verification commands pasted into the handoff. Summaries, paraphrases, and "it worked" are not proof. If the git output is not in the packet, the task is not done.
1

Web copy change: rewrite one FAQ answer

Scope

Update a single FAQ answer to be clearer and shorter.

Hotspot boundaries

  • app/faq/page.tsx

Verification commands

  • npx tsc --noEmit
  • npm run build

Commit message

fix(faq): rewrite billing answer for clarity

Example handoff packet

HANDOFF PACKET
Summary: Rewrote the billing FAQ answer. Removed jargon, shortened to two sentences.
Files changed: app/faq/page.tsx (1 file, 4 insertions, 6 deletions)

Verification:
  npx tsc --noEmit   0 errors
  npm run build      all routes rendered, 0 errors

Git proof:
  git show --stat HEAD
  <commit sha> (HEAD -> main)
      app/faq/page.tsx | 10 ++++------
      1 file changed, 4 insertions(+), 6 deletions(-)

  git show --name-only HEAD
  <commit sha> (HEAD -> main)
      app/faq/page.tsx
2

Web bug fix: missing import causes build error

Scope

Fix a build failure caused by a missing import or mismatched dependency.

Hotspot boundaries

  • app/pricing/page.tsx
  • package.json (read only, verify dep exists)

Verification commands

  • npx tsc --noEmit
  • npm run build

Commit message

fix(pricing): add missing Link import

Example handoff packet

HANDOFF PACKET
Summary: Build failed because Link was used but not imported. Added the import.
Files changed: app/pricing/page.tsx (1 file, 1 insertion)

Verification:
  npx tsc --noEmit   0 errors (was 1 error before fix)
  npm run build      all routes rendered, 0 errors

Git proof:
  git show --stat HEAD
  <commit sha> (HEAD -> main)
      app/pricing/page.tsx | 1 +
      1 file changed, 1 insertion(+)

  git show --name-only HEAD
  <commit sha> (HEAD -> main)
      app/pricing/page.tsx
3

Web feature add: new section on a page

Scope

Add a "Do this in order" checklist section to the start page.

Hotspot boundaries

  • app/start/page.tsx

Verification commands

  • npx tsc --noEmit
  • npm run build

Commit message

feat(start): add step-by-step checklist section

Example handoff packet

HANDOFF PACKET
Summary: Added a 4-step checklist section between the intro and the CTA.
Files changed: app/start/page.tsx (1 file, 38 insertions)

Verification:
  npx tsc --noEmit   0 errors
  npm run build      all routes rendered, /start is static, 0 errors

Git proof:
  git show --stat HEAD
  <commit sha> (HEAD -> main)
      app/start/page.tsx | 38 ++++++++++++++++++++++++++++++++++++++
      1 file changed, 38 insertions(+)

  git show --name-only HEAD
  <commit sha> (HEAD -> main)
      app/start/page.tsx
4

Backend endpoint add: new API route

Scope

Add a POST endpoint that accepts a JSON body and returns a confirmation.

Hotspot boundaries

  • app/api/example/route.ts (new)

Verification commands

  • npx tsc --noEmit
  • npm run build
  • curl -s -X POST http://localhost:3000/api/example -H "Content-Type: application/json" -d '{"name":"test"}'

Commit message

feat(api): add example endpoint

Example handoff packet

HANDOFF PACKET
Summary: Created POST /api/example. Accepts { name: string }, returns { ok: true, name }.
Files changed: app/api/example/route.ts (1 new file, 22 insertions)

Verification:
  npx tsc --noEmit   0 errors
  npm run build      /api/example listed as dynamic, 0 errors
  curl POST          returned {"ok":true,"name":"test"} with HTTP 200

Git proof:
  git show --stat HEAD
  <commit sha> (HEAD -> main)
      app/api/example/route.ts | 22 ++++++++++++++++++++++
      1 file changed, 22 insertions(+)

  git show --name-only HEAD
  <commit sha> (HEAD -> main)
      app/api/example/route.ts
5

Mobile UI change: update a screen layout

Scope

Reorganize a React Native screen so the action button is pinned to the bottom.

Hotspot boundaries

  • src/screens/HomeScreen.tsx

Verification commands

  • npx tsc --noEmit
  • npx expo export
  • Manual: open simulator, confirm button is pinned to bottom of screen

Commit message

fix(home): pin action button to bottom of screen

Example handoff packet

HANDOFF PACKET
Summary: Moved the action button into a sticky footer container using flex.
Files changed: src/screens/HomeScreen.tsx (1 file, 12 insertions, 8 deletions)

Verification:
  npx tsc --noEmit   0 errors
  npx expo export    bundle compiled, 0 errors
  Simulator check    button is visible at bottom on iPhone 15 and Pixel 7

Git proof:
  git show --stat HEAD
  <commit sha> (HEAD -> main)
      src/screens/HomeScreen.tsx | 20 ++++++++++++--------
      1 file changed, 12 insertions(+), 8 deletions(-)

  git show --name-only HEAD
  <commit sha> (HEAD -> main)
      src/screens/HomeScreen.tsx
6

Mobile icon update: replace app icon asset

Scope

Replace the app icon with a new design and regenerate native assets.

Hotspot boundaries

  • assets/icon.png (replaced)
  • app.json (icon field, no other changes)

Verification commands

  • npx expo prebuild --clean
  • Confirm ios/<project>/Images.xcassets/AppIcon.appiconset contains new icons
  • Confirm android/app/src/main/res/mipmap-* contains new icons
  • Build and install on simulator to verify icon appears
  • If distributing: upload to TestFlight or internal testing track and confirm icon in store listing

Commit message

chore(assets): update app icon and regenerate native assets

Example handoff packet

HANDOFF PACKET
Summary: Replaced assets/icon.png. Ran prebuild to regenerate iOS and Android icon sets. Verified on simulator.
Files changed: assets/icon.png, ios/ and android/ regenerated icon sets

Verification:
  npx expo prebuild --clean   completed, no errors
  iOS simulator                new icon visible on home screen
  Android emulator             new icon visible in app drawer
  TestFlight (if applicable)   new icon confirmed in build details

Git proof:
  git show --stat HEAD
  <commit sha> (HEAD -> main)
      assets/icon.png | Bin 12040 -> 15320 bytes
      app.json        | 0
      2 files changed, 0 insertions(+), 0 deletions(-)
      (native dirs in .gitignore, regenerated locally)

  git show --name-only HEAD
  <commit sha> (HEAD -> main)
      assets/icon.png
      app.json

Use this format on every task

Copy any example above as a starting point. Replace the placeholders with your actual command output. The goal is zero ambiguity about what changed and whether it works.

View the toolkit
Operator loop: Plan, Build, ProvePlan in ChatGPTBuild with ClaudeProve with checks

Plan. Build. Prove. The proof packet is the last step before handoff.