Skip to content
Back to skills

Committing Code

ASecurity

Group the working-tree changes by purpose and commit them as normal commits. Done when each intended change is in one logical commit and the final `git status` is shown.

  • 36 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 6, 2026
ai-agentsgit

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add alexei-led/cc-thingz --skill committing-code --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Committing Code?

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

Security grade badge for Committing Code
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alexei-led-committing-code-fdfa9545/badge)](https://www.skillsdirectory.com/skills/alexei-led-committing-code-fdfa9545)

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
---
{"description":"Create normal git commits with logical grouping. Use when committing, saving changes, creating commits, or grouping work into commits. For drafting or editing commit messages without committing, use writing-style. NOT for amending, rebasing, force-pushing, or rewriting history.","name":"committing-code"}
---
<!-- Pi platform guidance -->
<!-- Use installed tool names. Discover callable tools before batching independent calls in codemode; model-only UI/orchestration tools must be called directly. -->
<!-- Read required skill/instruction files through direct read when exposed or through Code Mode. If an optional pruning extension is installed, verify its output protection semantics; do not assume nested-path protection. Code Mode composes calls; subagents or controllers own durable workflows. Async subagents notify natively: yield rather than poll. -->


# Commit Changes

Group the working-tree changes by purpose and commit them as normal commits. Done
when each intended change is in one logical commit and the final `git status` is
shown.

## Gather state

Run `scripts/commit-state.sh gather`. It is read-only and prints repo state,
changed paths, diff stats, suspicious paths, and recent commits. Without it, run
`git status`, `git diff --stat`, and `git log --oneline -8`. Read the full diff
(`scripts/commit-state.sh full-diff`) when the stats do not make the grouping
obvious. Treat the helper output as a hint, not proof.

Stop and report the state verbatim when there is nothing to commit, the directory
is not a git repository, HEAD is detached, or a rebase or merge is in progress.

## Group

- One purpose, a few files, and no suspicious paths: one commit. Do not invent a
  split.
- Mixed changes: group by purpose (feature, fix, refactor, docs, CI or config)
  from diff evidence, not filenames. Keep a change and its tests together.
- Use writing-style for message wording. Keep the repo's syntax and required
  trailers; lead with the concrete change and add a body only for non-obvious
  reasons, consequences, or migration steps.
- Match the message style of recent commits. Read
  [conventions.md](references/conventions.md) when there is no history to match or
  the user asks for a specific format.

## Propose and commit

Show the plan and the evidence it rests on:

```text
Based on: git status, diff stat, last 8 commits (style: conventional)

1. fix(validation): reject empty email
   - src/validation.ts
   - tests/validation.test.ts
2. docs: document the --dry-run flag
   - README.md
```

An explicit commit request authorizes staging and committing this plan. Proceed
without a second approval, and do not ask again for each group. Ask first only
when the user rejects the grouping, or when the scope, sensitive content, or a
history-changing action differs from what was requested.

Hard rules:

- Never stage likely secrets: `.env` files, private keys, certificates, credential
  or token files, or files whose content looks like a secret. Flag each one to
  the user. This check does not replace a secret scanner.
- If a pre-commit hook rejects a commit, report its error verbatim. Do not retry
  with `--no-verify` and do not amend.

## Report

Show the created commits, the final `git status`, and any files left uncommitted.

Files in this skill

  • SKILL.md3.2 KB
  • references/conventions.md2.3 KB
  • scripts/commit-state.sh3.6 KB

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.