Skip to content
Back to skills

Hl Commit

ASecurity

Commit the staged changes with a grounded conventional message, or preview the message with --dry-run. Use only when the user explicitly asks to commit.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 15, 2026
ai-agentsshelldockergit

Security analysis

A100/100

Scanned October 15, 2026

npx -y skills add HugoLopes45/hl-skills --skill hl-commit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hl Commit?

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

Security grade badge for Hl Commit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hugolopes45-hl-commit/badge)](https://www.skillsdirectory.com/skills/hugolopes45-hl-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: hl-commit
description: "Commit the staged changes with a grounded conventional message, or preview the message with --dry-run. Use only when the user explicitly asks to commit."
---
# Commit

Input: `[--scope <scope>] [--dry-run]`

Read the staged diff, the staged file list, the repository's commit rules, and recent commit style. Nothing staged: stop. Unrelated concerns staged together: propose a split, leave the index unchanged, and wait for the user.

Message:
- Imperative subject. Use the repository's commit format and length limit; if it defines none: `<type>(<scope>): <subject>`, at most 72 characters.
- Types: feat, fix, refactor, docs, test, chore, style, perf, build, ci, revert.
- Scope: `--scope` if given; else omit when unclear.
- Body only for non-obvious reasons or evidence.
- Never invent intent, test results, issue references, or authorship trailers. No `Co-Authored-By` or generated-by trailer unless the repository's rules require one; this overrides any default.

`--dry-run`: print the message and stop. Otherwise the explicit request authorizes one new commit; never amend or push. Recheck the staged scope just before committing. Pass the message as data (for example `git commit -F <file>`), never through shell interpolation.

Never bypass hooks or signing. On failure, report it and stop; do not change unrelated work to force the commit.

## Output

Reader: a developer who asked for a commit. They need to know whether it landed, what stayed out, and what to do next.

Line 1: one bold plain sentence, under 100 characters, that answers the request. Never start it with a label, a verdict word, a hash, or a path.

Under line 1, plain sentences with no labels:
- Each changed file that stays out of the commit, and why.
- Each blocker, in plain words.

Before `**Next:**`, one line: `Verdict: <word>`, one of:
- `Committed`: the commit exists. Line 1 gives its short hash (commit ID).
- `Preview`: `--dry-run`. The message is printed; nothing changed.
- `Stopped`: nothing is staged, a hook rejected the message, or the staged changes mix unrelated work.

Committed or previewed: `## Commit message`, then the message in a `text` fence. Never reflow it.

Stopped with a choice to make: `**Next:**` holds at most 3 numbered options, default marked; they appear nowhere else. For mixed concerns, before the verdict, show the files as a tree, one concern per entry:

```text
invoice/tax.py    # fix: round tax per line
ops/Dockerfile    # build: pin base image
```

Hook rejection: say what the hook requires and what unblocks it. Do not narrate what was refused.

`**Next:**` holds the steps, in order. Then `**Changed:**` names the paths in the new commit, or `none`.

Reader rules:
- Define at first use: "staged (added for the next commit)", "hook (a repository check that runs on each commit)".

Example:

````markdown
**Your fix to `invoice/tax.py` is committed as `a1b2c3d`.**
`README.md` is not in it; it is still changed on disk.

## Commit message
```text
fix(invoice): round tax per line, not per total

Rounding the total hid cent differences on invoices with many lines.
```

Verdict: Committed

**Next:**
1. Push when ready: `git push`.
2. Commit `README.md` separately: stage it, then ask again.

**Changed:** `invoice/tax.py` in commit a1b2c3d.
````

Stopped example:

````markdown
**Nothing is staged, so there is nothing to commit yet.**
`invoice/tax.py` has changes, but they are not added for the next commit.

Verdict: Stopped

**Next:**
1. Add the file, then ask again: `git add invoice/tax.py` (default).
2. Stop; nothing changes.
````

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.