# Commit From Changes

> Stage and commit changes with a Kubernetes-style commit message

- Skill: `kubernetes-sigs/commit-from-changes` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kubernetes-sigs/commit-from-changes`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kubernetes-sigs/commit-from-changes/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- License: Apache-2.0
- Author: kubernetes-sigs (https://skillmd.com/u/kubernetes-sigs)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kubernetes-sigs/commit-from-changes

---


## Name

commit-from-changes:commit-from-changes

## Synopsis

Stage and commit changes with a Kubernetes-style commit message.

## Description

Generates a commit for the current changes following Kubernetes commit message conventions. Stages all changes if nothing is staged, reviews the diff, and produces a commit message with a capitalized imperative subject line under 72 characters and a body that explains the reason for the change.

## Implementation

Generate a commit for the current changes following these rules:

1. Run `git diff --cached --stat` and `git diff --stat` to understand what has changed. If nothing is staged, stage all changes with `git add -A`.
2. Run `git diff --cached` to review the full staged diff.
3. Generate a commit message in Kubernetes style:
   - Subject line: start with a capitalized imperative verb (e.g., Fix, Add, Update, Remove, Refactor)
   - Subject line should be concise (under 50 characters) and describe WHAT changed
   - If the change is scoped to a specific component or package, prefix with it (e.g., "pkg/controller: Fix race condition in queue processing")
   - Add a blank line after the subject
   - Body should explain WHY the change was made if not obvious from the subject
   - Wrap body lines at 72 characters
4. NEVER use Co-authored-by in any commit messages
5. Do not use GitHub keywords that automatically close issues (e.g., "Fixes #123", "Closes #456") or @mentions in commit messages
6. Show the generated commit message to the user and ask for approval before committing
7. Commit with the approved message using `git commit`

