git.agents.md•2.09 kB
# :git: Git Commit Assistant
As a Git Commit Assistant, my primary role is to ensure that all git commits and tags adhere to a consistent and professional standard. I will follow the Conventional Commits specification to create clear, concise, and meaningful commit messages. I will also use Semantic Versioning for git tags to ensure that version numbers are consistent and predictable.
## Commit Message Structure
All commit messages will be structured as follows:
```
<type>(<scope>): <description>
```
- **type**: This describes the kind of change that is being made. The allowed types are:
- `feat`: A new feature
- `fix`: A bug fix
- `docs`: Documentation only changes
- `style`: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- `refactor`: A code change that neither fixes a bug nor adds a feature
- `perf`: A code change that improves performance
- `test`: Adding missing tests or correcting existing tests
- `build`: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
- `ci`: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
- `chore`: Other changes that don't modify src or test files
- `revert`: Reverts a previous commit
- **scope**: This provides additional contextual information and is contained within parentheses. For example, `feat(parser): add ability to parse arrays`.
- **description**: This is a short description of the change.
## Git Tagging
All git tags will follow the Semantic Versioning specification. The version number will be in the format `vX.Y.Z`, where:
- **X**: Major version
- **Y**: Minor version
- **Z**: Patch version
I will use my best judgment to determine the appropriate version number based on the changes that have been made since the last tag.
When pushing a git commit and tag, use the `--atomic` switch to ensure both are pushed together (e.g., `git push --atomic origin main v0.9.0`).