agentsclimarketplace

Feature commits

Skill tranviet0710/agent-skills/.github/skills/feature-commits

Analyze git changes and split them into multiple focused commits grouped by feature. Use when: dividing changes into commits, organizing staged/unstaged changes, writing conventional commits, splitting work into atomic commits, commit best practices, multi-feature commit plan.From its SKILL.md

Install
npx -y skills add tranviet0710/agent-skills --skill feature-commits

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.

SKILL.md

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

Feature Commits

Split all current git changes into multiple atomic commits, each scoped to one feature or concern, following conventional commits best practices.

When to Use

  • You have changes spanning multiple features or concerns in a single working tree
  • You want to produce a clean, reviewable commit history before pushing or opening a PR
  • You need commit messages that follow the Conventional Commits specification

Procedure

Step 1 — Gather All Changes

Use get_changed_files to retrieve every staged and unstaged file with its diff. Also run git status in the terminal to get a complete picture of new/deleted/renamed files.

Step 2 — Analyze and Group by Feature

Read each diff and assign every file to a logical group. Apply these rules:

SignalRule
Same feature folder or moduleGroup together
Only docs / README changesSeparate docs commit
Only config / tooling files (.gitignore, package.json, CI files)Separate chore or build commit
Style-only changes (whitespace, formatting)Separate style commit
Test files onlySeparate test commit
Bug fix in one moduleSeparate fix commit
New capability in one moduleSeparate feat commit
Refactor with no behavior changeSeparate refactor commit

If a file touches multiple concerns, assign it to the dominant concern. Flag ambiguous files for user confirmation before committing.

Step 3 — Draft Commit Plan

Present a numbered commit plan in this format:

Proposed commit plan
────────────────────
1. feat(cart-freeship-bar): add free shipping progress bar UI
   Files: cart_freeship_bar/main-display-and-settings.html

2. feat(cart-freeship-bar): handle language change event
   Files: cart_freeship_bar/event-change-lang.html

3. fix(cart): handle remove-item and clear-cart edge cases
   Files: cart_freeship_bar/event-remove-item-from-cart.html
          cart_freeship_bar/event-clear-cart.html

4. docs(cart-freeship-bar): update README and project overview
   Files: cart_freeship_bar/README.md
          cart_freeship_bar/cart_freeship_bar.md
          cart_freeship_bar/project-overview.md

Ask the user to confirm, merge, reorder, or rename commits before proceeding.

Step 4 — Execute Commits

For each commit in the approved plan:

  1. Stage only the files in that group:
    git add <file1> <file2> ...
    
  2. Commit with the drafted message:
    git commit -m "<type>(<scope>): <subject>"
    
  3. Confirm the commit was created (git log --oneline -1).
  4. Move to the next group.

Never stage files from a different group during a commit step.

Step 5 — Verify

After all commits:

  • Run git status — working tree should be clean (or show only intentionally untracked files).
  • Run git log --oneline -<N> (where N = number of commits made) to display the final history for the user to review.

Conventional Commits Quick Reference

<type>(<scope>): <subject>          ← max 72 chars
<blank line>
[optional body]                     ← wrap at 72 chars; explain *why*, not *what*
<blank line>
[optional footer]                   ← e.g. Closes #123, BREAKING CHANGE: ...

Types:

TypeWhen
featNew feature or capability
fixBug fix
docsDocumentation only
styleFormatting, whitespace, no logic change
refactorCode restructure, no behavior change
testAdding or updating tests
choreBuild process, tooling, dependencies
perfPerformance improvement
ciCI/CD configuration
revertReverts a previous commit

Rules:

  • Subject line: imperative mood ("add", not "added" or "adds"), no period at end
  • Scope: lowercase, reflects the module or folder (e.g., cart, email-collector)
  • Breaking changes: add ! after type/scope (feat!:) and a BREAKING CHANGE: footer

Decision Points

Mixed concern in one file? → If the diff is small and inseparable, include it in the most relevant group and note it in the commit body.

Unclear feature boundary? → Ask the user: "Should [file X] be part of commit #2 (feat: cart step) or a separate commit?"

Many small files in one folder? → Group into one commit unless they serve clearly distinct purposes.

Untracked new files? → Include them in the commit that introduces the feature they belong to.

What ships with it: 1 file

2.2 KB alongside SKILL.md

Gives 3 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 formathere, and in 127 of 888, across 115 files
  • Keep subject line under 72 charactershere, and in 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 messageshere, and in 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

  • run git status to find new deleted and renamed files
  • assign every changed file to a logical group
  • assign multi-concern files to the dominant concern

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,506. 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.