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.