Local post-mortem triage for AI agents. Ingests MetricKit/.ips telemetry, symbolicates crashes, clusters them, crosses with version journal, and exposes agent queries via MCP.
Coroner provides 7 tools with explicit schemas and descriptions visible in MCPEngine.swift and Digest.swift. All tools have descriptions (10-150 chars) and input schemas with typed parameters. However, descriptions are terse and lack LLM-optimized guidance on WHEN to use each tool or HOW they chain together. Parameter descriptions are minimal or absent (e.g., 'id' in crash_detail has no description). No output schemas documented. Error handling and recovery guidance are absent. Tool naming is reasonable (verb_noun style: new_since, top_crashes, crash_detail) but some names are domain-specific jargon ('suspects', 'digest') that may confuse LLMs unfamiliar with post-mortem analysis. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Composition is sound, tools are single-purpose and chain logically (new_since → top_crashes → crash_detail → suspects). Missing: parameter constraints (enums for 'kind' are present, but 'period' enum values lack descriptions), output field documentation, and error recovery patterns.
Full post-mortem record for one cluster id (works for any kind).
Deterministic Markdown digest of the journal for a period.
Hang diagnostics (main-thread unresponsiveness) within a period.
Have I seen this failure before? Match by signature or top-frame substring.
Post-mortem records first seen strictly after the given build. Ask this first after a release.
Estimate suspect commits for a cluster: first-seen build/date crossed with git history and the cluster's source anchors (build tags preferred, date window fallback). Estimates, not verdicts.
Top clusters by occurrences.
Parameter descriptions missing or minimal. 'id' in crash_detail, 'signature' in is_known, and 'repo' in suspects lack descriptions. LLMs cannot infer what values are valid or how to obtain them.
Output schemas not documented. Tools return 'Full post-mortem record' or 'Markdown digest' but LLMs cannot plan downstream calls without knowing field names, types, and structure.
No error handling or recovery guidance. Tools do not document what happens on invalid input (e.g., non-existent cluster id, invalid build number) or how LLMs should respond.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Tool descriptions lack LLM-optimized guidance. Descriptions are domain-specific and do not explain WHEN to call each tool or HOW they relate. E.g., 'digest' description does not say 'Call this after new_since to summarize changes.'
No tool annotations despite all tools being read-only. readOnlyHint should be set on all 7 tools to signal to LLMs that these are safe to call without side effects.