Skip to content
Back to skills

Add Commit

ASecurity

Use when committing changes mid-workflow with smart message generation. Triggers: commit, git commit, salvar progresso, checkpoint, conventional commits, push changes, commitar, fazer commit.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 29, 2026
developmentbashgitsecuritydocumentation

Security analysis

A100/100

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

Scanned September 29, 2026

npx -y skills add brabos-ai/code-addiction --skill add-commit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Add Commit?

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

Security grade badge for Add Commit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/brabos-ai-add-commit-code-addiction/badge)](https://www.skillsdirectory.com/skills/brabos-ai-add-commit-code-addiction)

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: add-commit
description: "Use when committing changes mid-workflow with smart message generation. Triggers: commit, git commit, salvar progresso, checkpoint, conventional commits, push changes, commitar, fazer commit."
---

# add-commit — Smart Commit

Smart commit for mid-workflow progress: analyzes the changeset and generates a Conventional Commits message adapted to the number of files changed.

## When to Use

- Mid-workflow commits during feature development
- Saving progress checkpoints before risky changes
- Any `git commit` with automatic message generation
- Quick commits with optional `--push` in one step

## When NOT to Use

- **Finalizing a branch** → use `/add-done` instead
- **Creating a PR** → use `/add-pr`
- **Force push, rebase, or amend** → out of scope
- **Specific file staging** → stage manually first, then use this skill

## Adaptive Message Logic

The message format adapts to changeset size:

**≤ 3 files changed** — single-line message:
```
type(scope): objective description in present tense
```

**> 3 files changed** — list format:
```
type: general summary

- context/module: what changed
- context/module: what changed
- context/module: what changed
```

## Conventional Commits Type Detection

Infer the type from the diff content:

| Type | When to use |
|------|-------------|
| `feat` | New feature, new functionality |
| `fix` | Bug fix, error correction |
| `refactor` | Code restructure without behavior change |
| `chore` | Config, deps, scripts, tooling |
| `docs` | Documentation only |
| `test` | Test files only |
| `style` | Formatting, whitespace, lint fixes |

When ambiguous, show the inferred type and ask the user to confirm.

## Execution Flow

**STEP 1 — Analyze changeset:**
```bash
git status --short
```
Count ALL lines in the output as N — this includes:
- Tracked modified files (`M`, ` M`)
- Staged files (`A`, `M `)
- **Untracked files (`??`)** ← critical: `git diff` misses these

Then read diff content to understand what changed:
```bash
git diff HEAD               # unstaged tracked changes
git diff --cached HEAD      # staged changes
git status --short          # untracked file names (use paths for context)
```

**STEP 2 — Infer commit type and scope:**
Based on diff content, determine the Conventional Commits type.
Scope = the main module/directory affected (optional, use when clear).

**STEP 3 — Generate message:**
Apply adaptive logic (≤ 3 vs > 3 files).
- **Default:** commit immediately with generated message — no confirmation needed.
- **`--confirm` flag:** show the generated message and wait for confirmation or adjustment before committing.

**STEP 4 — Handle staging:**
- If staged changes exist → use them as-is
- If nothing staged → run `git add -A` immediately
  - **`--confirm`:** inform the user before running

**⚠️ Security check (ALWAYS — even with `--silent`):**
If `.env`, `*.key`, `secrets.*`, `*.pem`, `*.p12` appear in the output of `git status --short`, STOP and warn — never auto-stage sensitive files silently.
```
⚠️ Sensitive files detected: [list files]
Remove them from the changeset or add to .gitignore before proceeding.
```

**STEP 5 — Commit:**
```bash
git commit -m "generated message"
```

**STEP 6 — Push (if --push flag):**
```bash
git push
```

## Examples

**Few files (≤ 3):**
```
feat(auth): add JWT refresh token endpoint
```

**Many files (> 3):**
```
refactor: extract service layer from controllers

- auth: move login/register logic to AuthService
- user: extract UserService from UserController
- order: decouple OrderService dependencies
- shared: add BaseService abstract class
```

## Rules

ALWAYS:
- Commit immediately by default — show message only if `--confirm` flag is set
- Warn about sensitive files before staging — regardless of flags, NEVER auto-stage `.env`, `*.key`, `secrets.*`, `*.pem`
- Clarify to the user: this is for mid-workflow commits, use `/add-done` to finalize the branch

NEVER:
- Amend previous commits
- Force push
- Create PRs (that's `/add-pr`)
- Replace `/add-done` for branch finalization

Files in this skill

  • SKILL.md4 KB
  • evals/evals.json1.4 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.