Skip to content
Back to skills

Commit

ASecurity

Use whenever the user wants to commit, save, or record changes to git - including "commit", "commit changes", "commit all", "commit these files". This is the ONLY path to a commit: never run git add/commit yourself, never branch, never inspect git status/diff first - a forked agent stages, writes the Conventional Commits message, commits and verifies. Arguments, all optional - no arguments commits every change (modified, new and deleted files); one or more space-separated paths (files or dire...

  • 8 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 16, 2026
ai-agentsbashgit

Works with

  • claude code

Security analysis

A100/100

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

Scanned October 16, 2026

npx -y skills add p2p2sp/viber --skill commit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Commit?

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

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

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: commit
description: Use whenever the user wants to commit, save, or record changes to git - including "commit", "commit changes", "commit all", "commit these files". This is the ONLY path to a commit: never run git add/commit yourself, never branch, never inspect git status/diff first - a forked agent stages, writes the Conventional Commits message, commits and verifies. Arguments, all optional - no arguments commits every change (modified, new and deleted files); one or more space-separated paths (files or directories) commit only those. Append any issue reference the user mentioned (`#123` or a GitHub issue link) - it becomes the commit's `Refs:` footer. Arguments never carry an apostrophe (').
model: haiku
effort: medium
context: fork
background: false
allowed-tools: Bash, Bash(${CLAUDE_PLUGIN_ROOT}/skills/commit/scripts/commit-context.sh:*), Bash(${CLAUDE_PLUGIN_ROOT}/skills/commit/scripts/commit.sh:*), Bash(${CLAUDE_PLUGIN_ROOT}/skills/commit/scripts/commit-selfcheck.sh:*)
---

## Commit the selected changes

Compose a commit message per the Conventional Commits rules below from the commit context below, matching the type/scope style of the recent commit subjects, then commit it (Working mode) and verify it (Self-Check).

- In modes `all` and `paths` always run `commit.sh` exactly once with the resolved selector, whatever the context shows: a reply with no tool call commits nothing. Never decide on your own that there is nothing to commit, never re-inspect the tree, never question the selection.
- Run only `commit.sh` and `commit-selfcheck.sh`: no `git`, no push, and no second `commit.sh` with a different or empty selector (that widens the commit to everything staged).
- Never add a `Co-Authored-By` line or any other Claude or Claude Code attribution.

Before SHA: !`git rev-parse --verify -q HEAD 2>/dev/null || echo "(none)"`

## Conventional Commits rules
!`cat "${CLAUDE_PLUGIN_ROOT}/skills/commit/references/commit-conventions.md" 2>&1`

## Commit context (recent style + changes + diff)
```!
"${CLAUDE_PLUGIN_ROOT}/skills/commit/scripts/commit-context.sh" '$ARGUMENTS'
```

## Working mode
Act on the mode the `## Selector:` line above resolved, never on the raw arguments:
- `all` -> Run `"${CLAUDE_PLUGIN_ROOT}/skills/commit/scripts/commit.sh" "<message>"`.
- `paths` -> Run `"${CLAUDE_PLUGIN_ROOT}/skills/commit/scripts/commit.sh" "<message>" "<paths>"` with `<paths>` copied verbatim from the Selector line, separators included, to commit ONLY those paths.
- `missing` -> run nothing.

## Self-Check
After a commit, run `"${CLAUDE_PLUGIN_ROOT}/skills/commit/scripts/commit-selfcheck.sh" "<Before SHA>"` with the literal SHA from "Before SHA" above; its output (`VERIFIED` / `FAILED`) fills `<verification>`.

## Output
Return exactly one line and no other text:
- committed: `<sha> | <commit message> (<verification>)`
- `commit.sh` printed `Nothing to commit.`: `Nothing to commit`
- `commit.sh` exited non-zero: its error output
- mode `missing`: the line the Selector gives

Files in this skill

  • SKILL.md3 KB
  • references/commit-conventions.md1.3 KB
  • scripts/commit-args.sh8.3 KB
  • scripts/commit-context.sh5.1 KB
  • scripts/commit-selfcheck.sh1.6 KB
  • scripts/commit.sh5.2 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.