Step 1 of 4
Audit schemas for looseness
Every loose type is an invitation the model will accept.
Audit all my tool schemas for constraint weakness. For each parameter record: current type, whether its real domain is narrower (a string that is actually one of 4 modes, a number that must be 1-100), whether it is truly required, whether its description would let a newcomer produce a valid value, and misuse evidence from transcripts (wrong shapes the model has actually sent). Rank the tools by misuse frequency. Deliver the audit table with a proposed tightened type for every weak parameter.
Expected after this step
A parameter-level audit with proposed tightened types.
Should not happen
- ✕Stringly-typed everything, inviting the model to improvise
- ✕Optional parameters that are actually required, causing silent wrong behavior
- ✕Extra invented parameters absorbed silently by permissive parsing
- ✕Validation errors like 'invalid input' that teach the model nothing
Verify before continuing
Do not move on until every check is true. The complete button stays locked until then.
Do not continue if…
- !Stringly-typed everything, inviting the model to improvise
- !Optional parameters that are actually required, causing silent wrong behavior
- !Extra invented parameters absorbed silently by permissive parsing
- !Validation errors like 'invalid input' that teach the model nothing
If the AI messes this up
Use this when the AI fakes progress or breaks the feature. It forces a real fix.
The audit says everything is fine but misuse continues. Pull 10 failed tool calls from transcripts and work backwards - each failure traces to a constraint the schema failed to express.