Tool sp commit
Skill swiftpostlabs/agentic-tools/.agents/skills/tool-sp-commit
Shareable skills and tools for AI agents
npx -y skills add swiftpostlabs/agentic-tools --skill tool-sp-commitAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 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 author says it does
Copied from the file, not written here
Inspect edited files, group them into logical commits, and create focused commits. Use when: the user asks to commit changes, split work into focused commits, or decide how the current diff should be grouped before committing.
The file declares its own license as MIT. 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
6.1 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Commit Changes
Purpose
Guide the agent through inspecting the current diff, grouping changes into coherent commits, validating each group, and committing them using this repository's commit format.
When to use this skill
- The user asks to make one or more commits.
- The current diff should be split into focused commits.
- The agent needs help deciding whether changes belong together.
- The user wants the commit work done, not just explained.
Scope boundaries
This tool groups a working diff into commits and writes their messages. It owns the grouping decision, nothing further down the git pipeline.
ref-sp-dev-git-commits— the rules this tool applies: title format, body content, when a commit needs a long description. Read it for the rules; use this tool to apply them to a real diff.ref-sp-py-commitizenandref-sp-dev-semantic-versioning— releases, version bumps, and changelog generation. A conventional-commit type affects a future bump, but choosing the bump is not this tool's job.- Branching, rebasing, pushing, and opening pull requests are out of scope. This tool stops at the commit.
First Step
Read the repo's commit-guidance skill (ref-sp-dev-git-commits here, the requires dependency) before deciding commit boundaries or writing commit messages.
Core Workflow
- Inspect the current changed files and diff.
- Separate unrelated user changes from the slice you should commit.
- Group files by one coherent outcome, not by file type or directory alone.
- Validate each proposed commit group with the narrowest relevant check.
- Stage only one commit group at a time.
- Write the message using the
ref-sp-dev-git-commitsrules. When a group came from an automated change, record its provenance in the body (the redacted command that produced it). - Create the commit non-interactively, then repeat for the next group if needed.
Defaults
- Default to one commit only when all changed files support the same outcome.
- Treat skill-file updates as docs by default. If a commit only changes commit-guidance skills such as
ref-sp-dev-git-commitsortool-sp-commit, prefer a title likedocs(commit-skills): Short description of the commit. - Keep tests, docs, and generated outputs in the same commit as the source change they explain or validate when they are part of the same logical unit.
- Keep source-of-truth files and generated files together when one deterministically produces the other.
- Split cleanup, renames, or refactors away from behavior changes unless they are inseparable.
- If commit grouping is ambiguous, ask before staging rather than guessing.
Grouping Rules
- Group by purpose: one feature, one fix, one docs update, one chore.
- Do not mix unrelated pre-existing user work into your commit just because it is already modified.
- Do not create a separate commit for trivial support-file changes that only make sense with the primary code change.
- Do create a separate commit when a bulk mechanical rewrite would obscure a behavior change.
- When the work came from automation, keep the automated change together and record its provenance in the commit body: include the command that produced it (codemod, link fixer, formatter, generator, or bulk rewrite) so it can be rerun or audited. Redact private details first — replace absolute home paths with a repo-relative path, drop the username, and never include tokens or secrets. See
ref-sp-dev-git-commitsfor the exact body format.
Task Framing
| Command or action | What | Why | When | Expected outcome |
|---|---|---|---|---|
| Inspect status and diff | Review the current change set before staging anything. | Commit grouping is unreliable if you guess from filenames alone. | Always before proposing or making commits. | The changed surfaces and likely group boundaries are understood. |
| Propose commit groups | Decide which files belong in each commit. | Focused commits are easier to review and revert. | When the diff contains more than one logical change. | Each group has one coherent purpose. |
| Validate a group | Run the narrowest relevant check for the files in that group. | A focused commit should be valid on its own when a focused checker exists. | After defining a group and before committing it. | The group has passed a scoped validation step or has a justified fallback check. |
| Stage one group | Add only the files for the current logical commit. | This prevents unrelated changes from bleeding into the commit. | After the group is validated. | The index matches exactly one planned commit. |
| Commit the group | Create the commit using the repo's message rules. | The history should be focused and readable. | After staging and message preparation are complete. | One logical commit is recorded cleanly. |
Gotchas
- Do not amend existing commits unless the user explicitly asks.
- Do not use interactive git flows when a non-interactive command will do.
- If there is no narrow validation command for a group, say so and use the next best focused check.
- If the working tree contains unrelated user changes, leave them out rather than trying to tidy them up.
Validation
- Check that each commit group is internally coherent before staging it.
- Run a focused validation step for each group when one exists.
- Check the staged diff before committing so the message matches the staged content.
- For an automated group, confirm the body records the generating command and that it carries no private details (home paths, username, tokens).
- After committing, confirm whether additional groups remain in the working tree.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 1 of the 12 instructions most pr commit review skills give in ~1.2k 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 commitshere, and in 35 of 888, across 30 files
Said here and by no other author read
- read the commit guidance rules before grouping
- inspect changed files and diff before grouping
- group files by coherent outcome
- validate each commit group with a narrow check
- record automation provenance in commit body
- keep tests and source in the same commit
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.