A tool to generate commit messages based on git diffs.
Two tools with basic schemas but significant quality gaps. Tool names lack action verbs (git-changes-commit-message should be get_git_diff or extract_git_changes). Descriptions are present but generic, they don't explain WHEN to use each tool or dependencies between them. Parameter descriptions are minimal. No output schema documentation. Error handling returns raw error messages without recovery guidance. The push-changes tool is irreversible but lacks confirmation/dry-run pattern. No input validation or constraint documentation.
Extract the Git diff of the current repository. This tool helps generate detailed commit messages by providing a comparison of changes. When prompted to commit changes, use this tool to automatically capture the differences and craft meaningful commit messages based on the modifications.
Commit and push the changes to the Git repository. This tool allows you to push your changes with a meaningful commit message. Before performing the push please generate a commit message using the 'git-changes-commit-message' tool.
Tool names lack action verbs. 'git-changes-commit-message' is a noun phrase; should be 'get_git_diff' or 'extract_git_changes'. LLMs infer intent from verb-first names.
No output schema documented. Callers cannot predict the structure of git-changes-commit-message response (modified[], added[], deleted[], details{}). LLMs must guess field names for downstream processing.
push-changes is irreversible (commits and pushes) but lacks confirmation/dry-run pattern. No way for agents to preview changes before executing. Violates pattern:confirmation-request.
Error handling returns raw error.message without recovery guidance. 'Failed to get git changes: ...' tells LLM nothing about what to do next. Should categorize as retryable/user-fixable/fatal and suggest next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
No input validation or constraint documentation. 'message' parameter in push-changes has no length limits, format rules, or examples. LLMs may pass empty strings or shell-injection payloads.