Pack up your CLI world - skills, settings and sessions - and carry it between machines through your own Google Drive.
Bottari defines 7 tools with complete input schemas and clear descriptions. Naming follows verb_noun convention (bottari_status, bottari_sync, bottari_resolve_conflicts). Descriptions are concise (20-180 chars) and explain state-changing behavior. However, parameter descriptions are sparse or missing entirely, most parameters lack guidance on format, constraints, or dependencies. Output schemas are not documented. Error handling is minimal; no recovery guidance or actionable error messages visible. Tool composition is sound (each does one thing), but parameter documentation falls short of production baseline (100% of A+ tools have param descriptions; this server has ~40% coverage).
Show how the two sides of one unresolved conflict differ.
List the generations (versions) of the cloud bundle.
List the project folders registered for sync on this machine.
Record answers for conflicts (local: this machine's version / remote: the cloud's / both: keep both). The next bottari_sync applies them.
Bring files back to an earlier generation. Without confirm it only previews what would change; apply by calling again with confirm:true after the user has agreed. Nothing ever gets deleted.
Preview what would go up or down. Changes nothing.
Parameter descriptions missing or incomplete. 'id' in bottari_get_conflict_diff, 'limit' in bottari_list_generations, 'generation' and 'pathPrefix' in bottari_restore lack guidance on format, constraints, or valid ranges. Baseline: 100% of A+ tools have param descriptions.
Output schemas not documented. Handlers return structured objects (e.g., {generation, plan}, {status, generation, uploaded, conflicts}) but no schema is visible in tool definitions. LLMs cannot plan downstream calls without knowing return structure.
Error handling lacks recovery guidance. Handlers throw generic errors ('No bundle in the cloud', 'The key is not stored') with no actionable next steps. Baseline: error responses must tell LLM what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Run a sync. When conflicts exist, the conflict-free part is committed (union merge makes that always safe) and the conflict list is returned. Answer with bottari_resolve_conflicts, then call this again to finish.
Parameter 'limit' in bottari_list_generations has no type constraint (min/max). Unbounded numeric parameters let LLMs pass absurd values. Should specify range (e.g., 1 - 100).
bottari_restore lacks confirmation pattern for destructive operation. Tool can restore files to earlier generation; description mentions 'confirm:true' but no dry-run guidance or explicit confirmation workflow documented.