Skip to content
Back to skills

Creating Commits

ASecurity

Use before EVERY git commit - no exceptions. Enforces pre-commit quality checks, atomic commits, and conventional commit format to prevent hook failures and maintain clean history

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 8, 2026
toolsbashgitapi

Works with

  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill creating-commits --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Creating Commits?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Creating Commits
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-creating-commits/badge)](https://www.skillsdirectory.com/skills/majiayu000-creating-commits)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: creating-commits
description: Use before EVERY git commit - no exceptions. Enforces pre-commit quality checks, atomic commits, and conventional commit format to prevent hook failures and maintain clean history
---

# Creating Commits

Use before ANY commit - never skip for "simple" changes.

## MANDATORY FIRST STEP

**STOP: Create TodoWrite checklist BEFORE running any commands.**

**Correct pattern:**

1. Load this skill ✓
2. TodoWrite with 6 checklist items (see below) → FIRST response
3. Execute steps, updating todos (step 1 runs two operations in parallel)

**Wrong pattern (will fail):**

1. Load skill
2. Run git commands without TodoWrite
3. Forget a step
4. Hook blocks commit ❌

## Workflow Checklist

**Create these TodoWrite items as your FIRST action, ALL steps are required:**

1. ☐ Run `pnpm pre-commit` (if available) AND Read `docs/commit_specification.md` (PARALLEL)
2. ☐ Run `git diff` and analyze staging (see below)
3. ☐ `git add <files>` (stage atomic unit of related files)
4. ☐ `git diff --staged` (preview commit)
5. ☐ Write `.claude/.commit-state.json` (signals workflow completion)
6. ☐ `git commit -m "type(scope): description"`

**Parallel optimization:** Step 1 runs `pnpm pre-commit` (if the script exists) and reads `docs/commit_specification.md` simultaneously since they have no dependencies.

### Steps 2-3: Staging Analysis

Before running `git add`, check current staging state:

**Never stage files containing secrets** (`.env`, `credentials.json`, `*.pem`, `*_key`, etc.) - warn user if these appear in diff.

**Some files already staged?** User pre-selected - verify staged files form atomic unit.

**No files staged?** After reviewing `git diff`, evaluate what constitutes an atomic unit:

- If all changes form one logical unit → stage all files and proceed
- If multiple logical changes detected → use AskUserQuestion to ask which atomic unit to commit first, then suggest splitting rest into separate commits

**Multiple logical changes?** See Atomic Commits section below for how to identify and split.

### Step 5: Write Commit State File

Write this file after steps 1-4 and before step 6:

```bash
cat > .claude/.commit-state.json <<'EOF'
{
  "workflow_completed": true
}
EOF
```

This signals the pre-commit hook that you followed the workflow.
Expires in 5 minutes, auto-deletes after ANY `git commit` attempt (success or failure).

**If commit fails/is blocked:** Rewrite this file before retrying.

## Commit Message Format

`type(scope): description` - see [docs/commit_specification.md](../../docs/commit_specification.md)

**Focus on PURPOSE, not process:**

- ✅ "add creating-commits skill for git workflow"
- ❌ "create skill and refactor for efficiency"

Review FULL diff - message describes collective change, not just latest conversation.

## Atomic Commits

One logical change per commit.
If multiple concerns (mixed types, different scopes, unrelated files) → suggest splitting.

## Breaking Changes

If breaking backward compatibility → use `feat(api)!: description` and include `BREAKING CHANGE:` footer.

## Common Rationalizations (STOP)

**If you think any of these, STOP and follow checklist:**

- "Just a comment, skip checks" → Comments have syntax errors
- "User gave message, skip preview" → Can't see what's staged
- "Too simple for `pnpm pre-commit`" → Hooks fail on "simple" changes
- "One extra file won't hurt" → Breaks atomic commits

## When Checks Fail

**`pnpm pre-commit` fails on your changes?** Fix before committing.

**`pnpm pre-commit` fails on unrelated code?** Ask user:

1. Fix unrelated error first
2. Commit anyway (requires their decision)
3. Investigate error

Never assume "error is unrelated, skip check" - ask.

## Never Use `--no-verify`

Never use `git commit --no-verify` without **explicitly asking user permission first in bold text.**

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.