---
title: "commit 3"
description: "Analyze the currently staged changes (`git diff --cached`) and generate a conventional commit message."
type: skill
canonical_url: https://claudary.paisolsolutions.com/skills/commit-3
source: "Claudary"
difficulty: intermediate
author: "Claude Code Knowledge Pack"
date: 2026-07-10T11:18:31.733Z
license: CC-BY-4.0
attribution: "commit 3 — Claudary (https://claudary.paisolsolutions.com/skills/commit-3)"
---

# commit 3
Analyze the currently staged changes (`git diff --cached`) and generate a conventional commit message.

## Overview

Analyze the currently staged changes (`git diff --cached`) and generate a conventional commit message.

## Steps

1. Run `git diff --cached --stat` to see which files changed.
2. Run `git diff --cached` to read the actual changes.
3. Determine the commit type from the changes:
   - `feat` - new functionality
   - `fix` - bug fix
   - `refactor` - code restructuring without behavior change
   - `docs` - documentation only
   - `test` - adding or updating tests
   - `chore` - build, CI, dependencies
   - `perf` - performance improvement
   - `style` - formatting, whitespace
4. Identify the scope from the most affected module/directory.
5. Write a concise imperative subject line (max 72 chars).
6. If the change is non-trivial, add a body explaining **why** the change was made, not what changed.
7. Present the commit message for approval before executing.

## Format

```
type(scope): subject line in imperative mood

Optional body explaining motivation and context.
Any breaking changes noted with BREAKING CHANGE: prefix.
```

## Rules

- Subject line: imperative mood, no period, max 72 characters.
- Body: wrap at 80 characters, blank line between subject and body.
- If multiple logical changes are staged, suggest splitting into separate commits.
- Never include generated files, lock files, or build artifacts without explicit intent.

---

Source: [Claudary](https://claudary.paisolsolutions.com/skills/commit-3) · https://claudary.paisolsolutions.com
