Automated summary
This skill autonomously analyzes working tree changes, groups files into logical coherent commits, and creates commits following the Commitizen convention.
Strengths
- Automatically groups related changes into coherent commits (feature code + tests + migration, dependencies, docs, config) and orders them by dependency
- Strictly follows the Commitizen format with type, scope, body and footer passed through a HEREDOC
- Five safety hooks block git add ., sensitive files, debug artifacts, large files and merge conflict markers
- Runs without user interaction and ends with a report after verifying each commit via git log
Limitations
- Allowed tools are limited to git add/commit/status/diff/log — no push, interactive rebase or file edits
- Grouping is heuristic-based, so ambiguous or intertwined changes may be split in debatable ways
- Requires the hook scripts to exist under ./hooks and does not support partial hunk staging (git add -p)
Use it when a working tree holds many uncommitted changes that should be split into clean, distinct conventional commits.
Avoid it when you need manual control over individual hunks, history rewriting, pushing to a remote, or when the required safety hooks are not installed.
Security analysis
CautionThe skill uses Bash only for git add/commit/status/diff/log, which is legitimate but powerful. It does not include destructive or exfiltrating commands, and guardrails prevent staging sensitive, large, or conflicted files. However, the referenced hook scripts are external and unreviewed, and autonomous commits alter repository state, warranting caution.
- •The skill executes local Python hook scripts (e.g., block-git-add-all.py) that are not included in the reviewed SKILL.md; their contents are unvetted.
- •Automated commit creation modifies repository history without user confirmation, which could lead to unintended commits if grouping logic fails, though guardrails reduce this risk.
Examples
Commit everything in my working tree — group related files into logical commits using the Commitizen convention.Create separate conventional commits for the current changes, using the scope 'auth' where relevant.I've updated dependencies and added a new feature with tests. Commit them in the right order with proper commit messages.name: git-commit description: Autonomously analyzes working tree changes, groups files into logical coherent commits, and creates commits following the Commitizen convention argument-hint: [optional commit scope hint] disable-model-invocation: false user-invocable: true allowed-tools: Bash(git add:), Bash(git commit:), Bash(git status:), Bash(git diff:), Bash(git log:*) model: haiku context: fork agent: general-purpose hooks: PreToolUse: - matcher: "Bash" hooks: - type: command command: "./hooks/block-git-add-all.py" timeout: 10 async: false statusMessage: "Validating git command..." once: false - type: command command: "./hooks/block-sensitive-files.py" timeout: 10 async: false statusMessage: "Checking for sensitive files..." once: false - type: command command: "./hooks/block-debug-artifacts.py" timeout: 10 async: false statusMessage: "Checking for debug artifacts..." once: false - type: command command: "./hooks/block-large-files.py" timeout: 10 async: false statusMessage: "Checking for large files..." once: false - type: command command: "./hooks/block-merge-conflicts.py" timeout: 10 async: false statusMessage: "Checking for merge conflict markers..." once: false
Purpose
Fully autonomous skill that analyzes all working tree changes, groups files into logical coherent commits, stages them individually, and creates clean Commitizen-formatted commit messages — without any user interaction.
Context
echo "=== Git Status ==="
git status --short
echo -e "\n=== Unstaged Changes ==="
git diff --stat
echo -e "\n=== Staged Changes ==="
git diff --cached --stat
echo -e "\n=== Recent Commits ==="
git log --oneline -10
Instructions
Workflow
- Analyze all changes — review staged, unstaged, and untracked files from the context above
- Group files into logical coherent commits — related changes belong together:
- Feature code + its tests + its migration → single commit
- Dependency updates (lockfiles, package manifests) → separate commit
- Documentation changes → separate commit
- Config/tooling changes → separate commit
- Unrelated bug fixes → separate commits
- For each group, in dependency order (deps first, then features, then docs):
- Stage specific files:
git add <file1> <file2> ...— never usegit add .,git add -A, orgit add --all - Craft a Commitizen-formatted commit message (see format below)
- Execute commit using a HEREDOC:
git commit -m "$(cat <<'EOF' <type>(<scope>): <subject> <body> <footer> EOF )" - Verify with
git log --oneline -1
- Stage specific files:
- Output the final report (see Report section)
If the user provided a scope hint argument, use it to guide scope selection across commits.
Commitizen Format
Types
| Type | When to use |
|------------|--------------------------------------------------|
| feat | A new feature |
| fix | A bug fix |
| docs | Documentation only changes |
| style | Formatting, semicolons, etc. (no logic change) |
| refactor | Code change that neither fixes nor adds |
| perf | Performance improvement |
| test | Adding or correcting tests |
| build | Build system or external dependency changes |
| ci | CI configuration changes |
| chore | Other changes that don't modify src or test |
| revert | Reverts a previous commit |
Message Rules
- Subject line: imperative mood, lowercase, no period, ≤72 characters
- Scope: the module, component, or area affected (e.g.,
auth,api,cli) - Body: explain what and why, not how — wrap at 80 characters
- Footer:
BREAKING CHANGE: <description>for breaking changes,Closes #Nfor issue references
Guardrails
| Condition | Action |
|-----------|--------|
| Sensitive files (.env*, *.pem, *.key, credentials*, *secret*) | Skip the file, warn in report |
| Large binary files (>5MB) | Skip the file, warn in report |
| Merge conflict markers (<<<<<<<, =======, >>>>>>>) in any file | Abort entirely, report conflicted files |
| Debug artifacts (*.log, tmp_*, *.tmp, debug_*) | Skip the file, warn in report |
| Grouping is ambiguous | Prefer smaller, atomic commits |
| Purpose of a change is unclear | Use chore type |
| Files are already staged | Respect the existing staging — commit staged files first as their own logical group |
| No changes detected | Exit gracefully with message "Nothing to commit" |
Cookbook
IF: All changes belong to a single feature
THEN: Create one `feat(scope): ...` commit
EXAMPLE: New API endpoint + handler + test + migration → single feat commit
IF: Changes span multiple concerns (feature + dependency update + docs)
THEN: Split into separate commits in order: deps → feature → docs
EXAMPLE: package.json update → new component + test → README update
IF: Only test files changed
THEN: Use `test(scope): ...` type
EXAMPLE: test(auth): add unit tests for login flow
IF: A file contains merge conflict markers
THEN: Abort entirely and report the conflicted files
EXAMPLE: "Cannot commit: unresolved conflicts in src/auth.ts"
IF: Sensitive files detected in changes
THEN: Skip them, commit everything else, warn at end
EXAMPLE: ".env.local skipped — contains sensitive data"
IF: Only config or tooling files changed (linter, formatter, tsconfig, etc.)
THEN: Use `chore(scope): ...` type
EXAMPLE: chore(lint): update eslint configuration
IF: Already-staged files exist alongside unstaged changes
THEN: Commit the staged files first as their own group, then process remaining
EXAMPLE: Staged migration committed first → then unstaged feature code
Report
After all commits are created, output a summary:
- Commits created: total count
- Commit log:
git log --oneline -Nshowing all new commits (where N = number of commits created) - Skipped files: list each skipped file with the reason (sensitive, binary, debug artifact)
- Warnings: any additional notes (e.g., "1 sensitive file excluded", "large binary skipped")
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/autonomous-git-commit-ms1aw4x4/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/autonomous-git-commit-ms1aw4x4' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/autonomous-git-commit-ms1aw4x4/download' --output '.skill-downloads/autonomous-git-commit-ms1aw4x4/SKILL.md.part' && mv '.skill-downloads/autonomous-git-commit-ms1aw4x4/SKILL.md.part' '.skill-downloads/autonomous-git-commit-ms1aw4x4/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Bash(git add:*), Bash(git commit:*), Bash(git status:*), Bash(git diff:*), Bash(git log:*)
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/autonomous-git-commit-ms1aw4x4/SKILL.md' && test -s '.skill-downloads/autonomous-git-commit-ms1aw4x4/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/git-commit' && cp -R '.skill-downloads/autonomous-git-commit-ms1aw4x4' '.claude/skills/git-commit'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/autonomous-git-commit-ms1aw4x4'openskills read 'autonomous-git-commit-ms1aw4x4'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/autonomous-git-commit-ms1aw4x4/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.