A browser-local, human-supervised task memory that agents read and write over WebMCP
Keydler has 14 tools with schemas and descriptions present, but quality is inconsistent. Most tool descriptions are extremely terse (4-20 chars), violating the 10-1024 char baseline and failing to explain WHEN/WHY to use each tool. Many parameters lack descriptions entirely (e.g., resume_task, read_task_detail, what_changed have empty input objects). Write operations expose mutation_id and based_on_version as required params, which are implementation details that should be abstracted. No output schemas documented. Error handling exists but is generic. Tool naming is verb-first (good), but composition is unclear, ask_human, request_approval, and reject_approach overlap semantically without clear distinction.
Add a constraint to the task
Add a decision to the task
Ask the human a question
Attach evidence to a step
Mark the task as complete
Create a new task
Log a step in task execution
Read task detail
Empty input schemas on 4 tools (resume_task, read_task_detail, what_changed, and implicitly others).
Tool descriptions are 4-35 characters, far below the 10-1024 baseline and 194-char average for A+ tools. Descriptions like 'Resume task' and 'Read task detail' do not explain WHEN to use, what it returns, or prerequisites. LLMs cannot select tools based on these.
Implementation details (mutation_id, based_on_version) exposed as required parameters on all write tools. These are internal concurrency/idempotency tokens that should be abstracted server-side or optional. Forcing LLMs to manage them violates the chat-data-model pattern.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Reject an approach
Request approval from the human
Resume task
Search this task
Set the next action for the task
What changed since I read this
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., task_id, version, step_id). Violates response-shaper and tool-chain patterns.
Semantic overlap: ask_human, request_approval, and reject_approach all interact with the human but lack clear distinction. No guidance on when to use each vs. others. Violates single-responsibility and tool-chain patterns.