A Flutter-based mobile AI agent system with built-in tools for device automation, file system operations, document processing, web search, code execution, and image generation.
PocketStrike defines 22 tools with explicit schemas and descriptions. However, quality is inconsistent. Most tools have basic descriptions (50-150 chars) and proper input schemas with required fields. Critical gaps: (1) No output schemas documented anywhere, LLMs cannot predict return structure for chaining; (2) Parameter descriptions are minimal and lack constraints (e.g., 'filePath' has no format guidance, 'pattern' in search_files lacks glob syntax examples); (3) No error handling guidance, tools return plain strings with no recovery hints; (4) Destructive tools (delete_file, batch_move_files) lack confirmation patterns or dry-run support; (5) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite MCP support. Naming is generally good (verb_noun convention), but some tools combine multiple concerns (organize_directory does classification + creation + moving in one call). Average tool description length ~120 chars (within baseline 194), but descriptions lack actionable context for LLM selection.
Moves or renames multiple files/directories in batch from source to destination paths.
Evaluates a basic arithmetic expression with + - * / % ^ and parentheses. Example: "(4 + 2) * 3.5".
Runs safe Dart logic or evaluates programmatic code snippets in an isolated environment.
Creates a new directory folder at the specified path.
Deletes a file or directory at the specified path.
Parses text, markdown, JSON, or code files and extracts clean structured content.
Formats raw text or structured notes into GitHub Flavored Markdown.
No output schemas documented. LLMs cannot predict return structure, breaking tool chaining and forcing agents to guess field names for downstream calls.
Destructive tools (delete_file, batch_move_files) lack confirmation patterns, dry-run support, or error recovery guidance. Agents can irreversibly delete data without safeguards.
Parameter descriptions lack constraints and format guidance. 'filePath' has no examples or path format rules; 'pattern' in search_files lacks glob syntax explanation. LLMs will pass invalid values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite MCP support. Clients cannot distinguish safe reads from destructive writes without parsing descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Generates high-quality 1:1 square AI artwork, photorealistic photos, wallpapers, drawings, and visual scenes using the FLUX.1 neural diffusion engine. Always call this tool whenever the user asks to generate, create, draw, paint, design, visualize, or render an image, artwork, illustration, photo, or wallpaper. All images are generated in square 1:1 format.
Returns real-time mobile battery level percentage and charging state.
Returns the current text content copied to the device clipboard.
Returns the current local date, time and timezone of the device.
Returns hardware and OS system specifications of the mobile device.
Returns real-time network connectivity status and local hostname.
Lists files and directories at the specified path (e.g. "/storage/emulated/0/Download" or "Downloads").
Moves or renames a file/directory from source to destination.
Intelligently organizes files in a directory by type (images, documents, videos, audio, archives, code) into auto-created subdirectories.
Reads text content from a file at the specified path (e.g. "Downloads/notes.txt").
Recursively searches for files matching a pattern or name in a directory tree.
Copies a given text string to the device system clipboard.
Copies text or exports contents to the system clipboard for sharing with external apps.
Searches the web for up-to-date live information, news, weather, and facts.
Writes or overwrites text content to a file at the specified path (e.g. "Downloads/joke.txt"). Creates file if missing.
Error responses are plain strings with no recovery guidance. 'Error: Text cannot be empty' tells LLM nothing about retry strategy or next steps.