Skip to content
Skills Library
Programming · Automation

commit

/commit

Create a conventional commit from current workspace changes. Use when the user asks to run $commit, asks to commit changes, or asks for a commit message from the current diff.

Repository
dotfiles ↗
Licence
Apache-2.0
Last repository change
24.10.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
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

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

Licence

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

What it does and when to use it

Create a conventional commit from current workspace changes. Use when the user asks to run $commit, asks to commit changes, or asks for a commit message from the current diff.

Original author description

Create a conventional commit from current workspace changes. Use when the user asks to run $commit, asks to commit changes, or asks for a commit message from the current diff.

How it works

  1. Workflow
  2. Failure Handling
  3. Notes
Original SKILL.md headings · 62 lines, 388 words
SKILL.md preview
---
name: commit
description: Create a conventional commit from current workspace changes. Use when the user asks to run $commit, asks to commit changes, or asks for a commit message from the current diff.
metadata:
  short-description: Minimal commit workflow
---

# Commit

Use this skill for a small, safe commit workflow. If the user only wants a commit message from the
current diff, generate the message and stop before committing.

## Workflow

1. Inspect state:
   - `git status --short`
   - If there are no changes, stop and report.
2. Determine scope:
   - If the user included `--all`, stage all changes with `git add -A`.
   - Otherwise, treat the currently staged changes as the commit candidate.
   - If both staged and unstaged changes exist, call out that only staged changes will be
     committed unless `--all` was requested.
3. Validate staged content:
   - `git diff --cached --stat`
   - If nothing is staged, stop and report.
4. Generate message:
   - Prefer conventional format: `<type>(<scope>): <summary>`
   - `scope` is optional.
   - Follow the 50/72 rule: subject line is a hard 50-character maximum.
   - Body lines are a hard 72-character maximum.
   - Include a blank line between the subject and body.
   - Include a body whenever useful context is available; omit it only for
     trivial or purely mechanical commits.
   - Body should explain why the change was made, what changed, and relevant
     validation, risk, or scope notes.
   - Valid types: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, `ci`, `build`.
   - Do not include AI attribution text.
   - Apply any user guidance (for example: "focus on API changes").
   - Before committing, check that every generated message line satisfies the
     subject/body length limits.
5. Determine outcome:
   - If the user asked only for a commit message, return the generated message and stop.
   - Otherwise continue with the commit workflow.
6. Commit:
   - Use a quoted heredoc to pass the full message on stdin; do not create a
     temporary commit-message file and do not use one-line `-m` strings.
   - Pattern:
     ```bash
     git commit -F - <<'EOF'
     <type>(<scope>): <summary>

     <wrapped body>
     EOF
     ```
7. Report result:
   - Show commit hash and subject: `git log -1 --oneline`

## Failure Handling

- If nothing is staged: `Commit aborted: no staged changes. Stage files first or rerun with --all.`
- If the commit message is missing or invalid: generate a valid message and retry once.
- If `git commit` fails: show the git error and stop.

## Notes

- This skill does not push changes.
- `--all` is opt-in because staging unrelated work by default is unsafe in a dirty tree.
Files in this package (2)
  • SKILL.md 3 KB
  • agents/openai.yaml 1 KB

Versions

RepositoryScoreLicence
This page · TechDufus/dotfiles100Apache-2.0
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 a361b2c4f2d1 (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

  • 96conventional-commit
    Write a Conventional Commits v1.0.0 message for the current changes. Use when writing or checking a commit message or PR title.
  • 100create-commit-message
    Generate a Conventional Commit message from staged git changes when the user asks to write a commit message, create a commit, or format a commit
  • 100at-commit
    Generate a Conventional Commits message from staged changes and wait for confirmation before committing. Use when the user asks to commit or generate a commit message.
  • 100conventional-commit
    Write a Conventional Commits message for the staged changes. Use when the user asks to commit, write a commit message, or summarize staged changes for git.
  • 96commit-message-generator
    Generate a clear, concise conventional commit message from staged code changes. Use when writing a commit message.
  • 100conventional-commits
    Use when the user asks to commit, create a commit, write a commit message, or runs /commit or /conventional-commits in any git repository - commit, commitar, mensagem de commit, conventional commits.

Feedback and reports

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