Each Git repository containing parts of OMS should comply to these rules:

When working on repositories which include conventional logging, changelog and versioning (currently it's oms-statutory, oms-events, oms-discounts and oms-frontend), the following rules apply:

The development process

The developer, the reviewer, the service maintainer and the deployer can be 1 person if there are not enough people. Also, if there are not enough people (and only if this is the case) the review can be skipped (though this is not recommended).

Git commit names

Each Git repository should comply with conventional commits idea. The commit names should follow this pattern:

As a task, you can use feat (for new features), fix (for bug fixes), chore (for things like version updating), refactor (self-explanatory), style, docs, test.
As a scope, you can use whatever you like to specify what was this commit about.
It's better to provide the Jira task in the commit name so later we can keep track where some bug was fixed.

Try to use imperative mood in the commit name.

Each repository should follow a semantic versioning (the version should match this pattern: major.minor.patch).
When you've added a few feature, then bump the minor version, when you've fixed something, bump the patch version. If there are breaking changes, bump the major version.

You can use commitlint for validating the commit message and put it as a git hook.
Also you can (and it's better to) use conventional-changelog to generate the changelog based on the commits and use it as a post-hook for version upgrade.

For more info and examples, check out oms-frontend, oms-statutory and oms-events repos, which have it integrated.