Three tools with clear verb-noun naming (query_, log_, verify_) and documented descriptions. However, parameter descriptions are minimal or absent, output schemas are not formally documented, and error handling lacks recovery guidance. query_failures returns structured data but log_failure and verify_resolution lack detail on success/failure cases. No input validation constraints (enums, ranges) visible. Descriptions are adequate (50-150 chars) but parameters lack the depth needed for LLM reasoning.
Capture a failure and its fix so future agents can avoid it. If you can, pass `rule` as a WHEN / CHECK / BECAUSE prevention rule you write yourself — you have the full context of the fix. If you omit it, one is generated from the fields you provide.
Find past failures similar to this error or situation.
Confirm that a fix worked. Increments the verified counter.
Output schemas not documented. query_failures returns list[dict] with fields (id, error, solution, rule, verified, score) but no formal schema. log_failure and verify_resolution return dict with undocumented structure. LLMs cannot plan downstream calls without knowing response shape.
Parameter descriptions missing or minimal. 'scope' param in log_failure has description 'Scope of the failure (local or public)' but no enum constraint or guidance on when to use each. 'limit' in query_failures lacks range (min/max). LLMs cannot validate inputs without explicit constraints.
Error handling lacks recovery guidance. No indication of what errors are retryable, what the LLM should do if a failure_id is invalid, or how to handle embedding/search failures. Bare exceptions will confuse agents.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
verify_resolution returns {'verified': ok} where 'ok' is boolean, but semantics unclear. Does True mean the fix was confirmed? Does False mean it failed or was already verified? Response lacks context for agent reasoning.
log_failure 'rule' parameter is optional with default=null, but description does not explain when/why to omit it or what auto-generation does. Agents need guidance on whether to always provide a rule or let the engine generate one.