
Commit Helper
Turn messy staged changes into Conventional Commits messages your agent can validate and run after you approve.
Overview
Commit Helper is an agent skill for the Ship phase that drafts and executes Git commits in Conventional Commits format after reviewing your diff.
Install
npx skills add https://github.com/charon-fan/agent-playbook --skill commit-helperWhat is this skill?
- Runs git diff, drafts Conventional Commits subject and body, waits for approval, then executes the commit
- Covers feat/fix style examples for auth and API timeout scenarios from the playbook
- Includes validate_commit.py to check message format against the spec
- Aligns with Conventional Commits and Angular commit guideline references
- Bundled validate_commit.py script for Conventional Commits format checks
Adoption & trust: 563 installs on skills.sh; 58 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You are ready to commit from an agent session but the message is vague, non-standard, or does not match what actually changed in the diff.
Who is it for?
Solo builders who commit often from Claude Code and want changelog-ready messages with a quick human approve step.
Skip if: Teams that already enforce commit format solely via husky hooks and never want the agent to run git commit for them.
When should I use this skill?
When working with Git and you want the agent to commit changes with reviewed, Conventional Commits formatting.
What do I get? / Deliverables
You get an approved, spec-compliant commit message and a completed commit without manually parsing hunks or guessing type and scope.
- Proposed Conventional Commits message
- Executed git commit after user approval
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Commit hygiene sits on the shipping path right before merge and release, when message quality affects changelogs and review velocity. Review is where diffs are finalized and commit narratives must match what reviewers and CI will see.
Where it fits
Land a finished feature branch with a scoped feat message after the agent reads the full diff.
Prepare a PR commit series where each message explains API or auth changes reviewers will read.
Commit a production hotfix with a fix(scope) subject tied to the timeout or error patch.
How it compares
Use instead of free-form “commit my work” chat that skips diff review and Conventional Commits structure.
Common Questions / FAQ
Who is commit-helper for?
Indie and solo developers using agent-playbook who want Conventional Commits from natural language requests like “commit my changes.”
When should I use commit-helper?
During Ship review before merge, after Build when landing a feature branch, and in Operate when committing hotfixes—whenever you need a typed message matched to git diff output.
Is commit-helper safe to install?
It needs git and shell access to diff and commit; review the Security Audits panel on this page and confirm each message before the agent executes git commit.
SKILL.md
READMESKILL.md - Commit Helper
# Commit Helper > A Claude Code skill for writing Git commit messages following the Conventional Commits specification. ## Installation This skill is part of the [agent-playbook](../../README.md) collection. ## Usage When working with Git, simply ask Claude to commit your changes: ``` You: commit my changes ``` The skill will automatically: 1. Review your changes with `git diff` 2. Generate a properly formatted commit message 3. Present it for your approval 4. Execute the commit when confirmed ## Examples ### Simple Feature ``` You: Commit the new user authentication feature Claude generates: feat(auth): add OAuth2 login support Implement OAuth2 authentication flow for Google and GitHub. Users can now link multiple social accounts to their profile. ``` ### Bug Fix ``` You: Commit the API timeout fix Claude generates: fix(api): resolve timeout in user endpoint Added 30-second timeout to database query to prevent slow queries from causing request timeouts. ``` ## Validation The skill includes a validation script to check commit message format: ```bash python scripts/validate_commit.py "feat(api): add user endpoint" ``` ## References - [Conventional Commits Specification](https://www.conventionalcommits.org/) - [Angular Commit Guidelines](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit) # Conventional Commits Specification ## Summary The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history. ## Structure ``` <type>[optional scope]: <description> [optional body] [optional footer(s)] ``` ## Type Must be one of the following: - **feat**: A new feature - **fix**: A bug fix - **docs**: Documentation only changes - **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) - **refactor**: A code change that neither fixes a bug nor adds a feature - **perf**: A code change that improves performance - **test**: Adding missing tests or correcting existing tests - **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) - **ci**: Changes to CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) - **chore**: Other changes that don't modify src or test files - **revert**: Reverts a previous commit ## Scope The scope should be the name of the npm package or module affected. ## Description The description contains a short description of the change: - Use imperative, present tense: "change" not "changed" nor "changes" - Don't capitalize the first letter - No period (.) at the end ## Body Just as in the subject, use the imperative, present tense: "fix" not "fixed" nor "fixes". Explain **what** and **why** instead of **how**. ## Footer The footer should contain any information about **Breaking Changes** and is also the place to reference GitHub issues that this commit **Closes**. ## Breaking Changes A BREAKING CHANGE must be indicated in the footer. A BREAKING CHANGE must be a part of the type/scope or the description. ``` feat(api): remove deprecated endpoints BREAKING CHANGE: The /api/v1/users endpoint has been removed. ``` ## References - https://www.conventionalcommits.org/ - https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-format # Commit Message Examples ## Features ``` feat(auth): add OAuth2 login support Implement OAuth2 authentication flow supporting Google and GitHub providers. Users can now link multiple social accounts to their profile. Closes #123 ``` ``` feat(components): add data table component New reusable table component with built-in sorting, filtering, and pagination. Uses TanStack Table for performance. ``` ## Bug Fixes ``` fix(api): resolve race condition in user creation Concurrent requests could create duplicate users. Added unique constraint on email field with pro