# Commit

> Commit message convention for this repo (gitmoji + scope + capitalized message) enforced by the danger CI bot. Use whenever creating commits, when the user invokes /commit, or when fixing commit messages that failed CI.

- Skill: `ledgerhq/commit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ledgerhq/commit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ledgerhq/commit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ledgerhq (https://skillmd.com/u/ledgerhq)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ledgerhq/commit

---


## How to commit

We use [gitmoji](https://gitmoji.dev/) for commit messages to standardize and improve readability.

### Commit message rules

The rules are enforced by the `danger` CI bot. Make sure each commit message follows **all** of these requirements:

- **Start with a [gitmoji](https://gitmoji.dev/)** (which can be viewed with `pnpm gitmoji --list`)
- Follow with a **space**
- Specify a **scope** in parentheses, all in **lowercase**  
  Example:
  - `(signer-eth)`
  - `(context-module)`
  - `(chore)`
  - `(release)`
  - `(ci)`
- Do **not** repeat JIRA ticket tags (e.g. `[DSDK-1234]`, `[NO-ISSUE]`) in your commit message—these tags are optional for commits and required in PR titles.
- Add a **colon `:` and a space**
- Write a message that **starts with a capital letter**

**Pattern:**

```
<gitmoji> (scope): Description starting with capital letter
```

**Examples:**

- `💚 (api): Add new endpoint`
- `✨ (cli): Support new flags`
- `🐛 (parser): Fix buffer overflow`

**Special notes:**

If you're unsure which gitmoji to use, you can list all available emojis with:

```
pnpm gitmoji --list
```

You can also see commit message examples by running:

```
git log --oneline
```

Refer to these resources to help you select appropriate emojis and follow the commit convention.

For more details or troubleshooting, see [CONTRIBUTING.md](https://github.com/LedgerHQ/device-sdk-ts/blob/develop/CONTRIBUTING.md).

Commits that don't follow this convention will fail CI and block merging.

### Signed commits

**All commits must be signed** to be merged into protected branches (`develop` and `main`). This is enforced by GitHub branch rulesets.

Make sure you have commit signing configured:

```bash
git config --global commit.gpgsign true
```

If you have unsigned commits, re-sign them before pushing:

```bash
git rebase -i HEAD~N --exec "git commit --amend --no-edit -S"
git push --force-with-lease
```

See [CONTRIBUTING.md](https://github.com/LedgerHQ/device-sdk-ts/blob/develop/CONTRIBUTING.md#signed-commits) for setup instructions.

