The AI bookmark manager for busy people. A Next.js application that manages saved content with AI-powered intelligence, automations, and integrations.
Cache App exposes 7 tools with mixed quality. Tool names follow verb_noun convention (get*, list*, search*, update*), which is good. However, descriptions vary widely in depth and actionability. Most tools have basic descriptions (50-150 chars), but lack detail on when to use them vs. alternatives, prerequisites, or expected output structure. Input schemas are present and typed, but several parameters lack descriptions or constraints. The update_composer tool is particularly vague about what patch structure is valid. Error handling and output schemas are not documented. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels.
Return the total size and scope of the saved-content payload available to this automation run.
Get public stats for a GitHub repository: stars, forks, open issues, language, and description.
Page through saved items available to this automation run. Use this before writing the final summary.
Search the user's saved Cache library. Query words are AND-matched across caption, note text, and URL within each item. Prefer concrete names, brands, domains, domainFilters, sourceFilters, or collectionIds over broad category labels. When truncated is true, page with offset to continue the inventory.
Apply a validated composer patch. Batch all state changes into one call. Only include fields that differ from the current composer state; noop patches are rejected. Prefer high-confidence concrete filters (domains, collections, sources, entity names) over generic category searchTerms.
Fetch a public http(s) URL with SSRF protections and a bounded response body.
update_composer lacks schema clarity: 'patch' parameter is an untyped object with no documented structure, constraints, or examples. LLMs cannot infer valid patch format.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., does github_repo return a URL? A numeric star count?). Breaks tool chaining.
No error handling guidance. Tools like web_fetch and web_search can fail (network errors, rate limits, SSRF blocks) but provide no recovery hints. LLMs cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Search the web for current public information using Tavily.
search_library description is verbose (200+ chars) but omits key details: What does 'truncated: true' mean? How do offset/limit interact? What fields are returned per item?
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk levels. update_composer is marked WRITE but lacks annotation. Agents cannot infer safety properties.