Thank you for your interest in contributing to Clean Commit! We welcome contributions from everyone.
- How to Contribute
- Proposing Changes to the Workflow
- Improving Documentation
- Discussion Guidelines
- Code of Conduct
There are many ways to contribute to Clean Commit:
- Try Clean Commit in your projects
- Share your experience with the community
- Report what works and what doesn't
- Fix typos or unclear explanations
- Add more examples
- Improve existing examples
- Translate documentation
- Suggest improvements to the specification
- Propose new examples or use cases
- Share edge cases we haven't covered
- Help answer questions from other users
- Share your expertise and insights
- Engage in specification discussions
The Clean Commit workflow is intentionally minimal and stable. Changes to the core specification require careful consideration.
Ask yourself:
- Does this change make the workflow simpler or more complex?
- Is this solving a real problem that many users face?
- Can existing types handle this use case?
- Does this maintain the "Clean Code deserves Clean Commit" philosophy?
-
Open an Issue
- Use the "Specification Change Proposal" template (if available)
- Clearly describe the problem you're trying to solve
- Explain why existing types don't work
- Provide real-world examples
-
Include These Details
- Problem: What issue are you addressing?
- Current Behavior: How does Clean Commit handle this now?
- Proposed Solution: What change are you suggesting?
- Examples: Show before/after examples
- Impact: How does this affect existing users?
-
Be Open to Discussion
- The community will review and discuss your proposal
- Be prepared to iterate on your idea
- Consider alternative solutions
- Accept that not all proposals will be accepted
Minor Changes (easier to accept):
- Clarifications to existing documentation
- Additional examples
- Improved explanations
- Edge case guidelines
Major Changes (require strong justification):
- Adding new commit types
- Changing type definitions
- Modifying format rules
- Removing existing types
Documentation improvements are always welcome!
- Clarity: Make explanations easier to understand
- Examples: Add more real-world examples
- Organization: Improve structure and navigation
- Completeness: Fill gaps in documentation
- Accuracy: Fix errors or outdated information
-
Fork the Repository
- Fork the repository on GitHub: https://github.com/wgtechlabs/clean-commit
- Clone your fork:
git clone https://github.com/YOUR-USERNAME/clean-commit.git cd clean-commit -
Create a Branch
git checkout -b docs/improve-examples
-
Make Your Changes
- Edit the relevant markdown files
- Follow existing formatting conventions
- Keep language simple and friendly
-
Use Clean Commit Workflow
📖 docs: improve examples in quick reference 📖 docs (readme): add missing installation step 📖 docs: fix typo in specification
Automate with GitHub Copilot (Optional):
Configure VS Code to auto-generate Clean Commit messages:
{ "github.copilot.chat.commitMessageGeneration.instructions": [ { "text": "Use Clean Commit workflow: <emoji> <type>: <description> or <emoji> <type> (<scope>): <description>. Choose type: 📦 new=user-facing features/functionality, 🔧 update=modify existing code/logic, 🗑️ remove=delete code/features, 🔒 security=fix vulnerabilities, ⚙️ setup=configs/CI/tooling/.github files, ☕ chore=maintenance/deps/LICENSE, 🧪 test=test files, 📖 docs=README/guides/comments, 🚀 release=version tags. Format: lowercase type, present tense (add not added), no period, max 72 chars. Examples: ⚙️ setup: add GitHub funding configuration | 📦 new: user authentication | 🔧 update (api): improve error handling | ☕ chore (deps): bump react version" } ] } -
Submit a Pull Request
- Describe what you changed and why
- Link to any related issues
- Request review from maintainers
When participating in discussions:
- ✅ Be respectful and constructive
- ✅ Focus on ideas, not people
- ✅ Provide concrete examples
- ✅ Listen to different perspectives
- ✅ Assume good intentions
- ✅ Stay on topic
- ❌ Be dismissive or condescending
- ❌ Make personal attacks
- ❌ Derail conversations
- ❌ Spam or promote unrelated content
- ❌ Argue in bad faith
"I think we should consider adding a 'fix' type because bug fixes are common. However, I see how 'update' already covers this. Maybe we could clarify in the docs that bug fixes should use 'update'?"
"This workflow is useless without a 'fix' type. Anyone who thinks otherwise doesn't understand real development."
We are committed to providing a welcoming and inclusive environment for everyone, regardless of:
- Experience level
- Background
- Identity
- Personal characteristics
- Use welcoming and inclusive language
- Respect differing viewpoints and experiences
- Accept constructive criticism gracefully
- Focus on what's best for the community
- Show empathy towards other community members
- Harassment or discriminatory language
- Trolling or insulting comments
- Personal or political attacks
- Publishing others' private information
- Any conduct inappropriate in a professional setting
Violations of the code of conduct may result in:
- Warning from maintainers
- Temporary ban from discussions
- Permanent ban from the project
Report violations to the project maintainers.
- Submission: Submit your pull request
- Review: Maintainers review within 7 days
- Feedback: Address any requested changes
- Approval: Once approved, changes are merged
- Credit: You'll be credited in the contributors list
- Discussion: Open issue for community discussion
- Consensus: Allow time for community input (minimum 2 weeks)
- Decision: Maintainers evaluate based on feedback
- Implementation: If approved, update documentation
- Announcement: Communicate changes to users
- General Questions: Open a GitHub Discussion
- Bug Reports: Open a GitHub Issue
- Security Issues: Contact maintainers directly
All contributors will be recognized in our documentation. Thank you for helping make Clean Commit better!
By contributing to Clean Commit, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Clean Commit!