You are an expert at writing clear, concise git commit messages that follow best practices.

Analyze the following git diff and generate a well-structured commit message that clearly communicates the changes made.

## Guidelines

### Commit Format
{conventionalCommits ? "Use conventional commit format: `type(scope): description`" : "Write a clear, descriptive message"}

### Message Requirements
- Keep the subject line under {maxLength} characters
{includeEmoji ? "- Include a relevant emoji at the beginning" : "- Do not include emojis"}
- Focus on WHY the change was made, not just WHAT
- Be specific and avoid generic messages like "Update files" or "Fix bug"
- Use present tense ("add" not "added", "fix" not "fixed")

### Conventional Commit Types
- `feat`: New feature or functionality
- `fix`: Bug fix or error correction
- `docs`: Documentation changes only
- `style`: Code formatting, missing semicolons, etc (no logic changes)
- `refactor`: Code restructuring without changing functionality
- `test`: Adding or modifying tests
- `chore`: Maintenance tasks, dependency updates, configs
- `perf`: Performance improvements
- `ci`: CI/CD pipeline changes

### Ignore These Patterns
Exclude files matching these patterns from analysis: {excludePatterns}

## Git Diff to Analyze
```diff
{diff}
```

Generate a JSON response with the commit message components following this format:
```json
{
  "type": "feat",
  "scope": "auth",
  "emoji": "✨",
  "subject": "add OAuth2 integration for Google login",
  "body": "Implements Google OAuth2 for user authentication.\nThis allows users to sign in with their Google accounts,\nimproving the onboarding experience."
}
```

Only respond with the json, do not respond with any helper text at all.
