Single tool 'add-note' has a clear verb-noun name and proper JSON Schema with typed parameters. However, the tool description is minimal (18 chars: 'Add a new note'), falling well below the 50-200 char baseline for LLM-optimized descriptions. Parameters 'name' and 'content' lack individual descriptions entirely, LLMs cannot infer what 'name' means (display name? unique ID? filename?) or what 'content' should contain. No output schema is documented. No error handling guidance (e.g., what if a note with that name already exists?). The tool modifies state (WRITE risk) but the description does not explicitly state this, violating the command-tool pattern. No parameter constraints (e.g., max length, format rules) are specified.
Add a new note
Tool description is 18 characters ('Add a new note'), far below the 50-200 char baseline. LLMs cannot determine when to use this tool vs. alternatives or what side effects occur.
Parameters 'name' and 'content' have no descriptions. LLMs cannot infer whether 'name' is a display name, unique ID, or filename, or what format/length 'content' should have.
No output schema documented. LLMs do not know what fields the tool returns or how to chain results to downstream tools.
Tool modifies state (WRITE risk) but description does not explicitly state this. Agents need to know which calls are safe to retry and which have irreversible consequences.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
No error handling guidance. What happens if a note with the same name already exists? Should the LLM retry, ask the user, or treat it as fatal?