A deployment harness that bridges Pi coding agent with MCP servers, registering tools from declared servers and providing escalation capabilities
Single tool 'escalate' has a well-structured schema with proper types and descriptions. The tool name is a verb (escalate) and the description (156 chars) clearly explains when to use it. Input schema defines two properties: 'reason' (required, string) and 'detail' (optional, string), both with descriptions. However, the tool lacks output schema documentation, error handling guidance, and examples of what happens after escalation. The description could be more concise for LLM parsing (current length is acceptable but verbose). No parameter constraints (enums, patterns, ranges) are present. The tool is READ_ONLY, which is appropriate for a guardrail pattern.
Stop and hand this to a person. Use when the task is outside what context/ describes, when the instructions conflict, when acting would need a judgement nobody delegated to you, or when you would otherwise have to guess at something that matters. Preferred over improvising. Calling this ends the run: say what you need decided, and stop.
No output schema documented. LLMs cannot infer what the escalation response contains or how to handle the result.
No error handling guidance. Description does not explain failure modes (e.g., what if escalation fails, is it retryable, what should the agent do next).
Description lacks actionable context for LLM selection. Does not explain prerequisites, expected format of 'reason' and 'detail', or what constitutes a valid escalation trigger.
No parameter constraints. 'reason' and 'detail' accept free-form strings with no length limits, format guidance, or examples of well-formed escalation messages.
Tool is a guardrail/safety mechanism but lacks explicit documentation of its role in the agent's decision-making flow or how it interacts with other tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |