agentsclimarketplace

Git commit logically

Skill Nick2bad4u/git-commit-logically/skills/git-commit-logically

Commit outstanding local git changes into coherent local commits without pushing. Use when the user asks Codex to commit the current worktree, commit all changes, split current changes into logical commits, follow repository commit-message rules, or create local commits from the current git tree.From its SKILL.md

Install
npx -y skills add Nick2bad4u/git-commit-logically --skill git-commit-logically

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as Unlicense. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

5.5 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

Git Commit Logically

Use this skill to turn the current worktree into one or more high-quality local commits. The goal is accurate grouping and repo-compliant messages, not speed.

Hard Rules

  • Do not push.
  • Do not create an empty commit.
  • Do not revert, discard, overwrite, or clean user changes.
  • Do not make source edits while committing unless the user explicitly asked for fixes too.
  • Use non-interactive git commands only.
  • Read .github/agent-commit-message-instructions.md first when it exists, and follow it exactly.
  • If commit-message instructions conflict with this skill, the repository instructions win.

Workflow

  1. Confirm the target is a git repository.

    git rev-parse --show-toplevel
    git branch --show-current
    

If the command fails, stop and say the directory is not a git repository.

  1. Read repository commit-message rules before inspecting changes.

    if (Test-Path ".github/agent-commit-message-instructions.md") {
      Get-Content ".github/agent-commit-message-instructions.md"
    }
    

If no instruction file exists, inspect recent commits and infer the local convention:

git log -5 --pretty=format:"%h %s"
  1. Inspect the full outstanding tree.

    git status --short --untracked-files=all
    git diff --stat
    git diff --cached --stat
    

Then read focused diffs until each changed path has a clear purpose:

git diff -- <path>
git diff --cached -- <path>

For untracked text files, read the file. For binary files, use file names, sizes, and nearby source references to infer purpose.

  1. Decide commit groups by user-visible purpose.

Prefer groups such as:

  • source or behavior changes
  • tests and fixtures
  • docs and examples
  • config, linting, formatting, or editor metadata
  • dependency manifests and lockfiles
  • CI, release, or packaging automation
  • generated artifacts that must stay synchronized with their source

Do not split so finely that each commit loses context. Do not combine unrelated source, docs, dependency, or release changes merely because they are adjacent in the diff.

  1. Stage one group at a time.

Use explicit paths:

git add -- path/to/file another/path

Use patch staging only when a file contains unrelated hunks:

git add -p -- path/to/file

If patch staging would require an interactive prompt, avoid it and use a non-interactive alternative such as git diff to reassess whether the file should stay in one commit. If a single file truly contains unrelated changes that cannot be split non-interactively, make the least misleading coherent commit and mention the constraint.

  1. Verify the staged group before committing.

    git diff --cached --stat
    git diff --cached --check
    git diff --cached
    

Run git diff --cached with focused paths when the staged patch is large. Do not run unrelated test or formatting commands unless the user asked for verification or the repo's commit instructions require it.

  1. Commit with the repository's required message format.

Use git commit -m with multiple -m arguments for body paragraphs:

git commit -m "type(scope): concise subject" -m "Explain the behavior or package surface changed." -m "Mention tests, docs, or generated artifacts when relevant."

Good commit messages explain what changed and why it belongs together. Avoid vague subjects like update files, misc changes, or fix stuff.

  1. Repeat until the worktree is clean or only intentionally uncommitted files remain.

After each commit:

git status --short --untracked-files=all
  1. Report the result.

Always show the final tree state and recent commits:

git status --short --untracked-files=all
git log -5 --oneline

If the tree was already clean at the start, say so and do not commit.

Grouping Heuristics

  • Keep lockfile changes with the manifest change that caused them.
  • Keep tests with the source behavior they verify unless tests are a separate cleanup or test-infra change.
  • Keep generated exports, snapshots, compiled assets, or docs outputs with the source-of-truth change they mirror.
  • Separate mechanical formatting from behavior changes when both are present.
  • Separate repo maintenance from product behavior unless the maintenance is required for the behavior to work.
  • Treat deletions as their own group when they remove a feature, deprecate a surface, or clean obsolete files across multiple areas.
  • Preserve user intent from already staged changes when it is clear; otherwise restage deliberately and explain the grouping.

Safety Checks

Before each commit, confirm:

  • The staged paths match only the intended group.
  • The commit message follows .github/agent-commit-message-instructions.md or recent repo style.
  • No secrets, local caches, editor temp files, build trash, or accidental large artifacts are staged.
  • No unrelated user changes are being hidden by broad commands.

If the outstanding changes are ambiguous or risky to group, stop and ask a concise question rather than guessing.

What ships with it: 4 files

3.6 KB alongside SKILL.md

agents/

Gives 0 of the 12 instructions most pr commit review skills give in ~1.1k tokens

Counted across 888 of the 1,342 authors here whose files we hold, read 2026-08-07

  • Use conventional commits formatin 127 of 888, across 115 files
  • Keep subject line under 72 charactersin 62 of 888, across 48 files
  • Delete branches after mergein 51 of 888, across 38 files
  • Use imperative mood in subject linein 51 of 888, across 42 files
  • Use imperative mood in commit messagesin 44 of 888
  • Verify directory is ignored before creating worktreein 43 of 888, across 12 files
  • Generate a conventional commit messagein 43 of 888
  • Add unignored worktree directories to gitignorein 42 of 888, across 10 files
  • Make atomic commitsin 39 of 888, across 27 files
  • Run tests before committingin 36 of 888, across 25 files
  • Verify clean test baselinein 35 of 888, across 9 files
  • Split unrelated changes into separate commitsin 35 of 888, across 30 files

Said here and by no other author read

  • inspect the full outstanding git tree
  • group changes by user-visible purpose
  • use patch staging only when a file contains unrelated hunks
  • report the final tree state and recent commits

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,149. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.