Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/johnqtcg/awesome-skills/git-commitnpx skills add johnqtcg/awesome-skills --skill git-commitgit clone --depth 1 https://github.com/johnqtcg/awesome-skillsWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00052 | $0.03669 |
| Opus 5 | $0.00026 | $0.01835 |
| Sonnet 5 | $0.00010 | $0.00734 |
| Haiku 4.5 | $0.00005 | $0.00367 |
Grade A, and why
git-commit scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 196 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Git Commit (Safety Enhanced, Angular Convention)
Create a commit from the current working tree with safety gates first, then generate a concise Angular-style message in English.
Hard Rules
- Never commit with unresolved conflicts.
- Never commit secrets, credentials, keys, or
.envsensitive values. - Subject line must be <= 50 characters total (including
type(scope):). - Do not use
--amendunless explicitly requested. If already pushed, warn about force push. - If any safety gate fails, stop and report clearly.
- One commit = one logical change. Do not mix unrelated fixes, features, or formatting.
Workflow
Bundled scripts are always invoked as bash "<path-to-skill>/scripts/<name>.sh" — <path-to-skill> is the absolute skill directory (where this SKILL.md was loaded from), never a path relative to the repository. Keep the working directory at the target repo root; the scripts read the repo through git.
1. Preflight
git rev-parse --is-inside-work-tree # must print "true"
git status --short
BRANCH=$(git rev-parse --abbrev-ref HEAD) # "HEAD" means detached (allowed)
# In-progress operation? Worktree-safe: resolve real paths, never read .git/ directly.
for state in rebase-merge rebase-apply MERGE_HEAD CHERRY_PICK_HEAD REVERT_HEAD; do
[ -e "$(git rev-parse --git-path "$state")" ] && echo "IN_PROGRESS $state"
done
# Unresolved conflicts: this diff exits 0 regardless, so act on OUTPUT, not exit code.
git diff --name-only --diff-filter=U
STOP (hard block — report which one and what to resolve) if any of these hold:
--is-inside-work-treedid not printtrue;- any
IN_PROGRESS <state>line printed (rebase / merge / cherry-pick / revert in progress); - the conflict diff printed any path (unresolved merge conflicts).
A detached HEAD is not a stop condition — proceed and note it in the report.
2. Staging
- Snapshot what is already staged first:
git diff --cached --name-only. If files are already staged that the user did not ask to commit, STOP and ask — commit them together, keep them staged for later, or split. Never silently fold pre-staged files into this commit. - If the user names exact files, stage those only with
git add -- <paths>(the--keeps a path that starts with-from being parsed as an option). - If the user says "commit my changes", start from
git status --short. - Count changed paths. If > 8 files, always list the full file set and ask for confirmation before staging anything.
- If
<= 8files, read the diffs and split by logical intent. If one file mixes intents, usegit add -p. - Stage task-related untracked files only when they clearly belong to the same change.
- If unstaged or untracked changes remain after staging, the quality gate MUST run through the isolation wrapper (§4) so it sees exactly the staged snapshot and your changes are restored on every exit path.
- Verify staging with
git diff --cached --stat. If nothing is staged, stop. - Run
git diff --cached --submodule=short. If a submodule pointer changed, confirm it is intentional.
What ships with it
20 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/quality-gate-go.md 1.5 KB
- references/quality-gate-java.md 2.7 KB
- references/quality-gate-node.md 2.1 KB
- references/quality-gate-python.md 1.7 KB
- references/quality-gate-rust.md 1.6 KB
- scripts/detect-ecosystems.sh 2.4 KB runs code
- scripts/run_regression.sh 409 B runs code
- scripts/run-gate.sh 2.6 KB runs code
- scripts/secret-scan.sh 5.7 KB runs code
- scripts/stash-guard.sh 5.0 KB runs code
- scripts/tests/golden/001_canonical_scope_from_history.json 875 B
- scripts/tests/golden/002_bootstrap_scope_for_new_repo.json 811 B
- scripts/tests/golden/003_mixed_roots_omit_scope.json 750 B
- scripts/tests/golden/004_subject_guard_blocks_long_line.json 773 B
- scripts/tests/golden/005_env_timeout_override.json 711 B
- scripts/tests/golden/006_makefile_timeout_override.json 816 B
- scripts/tests/golden/007_mature_repo_without_match_omits_scope.json 1.1 KB
- scripts/tests/test_git_integration.py 28 KB runs code
- scripts/tests/test_golden_scenarios.py 7.9 KB runs code
- scripts/tests/test_skill_contract.py 15 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 196 lines · 52 tokens per session scan A 72c30961f447
git-commit is a skill published in the GitHub repository johnqtcg/awesome-skills (30 stars, last pushed 6d ago), licensed MIT. It adds 52 tokens to every session and 3,669 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
github-awesome-copilot-git-commit
Generate high-quality, atomic Conventional Commits by analyzing Git changes, recommending logical commit boundaries, validating commit messages, and assisting with PRs, changelogs, and releases.
git-commit
Run git commit using Angular conventional commit format. Use when the user asks to commit, create a commit, /git-commit, or save changes to git. Also trigger on "snapshot this", "save my work", "check in changes", "wrap up", "ship this locally", or whenever the user finishes a logical unit of work and the tree is…
close-plan
Plan completion workflow - archive plan, verify todos, create git commit, push with retry. Use for finalizing completed plans.
agent-quorum-manager
Agent skill for quorum-manager - invoke with $agent-quorum-manager.
agent-project-board-sync
Agent skill for project-board-sync - invoke with $agent-project-board-sync.
agent-release-manager
Agent skill for release-manager - invoke with $agent-release-manager.