Semantic Release & Git Conventional Commit Builder
Construct, validate, and format standardized Conventional Commits (v1.0.0) with automated SemVer release impact calculation and instant Git CLI terminal commands.
Commit Configurator
Introduces a new user-facing feature or API capability to the codebase.
Noun specifying module affected.
Output: Closes: #102, #244
GitHub co-author commit attribution.
Semantic Versioning Evaluation
Spec: v1.0.0feat: short description in imperative mood
git commit -m "feat: short description in imperative mood"
Architectural Foundations: The Conventional Commits Specification
The Conventional Commits specification creates a formal structural syntax on top of standard Git commit messages. Modeled originally after the AngularJS commit conventions, it standardizes repository logs so that both humans and automated CI/CD release orchestrators can immediately deduce the scope, intent, and semantic severity of code changes. To evaluate release tag differences or test npm range satisfiability against your bumped versions, you can pair this tool with our SemVer Version Calculator.
Imperative Syntax
The subject must start in the imperative mood ("add feature" instead of "added feature"). This accurately mirrors native Git patch directives like git revert and matches standard commit conventions across Linux and Kubernetes.
Automated Changelogs
Utilities like Semantic Release and Release Please parse commit trees from the last tag, categorizing features and fixes automatically into a polished CHANGELOG.md without manual developer curation.
Machine-Parseable SemVer
By coupling type prefixes with SemVer increments, automated continuous deployment pipelines can calculate whether to ship a patch, minor, or major version to npm, PyPI, or Docker Hub during production merges.
Conventional Commits Formal Structural Anatomy
Every Conventional Commit conforms to the standardized structural grammar:
Commit Type Semantics & Automated SemVer Mapping Matrix
The table below illustrates how the Conventional Commits specification maps directly to automated release managers such as Semantic Release, Lerna, and Google Release Please:
| Commit Type | SemVer Increment | Generated Changelog Section | Triggers Public Release? | Typical Enterprise Scope |
|---|---|---|---|---|
| feat | MINOR | Features | Yes | New API endpoints, front-end views, capabilities |
| fix | PATCH | Bug Fixes | Yes | Security patches, race conditions, null checks |
| BREAKING CHANGE / ! | MAJOR | Breaking Changes | Yes | Deprecated endpoint removal, contract changes |
| perf | PATCH | Performance Improvements | Yes | Database query indexing, algorithmic speedups |
| docs | None | Documentation (Optional) | No | Markdown files, JSDoc strings, developer setup |
| refactor | PATCH (Configurable) | Code Refactoring | Configurable | Code cleanup without changing external behavior |
| chore, ci, test, style | None | Hidden / Maintenance | No | GitHub Actions, linter configs, test coverage |
Automating Team Compliance: husky & commitlint Configuration
To maintain strict git hygiene across engineering teams, implement automated git pre-commit hooks using husky and @commitlint/cli. Along with excluding untracked build artifacts via our Gitignore Template Generator, commit validation prevents broken history and poorly formatted messages from entering pull requests:
1. Install Dependencies
npm install -D husky @commitlint/cli @commitlint/config-conventional
Adds the standard Conventional Commits rule engine and git hook orchestrator to your package dependencies.
2. Create commitlint.config.js
module.exports = {
extends: ['@commitlint/config-conventional'],
};Activates default Conventional Commits rules including imperative mood, max header length, and valid type prefixes.
Frequently Asked Questions (FAQ)
What is the Conventional Commits specification?
The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an explicit set of rules for creating a human-readable, machine-parseable commit history that integrates directly with automated SemVer versioning and changelog generators.
How does this builder determine SemVer release bumps (Major, Minor, Patch)?
According to the Semantic Release standard, any commit containing an exclamation mark (!) or a 'BREAKING CHANGE:' footer triggers a MAJOR release. Commits of type 'feat' trigger a MINOR bump, while types like 'fix', 'perf', 'refactor', and 'build' trigger a PATCH bump. Documentation, CI, chore, and style commits typically produce no automated release.
Why is the commit header subject line recommended to be 50 to 72 characters?
Git log tools, GitHub web interfaces, terminal git log formatters, and email patch notifications truncate lines exceeding 72 characters. Keeping the header at or below 50-72 characters ensures readability across all developer terminal viewports.
What is the imperative mood and why should commit subjects use it?
The imperative mood uses phrasing that commands an action (e.g., "add feature" instead of "added feature" or "adds feature"). This matches the native phrasing conventions generated by git merge and git revert commands.
Does this tool transmit commit messages or code to an external server?
No. All formatting, linting, syntax generation, and clipboard actions occur entirely client-side inside your browser runtime. No code, tokens, or commit metadata are transmitted across the network.
Related & Complementary Utilities
Explore more privacy-first client-side web tools.
Base64 Encoder / Decoder & String Sandbox
Encode plain text to Base64 or decode Base64 strings back to readable format instantly. Supports UTF-8 strings, line breaks, and live byte metrics locally in your browser.
JSON to CSV & CSV to JSON Converter
Convert JSON to CSV and CSV to JSON instantly with custom delimiters, nested object flattening, real-time reactive conversion, dynamic size metrics tracking, and drag-and-drop file ingestion — 100% client-side.
User-Agent String Parser & Inspector
Decode browser versions, operating systems, hardware architecture, layout engines, and AI bot crawlers from HTTP User-Agent strings.
cURL to Fetch & Python Converter
Convert complex terminal cURL commands into clean Python Requests, HTTPX, JavaScript Fetch, Axios, Node.js, PHP, and Go syntax.