cast-code exposes 30 tools with mixed quality. Most tools have descriptions (good), but critical gaps exist: glob and grep lack input schemas entirely (schema=0), shell_background and shell_background_kill have empty input objects (schema=0), and many tools lack parameter-level descriptions. Naming is generally verb-first and clear (memory_write, task_create, read_file), but some tools are vague (analyze_impact, cast_command). Error handling is absent, no recovery guidance, no categorization of retryable vs fatal errors. Output schemas are undocumented. The server is STDIO-only, which caps protocol readiness at 50 regardless of definition quality. Average per-tool score: 52.
Analyze the impact of code changes on the project. Shows which files, modules, and tests are affected.
Ask the user a question interactively. Use this when you need clarification, preferences, or decisions from the user before proceeding. This is better than guessing!
Execute a Cast CLI command. Use this to run any /command available in the system.
Edit a file by replacing old text with new text.
Enter planning mode for complex tasks. In plan mode, you MUST explore the codebase using read_file, glob, and grep to understand the architecture, then create a detailed plan. IMPORTANT: When using exit_plan_mode, you MUST provide a comprehensive list of tasks that make up the plan.
Exit planning mode and present the plan for user approval. CRITICAL: You MUST provide ALL the tasks you planned in the `tasks` array. If you do not provide any tasks, the plan will be empty. The user will see all tasks and can approve, modify, or cancel the plan.
Five tools have no input schema: glob, grep, shell_background, shell_background_output, shell_background_kill. LLMs cannot determine what parameters to pass.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., task_id from task_create, file_id from write_file).
No error handling or recovery guidance. Tools like shell and write_file can fail catastrophically (permission denied, disk full, command timeout) but provide no actionable error messages or retry hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Find files matching a glob pattern.
Search for text patterns in files.
List all available specialized sub-agents with descriptions, capabilities, and dispatch instructions. Use to decide which agent to delegate work to.
List all available CLI commands organized by category with descriptions.
List support files inside a loaded skill package. Use this after read_skill when a skill mentions references, templates, scripts, assets, or skill_view.
List all available skills with descriptions and a preview of key guidelines. Call read_skill(name) to get the full content of a skill.
List directory contents.
Read from persistent project memory. Without a filename, lists all memory files. With a filename, returns its contents.
Search persistent local memory using the SQLite FTS index, with markdown compatibility fallback. Use natural-language queries.
Save a note to persistent project memory. Use this to record important learnings, patterns that worked, mistakes to avoid, and project-specific insights. Memory persists across sessions.
Search the linked Cast platform Memory/RAG index for project docs, decisions, and indexed context. Use a natural-language query. If the user asks what memory contains, call with an empty query to list indexed sources.
Read file contents from the project filesystem.
Load the full content of a specific skill by name. Use list_skills first to see what is available.
Save a reusable code snippet to the personal vault. Use when you create a useful pattern, utility, or solution worth reusing across projects.
Execute a shell command.
Start a background shell process.
Kill a background shell process.
Get output from a background shell process.
Read a reference, template, script, or asset file from inside a loaded skill package. Paths must be relative to the skill package root.
Create a new task. Use this when breaking down complex work into trackable subtasks. The task will be shown to the user for approval.
Get full details of a specific task including description and metadata.
List all tasks with their current status. Shows which tasks are ready to execute.
Update an existing task. Use to change status, modify details, or add dependencies.
Write content to a file in the project filesystem.
Destructive tools (write_file, edit_file, shell, task_update with status=failed) lack confirmation or dry-run support. Agents can irreversibly delete or corrupt files without safeguards.
Many discovery tools (list_skills, list_agents, list_commands) have minimal descriptions (40-60 chars) and no guidance on when to call them or what structure they reveal.