Turn messy incident/ops notes into a structured, Confluence-style runbook plus a knowledge-gap analysis. CLI + MCP + optional AI. No API key needed.
Three tools with clear, action-oriented names (forge_runbook, analyze_gaps, get_template) and solid descriptions (100 - 150 chars each). All tools have input schemas with type declarations. However, parameter descriptions are minimal or absent: 'notes' param lacks guidance on expected format/length; output schemas are not formally documented in the tool definitions; no error handling guidance or recovery paths. Schemas are present but sparse, no constraints, enums, or validation hints. Tool composition is sound (each does one thing), but descriptions could be more LLM-optimized per the 50 - 200 char baseline.
Return the knowledge-gap analysis for rough notes: a completeness score (0-100) and the list of missing/weak sections with severities.
Turn rough incident/ops notes into a structured, Confluence-style runbook (Markdown): Summary, Severity, Symptoms, Diagnosis, Resolution Steps, Verification, Rollback, Escalation, Owner. Missing sections are flagged TODO.
Return the canonical runbook section template (order, required, severity).
Parameter 'notes' lacks description and format guidance. LLMs cannot infer expected input size, format (plain text vs markdown), or structure.
Output schemas not formally documented. forge_runbook returns string, analyze_gaps returns dict with 'title'/'completeness'/'gaps', get_template returns list[dict]. LLMs need explicit field documentation to plan downstream calls.
No error handling guidance. Tools do not document failure modes, recovery steps, or what to do if notes are malformed, empty, or too large.
No input validation constraints. 'notes' parameter accepts unbounded strings; no guidance on max length, required sections, or format expectations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Tool descriptions lack WHEN/WHY context. 'Turn rough notes into a runbook' is clear, but missing: when to call forge_runbook vs analyze_gaps, what each returns, and how they differ.