This document provides guidelines for writing clear and consistent commit messages for the AI Tools Hub project.
<type>(<scope>): <subject>
<body>
<footer>
Must be one of the following:
- 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
- chore: Changes to the build process or auxiliary tools and libraries such as documentation generation
The scope should be the name of the affected component:
- tools: Changes to AI tools data or structure
- ui: User interface changes
- docs: Documentation changes
- config: Configuration files
- assets: Images, icons, or other assets
- analytics: Analytics or tracking related changes
- seo: SEO optimization changes
The subject contains a succinct description of the change:
- Use the imperative, present tense: "change" not "changed" nor "changes"
- Don't capitalize the first letter
- No dot (.) at the end
- Maximum 50 characters
Just as in the subject, use the imperative, present tense. The body should include the motivation for the change and contrast this with previous behavior.
The footer should contain any information about Breaking Changes and is also the place to reference GitHub issues that this commit Closes.
feat(tools): add new AI writing tool ChatGPT
fix(ui): resolve mobile navigation menu not closing
The mobile menu was staying open after clicking a navigation link.
Added event listener to close menu on link click for better UX.
feat(tools): restructure tools data format
BREAKING CHANGE: Tools JSON structure has changed from array to object
with category grouping. Update any scripts that parse tools data.
Closes #15
docs: update README with new installation instructions
fix(analytics): correct event tracking for tool clicks
Fixes #23
- Write clear, descriptive commit messages
- Use present tense ("add feature" not "added feature")
- Keep the subject line under 50 characters
- Reference issues and pull requests when applicable
- Group related changes into single commits
- Make atomic commits (one logical change per commit)
- Use vague messages like "fix stuff" or "update code"
- Include multiple unrelated changes in one commit
- Use past tense in commit messages
- Exceed 72 characters in the body lines
- Commit commented-out code or temporary files
feat(tools): add [Tool Name] to [Category] category
- Add [Tool Name] with comprehensive description
- Verify free tier availability and functionality
- Include proper categorization and metadata
feat(tools): add 5 new AI coding tools
- Add GitHub Copilot, Replit AI, Tabnine, Cursor, and Aider
- All tools verified for free tier availability
- Enhance AI Coding & Development category coverage
fix(ui): resolve [specific issue]
- Describe what was broken
- Explain how it was fixed
- Mention any side effects or considerations
docs: update [document name]
- List specific changes made
- Mention any new sections added
- Note any deprecated information removed
perf(ui): optimize tool card rendering
- Implement lazy loading for tool images
- Reduce DOM queries in filter function
- Improve page load time by ~200ms
feat(search): implement advanced search functionality
- Add real-time search across tool names and descriptions
- Include category-based filtering
- Enhance user experience with instant results
feat(categories): add AI Local Models category
- Create new category for local AI model tools
- Add 6 initial tools: GPT4All, Ollama, LM Studio, etc.
- Update navigation and filtering logic
This project may include commit message linting to ensure consistency. Make sure your commit messages follow these guidelines to pass automated checks.
If you have questions about commit message guidelines, please:
- Check existing commit history for examples
- Open an issue for clarification
- Ask in the community discussions
Remember: Good commit messages help maintainers and contributors understand the project history and make debugging easier!