The Handoff & Approval Card: a field guide
How to decide when AI work is actually finished, and how to pass it from one AI to another without relying on trust.
The card itself lives in the multi-ai-handoff-card repository. This page explains how to use it: what each field is for, what a filled-in card looks like, and where it tends to go wrong.
Why a card at all
An AI saying "done" is a claim. A card turns that claim into something another person, script or AI can check. The rule is simple: if a field is empty, the work is not done. It is only reported.
Field by field
| Field | What to write | Common mistake |
|---|---|---|
| Task | The request in one sentence, as it was asked | Rewriting the task to match what was done |
| Claimed result | What the AI says it did, quoted or summarised | Mixing the claim with the evidence |
| Risk tier | auto / auto-then-verify / human approval, and why | Choosing a tier after the work is already live |
| Evidence | What was checked, by what, and the result. Not the same AI run | "The AI confirmed it" counted as evidence |
| Changed | Pages, files or systems touched | Listing only the intended changes |
| Rollback | How to undo it, and who can | "Revert if needed" with no method |
| Open items | Anything unverified, ambiguous or skipped | Leaving it blank to look finished |
| Approved by | A named human, or the rule that allowed auto-approval | Approval implied by silence |
A worked example (hypothetical)
This example is invented to show the format. It does not describe a real incident.
TASK: Translate the pricing FAQ into Spanish on a draft page
CLAIMED RESULT: "All 12 answers translated and saved as a draft"
RISK TIER: auto-then-verify (draft only; nothing public changes)
EVIDENCE: Script counted 12 answers in source and 12 in draft: pass
Second model, fresh context, compared numbers and
currencies: 1 mismatch (EUR shown as USD): fail
CHANGED: Draft page only
ROLLBACK: Delete the draft; the live page was not touched
OPEN ITEMS: Fix the currency line; native review of tone not done
APPROVED BY: Not yet. Needs a human before publishing
Note what the card does here: the AI's claim was mostly true, but the evidence field shows one failed check and the open items keep it from being called finished.
Machine-readable version
The same card as JSON, for pipelines and for handing work between AIs:
{
"task": "...",
"claimed_result": "...",
"risk_tier": "auto | auto-then-verify | human-approval",
"risk_reason": "...",
"evidence": [{"check": "...", "checked_by": "...", "result": "pass | fail | unclear"}],
"changed": ["..."],
"rollback": {"how": "...", "who": "..."},
"open_items": ["..."],
"approved_by": "..."
}
Download it from the repository: card.json.
Where it still falls short
- A passing check is evidence, not proof. Verifiers can be wrong too.
- A different AI is not automatically an independent one.
- Risk tiers drift when the context of an action changes.
More from AKIO HIRAYAMA
Official website: akiohirayama.com · Notes: Multi-AI Control Notes · Medium · GitHub
AKIO HIRAYAMA is hiring an AI Engineer (USD 30,000 per month) to build this kind of control layer: role details