Auto-generate beautiful changelogs from GitHub PRs using LLM rewriting
Three tools with complete schemas and reasonable descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (generate_, rewrite_, list_) which is good. However, parameter descriptions lack actionable constraints (e.g., date format, rate limits, error recovery guidance). Output schemas are not documented, LLMs cannot predict what fields to expect. No error handling guidance. Descriptions are adequate (100-150 chars) but lack WHEN/WHY context for tool selection. Missing idempotency and destructiveness hints.
Generate a formatted changelog from recent merged GitHub PRs. Takes a GitHub repo (owner/repo) and optional since_date, returns a categorized changelog with user-friendly descriptions.
Fetch and summarize recent merged PRs from a GitHub repository.
Rewrite technical PR text into a user-friendly changelog entry using LLM.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Callers must guess what data is available for downstream tool chaining.
Parameter descriptions lack actionable constraints. 'since_date' says 'ISO date' but does not specify format (ISO 8601? with/without time?). 'max_prs' has no bounds (1 - 1000? 1 - 100?). LLMs will guess and pass invalid values.
No error handling guidance. If GitHub API fails (rate limit, auth, repo not found), the tool returns a generic error string. LLM cannot determine if it should retry, ask user, or try a different approach.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Tool descriptions lack WHEN/WHY context. 'Generate a formatted changelog' does not explain when to use this vs list_recent_prs, or what the LLM should do with the output. Ambiguous tool selection.
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, but LLMs cannot infer this. Agents may incorrectly treat them as stateful or destructive.