--- name: commit description: Stage and create a Conventional Commits message for the current change --- # /commit Create a well-formed commit following the [Conventional Commits](https://www.conventionalcommits.org) standard. The format is enforced by `gitlint` in the `commit-msg` hook. ## Steps 1. Run `git status` and `git diff` (and `git diff --staged`) to see what changed. 2. Review recent history for style: `git log --oneline -10`. 3. Group the change into a single focused commit. If the working tree mixes unrelated changes, stage selectively (`git add -p` / specific paths) rather than committing everything at once. 4. Write the message in **Conventional Commits** form: ``` [(scope)][!]: ``` 5. Never use `--no-verify`. If pre-commit hooks fail, fix the cause and re-commit. 6. Do not commit secrets, generated artifacts, or work-in-progress to a protected branch (`main` / `dev` / `master`). ## Types | Type | Use for | |---|---| | `feat` | new feature | | `fix` | bug fix | | `refactor` | behavior-preserving restructure | | `test` | add / update tests | | `docs` | documentation | | `style` | formatting only | | `perf` | performance | | `chore` | config / build / tooling | | `build` | build system or dependencies | | `ci` | CI configuration | | `revert` | revert a previous commit | ## Notes - No emoji — the title must start with the `type`. - One logical change per commit; keep the history bisectable. - The summary is imperative mood: "add", not "added" / "adds". - `scope` is optional: `fix(search): …`. A `!` before the colon (or a `BREAKING CHANGE:` footer) marks a breaking change.