Critical failures across all dimensions. Tools use a generic action-dispatch pattern with free-form JSON params instead of explicit, typed parameters. No input schemas visible in source, only 'action' enum and 'params_json' string. Descriptions are present but generic (10-50 chars for most). No output schemas documented. Tool #5 (caddy_ingest_topology) has zero input parameters, making it impossible to control behavior. Error handling absent. This server prioritizes internal flexibility over LLM usability.
Natively ingest the live Caddy topology into epistemic-graph as typed nodes. Reads the reverse-proxy upstreams (get_reverse_proxy_upstreams) and the HTTP servers/routes config (get_routes) via the real client, then pushes them into the knowledge graph as :ReverseProxy / :Route / :Upstream nodes with :hasRoute / :routesToUpstream / :proxiesTo links through native ingestion. Engine, validation, and transaction failures propagate.
Manage Caddy configuration and server control.
Inspect Caddy observability and profiling endpoints (metrics, expvar, pprof).
Manage Caddy PKI app CAs and certificates.
Query Caddy reverse proxy upstream health and status.
No input schemas visible. All tools use generic 'action' enum + 'params_json' string dispatch pattern. LLMs cannot infer valid parameter names, types, or constraints. Violates pattern:constrained-input and pattern:tool-description.
Tool descriptions are generic and under 50 chars. 'Manage Caddy configuration and server control' does not explain WHEN to use this tool vs others, what it returns, or which actions are destructive. Violates pattern:tool-description baseline (194 chars avg).
caddy_ingest_topology has zero input parameters. LLM cannot control which topology to ingest, filters, or output format. Tool is opaque and non-composable. Violates pattern:tool (each tool should do one thing with explicit inputs).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | <=2025-11-25 | v2 |
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does get_routes return route_id?). Violates pattern:tool (document output schema).
No error handling guidance. If 'action' is invalid or params_json is malformed, LLM receives no recovery hint. Violates pattern:recovery-guide.