Independent disclosure infrastructure for AI agents. A private line from your agent to you.
doof defines 3 tools with clear, domain-specific purposes (hesitate, confess, my_record). All tools have descriptions (10-100 chars) and input schemas with typed parameters. However, descriptions are terse (avg 95 chars vs baseline 194), lack WHEN/WHY guidance, and omit output schema documentation. Parameters have types and descriptions but lack enums, ranges, or format constraints. Error handling and recovery guidance are absent. The tools are well-named (verb_noun pattern) and compose logically, but lack production-grade polish.
Disclose that you made a mistake or were wrong about something after the fact.
Disclose uncertainty before an action. Say that you are unsure the person intended it.
Read your own past disclosures. Returns a ledger of all hesitate and confess calls you have made.
Output schemas not documented. LLMs cannot infer what hesitate/confess/my_record return, forcing guesswork about response structure and downstream tool chaining.
Descriptions lack WHEN/WHY context. 'Disclose uncertainty before an action' tells WHAT but not WHEN to call hesitate vs confess, or what the agent should do with the result.
Optional parameters (status, reversible, severity, whatWouldHaveHelped) lack guidance on when they are needed. LLMs will omit them unless descriptions explain their value.
No error handling or recovery guidance. If my_record fails or returns empty, the LLM has no guidance on what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
severity parameter accepts free-form strings instead of an enum. LLMs may hallucinate values like 'catastrophic' or 'minor' instead of using a defined set.