Skip to content
Skills Library
Programming · Building & coding

commit

/commit

Creates well-formed git commits from the current changes: checks for secrets and junk, matches the repo's message style, splits unrelated changes, handles pre-commit hooks safely. Use only when the user asked to commit: /commit or in their own words («закоммить», «сохрани в git», «сделай коммит»). Never on your own unless the user granted full access; when finished work is uncommitted, you may offer it in one line.

Licence
MIT
Last repository change
12.11.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
2
Scripts
1
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 12.11.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What to check before installing
  • 1 scripts in this package. Review them before installing, as Claude may execute them.

Scripts: scripts/git_context.sh

What it does and when to use it

Creates well-formed git commits from the current changes: checks for secrets and junk, matches the repo's message style, splits unrelated changes, handles pre-commit hooks safely. Use only when the user asked to commit: /commit or in their own words («закоммить», «сохрани в git», «сделай коммит»). Never on your own unless the user granted full access; when finished work is uncommitted, you may offer it in one line.

Original author description

Creates well-formed git commits from the current changes: checks for secrets and junk, matches the repo's message style, splits unrelated changes, handles pre-commit hooks safely. Use only when the user asked to commit: /commit or in their own words («закоммить», «сохрани в git», «сделай коммит»). Never on your own unless the user granted full access; when finished work is uncommitted, you may offer it in one line.

How it works

  1. Steps
Original SKILL.md headings · 44 lines, 441 words
SKILL.md preview
---
name: commit
description: >-
  Creates well-formed git commits from the current changes: checks for secrets and junk, matches the repo's
  message style, splits unrelated changes, handles pre-commit hooks safely. Use only when the user asked to
  commit: /commit or in their own words («закоммить», «сохрани в git», «сделай коммит»). Never on your own unless the user granted full access; when
  finished work is uncommitted, you may offer it in one line.
---

# /commit — smart commits

**Only on the user's request, or under full access:** /commit, asking to commit in their own words («закоммить», «сохрани в git»), or full access the user granted (rules: "Full access"). That is permission to **commit**; pushing is part of /pr (or of full access when the task needs it). Otherwise, if you got here on your own, don't commit; offer it in one line instead.

## Steps

1. **Gather context** (one call, sandboxed):
   ```bash
   bash <skill_dir>/scripts/git_context.sh commit
   ```
   If it says "not inside a git repository", tell the user and stop.

2. **Safety gate — stop and ask** if any of these show up:
   - `POSSIBLE SECRETS` or risky files (`.env`, keys, credentials) that would be committed;
   - large binaries / build output / `node_modules`-like junk — suggest a `.gitignore` entry instead;
   - nothing to commit → say so and stop.

3. **Decide what goes in.**
   - **Other agents working here** (an `<other_agents>` block before your step, or
     `python3 "<skill_dir>/../../hooks/coord.py" status --workspace "<ws>"` lists someone): commit only your own files,
     `python3 "<skill_dir>/../../hooks/coord.py" mine --conversation <your id> --workspace "<ws>"`. Leave theirs alone.
   - If something is already staged, commit **only the staged changes** unless the user asked for "everything".
   - If nothing is staged, stage the relevant changes by **explicit paths** (`git add <paths>`), never blind `git add -A` when untracked junk exists.
   - If the changes contain clearly unrelated concerns (e.g. a bug fix + an unrelated refactor + a dependency bump), propose a split into logical commits and do it, unless the user said "one commit". `git add -p` is interactive — avoid it; split by files, and if one file mixes concerns, keep it in one commit and mention it.

4. **Write the message** matching the repo's recent style (Conventional Commits if the log uses them, otherwise mirror what you see):
   - Subject: imperative, ≤ 72 chars, no trailing period, describes **why/what**, not "update files".
   - Body (when non-trivial): wrapped at 72, explains motivation and notable details; reference issues if known (`Fixes #123`).
   - English, unless the history is in another language.

5. **Commit** with a heredoc to preserve formatting:
   ```bash
   git commit -F - <<'EOF'
   type(scope): subject

   Body…
   EOF
   ```

6. **If a pre-commit hook fails:** read the output, fix the actual problem (or re-stage files the hook auto-formatted), and run the commit again as a **new** commit. Never use `--no-verify`, never `--amend` unless the user asked and the commit is unpushed.

7. **Report** (in the user's language): commit hash(es) + subjects (`git log --oneline -n <k>`), and what remains uncommitted. Do **not** push; offer `/pr` or `git push` as a next step.
Files in this package (2)
  • SKILL.md 3 KB
  • scripts/git_context.sh 7 KB

Versions

RepositoryScoreLicence
This page · stxrmik/antigravity-plus100MIT
rmsaitam/skill-git-conventions100MIT
opsmill/infrahub100Apache-2.0
kdlbs/kandev100AGPL-3.0
vinta/hal-9000100MIT
restarter/lets-workflow100MIT
mickeyyaya/evolve-loop100Apache-2.0
friendlyinternet/nuxt-crouton100MIT
yonatangross/orchestkit100MIT

Database snapshot: 13.11.2026 · package version cd7995cd0c68 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100commit-push
    Use when the user asks to commit and push changes — «сделай коммит и пуш», «коммит + пуш», «закоммить», «запушь», «залей изменения», «commit», «push». Runs project checks, stages only intended files, writes a Conventional Commits message, commits and pushes.
  • 90commit-work
    Use when the user asks to stage changes, create a Git commit, split work into logical commits, or craft a commit message. Inspects the worktree, preserves unrelated changes, stages only intended files or hunks, and follows repository conventions.
  • 100creating-commit
    Creates context-aware git commits with smart pre-commit checks, submodule support, and conventional commit message generation. Use when user requests to commit changes, stage and commit, check in code, save work, save changes, push my code, finalize changes, add to git, create…
  • 100commit-message
    Write a git commit message for the current changes and optionally make the commit. Use when the user says "commit this", "write a commit message", "commit my changes", or asks to split work into commits.
  • 100git-commit
    Commit staged changes with conventional commit message. Use when user says "commit changes", "commit this", "save my changes", or wants to create a git commit.
  • 100git-commit
    Commit staged changes with conventional commit message. Use when user says "commit changes", "commit this", "save my changes", or wants to create a git commit.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.