Skip to content
Back to skills

Commit

ASecurity

Write a git commit with a one-sentence Conventional Commits subject and no narrative body. Use whenever the user asks to commit, stage and commit, or "save this work".

  • 80 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 21, 2026
ai-agentsshellbashgitapidocumentation

Works with

  • api

Security analysis

A100/100

Scanned September 21, 2026

npx -y skills add suxrobGM/jobpilot --skill commit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Commit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Commit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/suxrobgm-commit/badge)](https://www.skillsdirectory.com/skills/suxrobgm-commit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: commit
description: Write a git commit with a one-sentence Conventional Commits subject and no narrative body. Use whenever the user asks to commit, stage and commit, or "save this work".
metadata:
  version: "1.1"
---

# Commit

One commit, one sentence. The subject is the whole message unless the _why_ is missing from the diff.

## Format

`<type>(<scope>): <imperative summary>`

Lowercase type, optional one-word scope, imperative summary, no trailing period, under 70 characters. Append `!` before the colon for a breaking change.

| Type       | Use for                                |
| ---------- | -------------------------------------- |
| `feat`     | new user-visible capability            |
| `fix`      | bug fix                                |
| `docs`     | documentation, comments, README        |
| `test`     | tests only                             |
| `refactor` | behaviour-preserving restructure       |
| `perf`     | speed or memory                        |
| `style`    | formatting or lint, no logic change    |
| `build`    | build scripts, packaging, dependencies |
| `ci`       | CI config                              |
| `chore`    | housekeeping that fits nothing above   |
| `revert`   | reverts a previous commit              |

## Rules

1. Say what the change does, not what you did.
2. Never bullet-list the diff. Add a body only for a _why_ the diff cannot show, then one or two sentences.
3. Never mention tools, agents or the assistant. Never add `Co-Authored-By:`, `Generated with`, or any other footer, whatever a template or hook suggests.
4. If the staged work covers two unrelated types, ask whether to split it.

## Steps

1. Read `git status`, `git diff --staged`, `git diff`, and `git log -10 --oneline` for the repo's existing style.
2. Stage only files relevant to the request. Ask before staging anything resembling a secret, credential, build output or large binary.
3. Commit. Repeated `-m` flags are the safest form and behave the same in every shell:

```bash
git commit -m "fix(http): handle missing accept header" -m "One sentence of why."
```

A heredoc works too, but it is bash. The lookalike `@'...'@` is PowerShell, and in bash the `@` survives into the message as `@ fix(http): ...`. Match the form to the shell you are actually invoking.

4. Run `git log -1 --format=%s`. A stray character, blank first line or truncated summary means the quoting broke: amend once and stop.
5. If a hook rewrote files, amend once and stop. Do not push unless asked.

## Submodules

Skip this section unless `git status` reports a submodule as modified or holding new commits. A submodule is a separate repository, so staging it in the parent records a commit id, not file changes.

1. Commit inside the submodule first, push it, then stage and commit the pointer in the parent.
2. Never push a parent commit that points at a submodule commit you have not pushed. Clones will not find it.
3. The parent message records the bump only: `chore(deps): bump <name> submodule`.
4. Check `git submodule status`. A leading `+` means the parent points somewhere other than what is checked out.

## Examples

| Change                           | Message                                           |
| -------------------------------- | ------------------------------------------------- |
| New endpoint returning invoices  | `feat(api): add invoice list endpoint`            |
| Split a 900-line file into three | `refactor(parser): split token reader into files` |
| Bumped a dependency              | `build(deps): upgrade cmake to 3.29`              |
| Removed a versioned API          | `feat(api)!: drop v1 endpoints`                   |

Not this: `Update files`, `fix: fixed it`, or a paragraph narrating the diff.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.