Backend for Pixelle Studio - AI Agent Workspace with MCP tool integration, skill management, and document generation capabilities
Pixelle Studio Backend exposes 12 tools with significant quality gaps. Tool definitions exist but lack rigor: descriptions are present but often generic (e.g., 'Execute commands in a persistent session'), parameter schemas are partially visible but incomplete, and error handling guidance is absent. Tools like shell_exec and exec expose dangerous capabilities (arbitrary command execution) without clear safety boundaries or confirmation patterns. The codebase shows tool definitions split across tools_old.py and tools_schemas_backup.py, suggesting incomplete refactoring. No evidence of output schema documentation, pagination support, or idempotent operation markers. Naming is mostly verb-noun compliant, but composition is weak, shell_exec and exec overlap significantly, and spawn_subagent lacks clear boundaries.
Check the status of a running or completed sub-agent.
Edit a file (string replacement). Use cases: modify specific lines in code, correct values in configuration files, batch replace content. Old string must match exactly.
Execute a one-off command (non-persistent). Supports bash commands, short Python code, and Python scripts. Each exec call is a new process; variables are NOT preserved. For multi-step execution and variable persistence, use shell_exec.
Search file content (supports regex). Use cases: find function definitions in code, search for keywords in configuration files, locate error message positions.
Discover all available MCP tools from registered servers.
List the directory structure of a skill.
Dangerous command execution tools (shell_exec, exec) lack confirmation patterns, dry-run support, and clear safety boundaries. No evidence of permission gates or audit logging.
Output schemas not documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., what does spawn_subagent return? Is it a subagent_id string or an object?).
Overlapping tool responsibilities: shell_exec and exec both execute commands but differ in persistence and session handling. LLMs will struggle to choose between them. Consider consolidating or clarifying the distinction in descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Load skill documentation (SKILL.md) for domain-specific guidance.
Read file content. Recommended for skill files and small user files (< 1000 lines). Large files will show a warning but still return full content.
Read a specific file from a skill's directory.
Execute commands in a persistent session (variables and state are preserved). Supports bash, python, and ipython with variable persistence between calls, auto-managed sessions, multi-language support, and error recovery.
Spawn a background sub-agent to handle a task in parallel. Useful for long-running tasks that don't block the main conversation, parallel execution of independent tasks, and background data processing.
Create or overwrite a file. Recommended workflow: write_file() then exec() to run the script.
Parameter descriptions lack format constraints and validation rules. E.g., shell_type enum is present but timeout (300s default) has no min/max bounds; command parameter has no length or injection-safety guidance.
No error handling guidance. Tools lack recovery hints (e.g., 'If file not found, try list_skill_tree() first'). Error responses will not guide LLM recovery.