Generate a commit message for these changes:

File changes:
{changes}

Diff:
{diff_content}

Format:
[Action] :: Detail action

Actions:
- [Fix] :: For bug fixes and error corrections
- [Feature] :: For new features and major additions
- [Update] :: For updates and improvements to existing features
- [Refactor] :: For code restructuring without behavior changes
- [Docs] :: For documentation changes
- [Test] :: For adding or modifying tests
- [Style] :: For code style/formatting changes
- [Build] :: For build system or dependency changes
- [CI] :: For CI/CD changes
- [Remove] :: For code or file removal

Guidelines:
- Use imperative mood ('add' not 'adds'/'added')
- Keep descriptions clear and concise
- Reference issues as '#123' at the end if applicable
- For breaking changes, add '!BREAKING!' prefix

Examples:
[Fix] :: Resolve null pointer in user validation
[Feature] :: Add email template customization
[Update] :: Improve database query performance
[Refactor] :: Restructure authentication module
[Remove] :: Delete deprecated API endpoints

Response should be only the commit message, without any additional text or explanations. 