A standardized commit convention and release management tool for your repository using standard-version.
- ✅ Enforced Commit Conventions - Uses Conventional Commits format
- 🎯 Automated Versioning - Semantic versioning (major, minor, patch)
- 📝 Changelog Generation - Automatic CHANGELOG.md with icons
- 🔒 Git Hooks - Pre-commit and commit-msg validation via Husky
- 🎨 Icon Support - Each commit type has a dedicated icon in releases
- 🎯 Enhanced Release Process - Clear console guidance and optional auto-commit for release notes
- 🤖 AI-Optimized Workflow - Built-in guidance for AI assistants with clear next steps and automated git operations
Install the package globally or as a dev dependency in your project:
# Install globally
npm install -g @programinglive/commiter
# Or install as dev dependency
npm install --save-dev @programinglive/commiter
# Or use npx (no installation required)
npx @programinglive/commiterAfter installation in your project, the Husky hooks will be automatically set up for commit message validation.
For a guided end-to-end engineering workflow, install the Development Workflow MCP Server alongside Commiter:
npm install --save-dev @programinglive/dev-workflow-mcp-serverFollow the configuration steps in that repository's README to connect your IDE assistant and automate the standard development workflow (start task → implement → test → document → commit → release).
All commits must follow the Conventional Commits specification:
<type>(<scope>): <subject>
<body>
<footer>
| Type | Icon | Description | Changelog Section |
|---|---|---|---|
feat |
✨ | New feature | ✨ Features |
fix |
🐛 | Bug fix | 🐛 Bug Fixes |
perf |
⚡ | Performance improvement | ⚡ Performance |
refactor |
♻️ | Code refactoring | ♻️ Refactors |
docs |
📝 | Documentation changes | 📝 Documentation |
style |
💄 | Code style changes | 💄 Styles |
test |
✅ | Test additions/changes | ✅ Tests |
build |
🏗️ | Build system changes | 🏗️ Build System |
ci |
👷 | CI/CD changes | 👷 Continuous Integration |
chore |
🧹 | Maintenance tasks | 🧹 Chores |
revert |
⏪ | Revert previous commit | ⏪ Reverts |
# Feature
git commit -m "feat(auth): add JWT authentication"
# Bug fix
git commit -m "fix(api): resolve null pointer exception"
# Breaking change
git commit -m "feat(api)!: redesign user endpoint
BREAKING CHANGE: The user endpoint now returns different data structure"
# With scope and body
git commit -m "perf(database): optimize query performance
Reduced query time by 50% using indexed columns"For bug fixes and minor changes:
npm run release:patchFor new features (backwards compatible):
npm run release:minorFor breaking changes:
npm run release:majorFor fully automated release with git operations:
npm run release:completeThis command:
- Runs the standard release process
- Automatically commits release notes with versioned message
- Pushes changes to remote
- Provides success confirmation
Let standard-version determine the version bump based on commits:
npm run releaseNote: This command shows clear guidance for git operations needed after release notes generation.
- 🧪 Runs tests - Detects your package manager and runs the
testscript automatically (tests only run during release, not on commit) - 📊 Analyzes commits - Examines commits since last release
- 📘 Verifies documentation – Warns if
docs/PRD.mdis missing so every project keeps an up-to-date PRD - 🔢 Bumps version - Updates version in
package.json - 📝 Updates changelog - Generates
CHANGELOG.mdwith icons - 📋 Generates release notes - Creates and stages release notes entry
- 🏷️ Creates tag - Creates a git tag for the release
- 💾 Commits release - Commits changes with format:
chore(release): v1.2.3 🚀 - 🎯 Shows next steps - Provides clear guidance for git operations needed
When using npm run release, the tool provides clear console guidance:
🎯 Release notes generated and staged successfully!
📋 NEXT STEPS REQUIRED:
✅ Release notes have been staged for commit
🔄 You need to commit and push the release notes:
git commit -m "docs: update release notes for version"
git push
💡 AI ASSISTANCE:
🤖 Use the dev-workflow MCP server to handle the commit and push automatically
📝 The release notes are now staged and ready for commit
Use npm run release:complete for full automation:
- ✅ Release completed
- ✅ Release notes generated
- ✅ Changes committed
- ✅ Changes pushed
After running a standard release command, push to remote:
git push --follow-tags origin mainFor complete releases, pushing is handled automatically.
The following hooks are automatically enforced:
- commit-msg: Validates commit message format using commitlint
- pre-commit: Empty hook (tests are run only during release, not on commit)
package.json- Containsstandard-versionconfigurationcommitlint.config.js- Commitlint rules.husky/commit-msg- Commit message validation hook.husky/pre-commit- Pre-commit test hook
Ensure your commit message follows the format:
type(scope): subject
Valid types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert
Release commits generated by standard-version such as chore(release): 1.0.0 🚀 are automatically ignored by commitlint.
For new projects without any version tags, use the first release command to start from version 0.0.1:
npm run release:firstRunning the first release command:
- Sets the initial version to 0.0.1
- Creates the first git tag
- Generates the initial CHANGELOG.md
- Commits the release with proper formatting
This ensures your project starts with a clean, semantic version foundation. Replace the default test script with your real test command once available.
To see what would happen without making changes:
npm run release -- --dry-runThe project includes a professional landing page in the web/ directory.
To run the website locally:
npm run webThis will serve the website at http://localhost:3000.
Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
MIT License - see the LICENSE file for details.
This project is open source and free to use, modify, and distribute at your own risk.