About commit-summary
commit-summary is a skill for deriving Conventional Commit candidates from actual Git diffs. It is for developers who need clear commit messages and logical change grouping; staging or committing requires approval.
Key features
- 01Inspect staged and unstaged diffs
- 02Suggest commit types and scopes
- 03Group mixed changes logically
- 04Check for sensitive files and breaking changes
- 05Stage or commit after approval
Use cases
- 01Draft a Conventional Commit message for code changes
- 02Separate unrelated changes into distinct commits
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ shipshitdev/ skills --skill commit-summaryAfter installing, type/commit-summaryin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
plugin.jsonREADME.mdlicenses/LICENSELICENSE-cursor-team-kitLICENSE-superpowersNOTICE.txtDetails
From the project READMECommit Summary
Generate accurate Conventional Commits from real git diffs.
Authorized Scope
Act only within the user's request and existing approval; loading this skill grants no new authority. Keep report-only requests report-only, honor the caller's target, host, provider, and cost limits, ask before expanding scope, and forward these limits to delegates.
Contract
Inputs:
- Repository root
- Staged changes, unstaged changes, or approved paths to stage
- Optional commit type, scope, and breaking-change context
Outputs:
- Commit message candidate
- Logical commit grouping when changes are mixed
- Created commit hash after approval, if requested
Creates/Modifies:
- No changes in message-only mode
- May stage files and create commits after approval
External Side Effects:
- None unless another workflow pushes the commit later
Confirmation Required:
- Before staging files
- Before creating a commit
- Before amending or squashing existing commits
Delegates To:
github-pr-publishwhen the commit should be pushed and opened as a PRgit-safetywhen secrets or sensitive files appear in the diff
Workflow
-
Inspect repository state:
git status -sb git log --oneline -5 git diff --stat git diff --cached --stat -
Determine whether changes are already staged:
- If staged changes exist, generate the message from
git diff --staged. - If nothing is staged, inspect unstaged changes and propose logical groups.
- If unrelated changes are mixed, recommend separate commits.
- If staged changes exist, generate the message from
-
Guard against unsafe commits:
- Do not stage secrets,
.env, credentials, private keys, local databases, build caches, or large generated artifacts. - If sensitive files appear, stop and delegate to
git-safety. - Do not include unrelated formatting churn in a feature/fix commit unless it is required by the change.
- Do not stage secrets,
-
Choose the Conventional Commit type:
feat: user-visible feature or capabilityfix: bug fixdocs: documentation onlystyle: formatting only, no behavior changerefactor: code restructuring without behavior changeperf: performance improvementtest: tests onlybuild: build system, package manager, dependenciesci: CI/CD workflow changeschore: maintenance with no user-facing behaviorrevert: revert a previous commit
-
Detect scope:
- Prefer package, app, domain, or subsystem names already used in history.
- Omit scope if it would be vague (
misc,stuff,changes).
-
Detect breaking changes:
- Public API contract changes
- CLI flags or output changes
- Database/schema migrations requiring user action
- Removed config keys, env vars, routes, events, or exported symbols
Format as
type(scope)!: summaryand include aBREAKING CHANGE:footer. -
Generate the commit message:
type(scope): imperative summary Optional body explaining why and any non-obvious implementation detail. Optional footer such as: BREAKING CHANGE: migration required because ... Refs: #123 -
If the user asked to commit, show the exact message and proceed within that authorization. Obtain approval only if the selected files or operation exceed the request:
git add <approved-paths> git diff --staged --stat git commit -m "<subject>" -m "<body-or-footer>"
Quality Bar
- Subject is imperative and under 72 characters.
- Body explains why when the diff alone is not enough.
- Message does not overstate behavior.
- Commit contains one logical change.
- Verification commands are not placed in the commit message unless the repo convention asks for them.
Gotchas
git add .can stage unintended files. If.gitignoredoes not excludenode_modules,.env*, or build artifacts, always prefergit add <specific-paths>. Verify withgit diff --staged --statbefore committing.- Breaking-change footer is case-sensitive. The token must be exactly
BREAKING CHANGE:(with a space, all caps) for tools likesemantic-releaseandconventional-changelogto detect it.BREAKING-CHANGE:is not equivalent. - Amended commits rewrite history. Never amend a commit that has already been pushed to a shared branch. If the commit exists on the remote, create a new fix commit instead.
- Co-authored-by trailers conflict with repo conventions. Some repos (including this project) explicitly forbid
Co-Authored-Bytrailers. Check the repo's agent instruction file (AGENTS.md,CLAUDE.md, or equivalent) or recent commit history for the project convention before adding them.
Examples
feat(auth): add password reset flowfix(api): handle null provider responseci(actions): restrict pull request token permissionsrefactor(utils): extract date formatting helperdocs: update GitHub project board workflow