Skip to content
Back to skills

Create Commit

ASecurity

Stage files and create one or more commits in a single pass

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 10, 2026
toolsgobashgit

Security analysis

A100/100

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

Scanned September 10, 2026

npx -y skills add kapilvirenahuja/garura --skill create-commit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Create Commit?

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

Security grade badge for Create Commit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kapilvirenahuja-create-commit/badge)](https://www.skillsdirectory.com/skills/kapilvirenahuja-create-commit)

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: create-commit
description: Stage files and create one or more commits in a single pass
user-invocable: false
model: haiku
allowed-tools: Bash
---

# create-commit

Model-invocable skill for creating commits. The grouping and the messages are decided
**before** this skill runs (by `analyze-changes`); this skill only **executes** that
plan. git is the tool and it is already known — so run it directly, in one pass. Do not
reason between commits, do not re-decide grouping, do not invoke a sub-agent per commit.

## Purpose

Stage the decided files and create the decided commits. Pure execution, no
decision-making. When handed several groups, commit **all of them in this one
invocation** — never one call per group.

## Input

Receive from the caller a **commit plan** — one or more groups, each:
- `files`: list of files to stage for this group
- `type`: conventional type (feat, fix, refactor, docs, chore, …)
- `scope`: component/area
- `subject`: imperative, present tense
- `body`: optional description
- `issue`: optional issue number

The plan may arrive inline or as a path to the analysis/groups file (e.g.
`analysis.yaml`); read the file if a path is given. Either way, treat it as the final
plan — execute, don't revise.

## Process

Loop over the groups **in order**, in this single invocation. For each group, run the
two git commands directly — no thinking step in between:

1. **Stage that group's files** (only the files listed — never `git add .` / `-A`)
   ```bash
   git add "file1" "file2" "file3"
   ```

2. **Commit** with the conventional message
   ```bash
   git commit -m "type(scope): subject

   body

   Issue: #123"
   ```

3. **Record the hash**
   ```bash
   git rev-parse --short HEAD
   ```

After the last group, confirm the tree is clean (`git status --porcelain`). Do **not**
push — pushing is the caller's separate step.

## Output

Return using template: `templates/commit-output.md` — one entry per commit (hash +
message), and the final clean-tree confirmation.

## Constraints

- ONLY stage files explicitly listed for each group.
- NEVER use `git add .` or `git add -A`.
- ALWAYS use conventional commit format.
- Commit every group in ONE invocation — never a separate call (or sub-agent) per group.
- NEVER push.

## Version

| Field | Value |
|-------|-------|
| Version | 2.0.0 |
| Category | operations |

Files in this skill

  • SKILL.md2.3 KB
  • templates/commit-output.md533 B

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…