Three-tier AI agent MCP orchestration system: Chancellor (Opus), Executor (Sonnet), Aide (Haiku) with Supervisor quality review
The Council provides 6 tools with clear naming (verb_noun pattern) and reasonable descriptions (avg ~150 chars). All tools have input schemas with typed parameters. However, output schemas are not documented in the visible code, parameter descriptions lack detail on constraints/formats, and error handling guidance is minimal. Tool composition is sound (each does one thing), but descriptions could be more LLM-optimized per the 50-200 char baseline. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels declared in metadata.
Invoke the Chancellor (Claude Opus) directly for deep strategic analysis and planning. Returns a structured plan with steps, risks, and delegation guidance.
Invoke the Aide (Claude Haiku) for simple, well-defined tasks: formatting, data transformation, text processing, simple utilities. Fast and cost-efficient.
Invoke the Executor (Claude Sonnet) directly for plan implementation. Provide the task and optionally a Chancellor plan as context. The Executor has access to Read, Write, Edit, Bash, Glob, and Grep tools.
Retrieve the state of a Council session by ID, or list all active sessions if no ID is provided.
Retrieve Supervisor verdicts for a session. Use flagged_only to surface only outputs the Supervisor flagged as needing attention.
Output schemas not documented. Tools return complex objects (CouncilSession, ExecutorResponse, SupervisorVerdict) but LLMs cannot see field definitions, types, or which fields are required. This forces LLMs to guess at response structure and risks downstream tool call failures.
Parameter descriptions lack constraint details. 'problem' and 'task' params have minimal guidance on length, format, or complexity expectations. No mention of max input size, required keywords, or examples of well-formed vs malformed inputs.
No tool annotations despite clear risk levels. Metadata declares Risk: READ_ONLY or WRITE, but tools lack readOnlyHint/destructiveHint/idempotentHint annotations in schema. LLMs cannot infer retry safety or side-effect scope from names alone.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Route a problem through The Council. Complex problems invoke the Chancellor for planning then the Executor for implementation. Simple problems go straight to the Executor. Trivial tasks go to the Aide. Returns the full result plus a session ID for follow-up.
Error handling guidance absent. No descriptions of what errors each tool can return, when to retry, or how to recover. E.g., execute_with_executor may fail if the Executor times out or hits token limits, but no guidance on fallback strategies.
session_id parameter semantics unclear. get_council_state and get_supervisor_verdicts accept optional session_id, but descriptions don't explain what happens if omitted (list all sessions?) or how to discover valid session IDs.