Skip to course content
Free CrewAI course

CrewAI for Multi-Agent Automation

Unit 10.04: The handover note and its stated limits

The deliverable is a document someone else can operate from - including the parts you would rather not write down.

What it does, what it does not, and what it costs

Scope, exclusions, agents and their access, the gate, guardrails, budgets, measured results, known limits, who to call, and next steps.

The code prints a complete handover note.

import json

handover = {
    "what_it_does": "approves supplier invoices under 5,000 against contract terms",
    "what_it_does_not_do": ["new suppliers", "credit notes", "non-USD/EUR",
                            "anything without a purchase order"],
    "agents": {"Extractor": "read-only", "Contract checker": "read-only",
               "Approver": "no tools", "Poster": "the only write access"},
    "human_gate": "before posting, approver band by amount",
    "guardrails": ["amount ceiling in the tool", "approver required",
                   "positive amount", "registered tools only"],
    "budgets": {"tokens": 15_000, "usd": 0.05, "seconds": 60},
    "measured": {"items_automated": "62% of volume",
                 "human_hours_saved": 66, "error_rate": "5% vs 2% manual"},
    "known_limits": ["error rate is higher than manual -- accepted for the "
                     "hours saved, reviewed monthly",
                     "PDF extraction fails on scanned invoices",
                     "no test for two approvers on the same account"],
    "who_to_call": "the finance systems team",
    "next_steps": ["scanned-invoice path", "second-approver test",
                   "re-measure error rate after 3 months"],
}
print(json.dumps(handover, indent=2))

print("\nThe error rate being WORSE than manual is stated plainly, with the")
print("trade that justifies it. A handover that hides that is not a handover.")

known_limits states plainly that the error rate is *worse* than manual - 5% against 2% - with the trade that justifies it and a monthly review. That is the number a handover is most tempted to omit, and omitting it means the next person discovers it from a complaint.

who_to_call and next_steps are what make this operable rather than archival. A handover with no named owner is a system nobody maintains.

The mistake this prevents

The mistake is writing the note for sign-off rather than for the person who inherits it. Notes written for approval omit the limits, report the flattering metric, and leave out who to call - and they are read exactly once, by someone who is not the person who will need them.

Takeaway

State what it does not do, state the metrics that look bad along with the trade that justifies them, and name an owner. A handover written for sign-off is not a handover.