Synthèse automatique
Cette skill analyse de façon autonome les modifications de l'arbre de travail, regroupe les fichiers en commits logiques et crée les commits correspondants au format Commitizen.
Points forts
- Regroupe automatiquement les changements en commits cohérents (code + tests + migration, dépendances, docs, config) et les ordonne par dépendance
- Respecte strictement la convention Commitizen avec types, scope, corps et footer passés via HEREDOC
- Cinq hooks de sécurité bloquent git add ., les fichiers sensibles, les artefacts de debug, les gros fichiers et les marqueurs de conflit
- Fonctionne sans interaction utilisateur et produit un rapport final après vérification via git log
Limites
- Les outils autorisés se limitent à git add/commit/status/diff/log : aucun push, rebase interactif ou modification de fichiers
- Le regroupement repose sur des heuristiques, les changements ambigus ou imbriqués peuvent donner lieu à des découpages discutables
- Dépend de la présence des scripts de hook dans ./hooks et ne couvre pas la sélection partielle de hunks (git add -p)
À utiliser lorsqu'un arbre de travail contient de nombreuses modifications non commitées à répartir en commits conventionnels propres et distincts.
À éviter si vous voulez contrôler manuellement chaque hunk, réécrire l'historique, pousser vers un remote ou si les hooks de sécurité requis ne sont pas installés.
Analyse de sécurité
PrudenceThe 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.
Exemples
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")
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/autonomous-git-commit-ms1aw4x4/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
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. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash(git add:*), Bash(git commit:*), Bash(git status:*), Bash(git diff:*), Bash(git log:*)
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
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 doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/autonomous-git-commit-ms1aw4x4'openskills read 'autonomous-git-commit-ms1aw4x4'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/autonomous-git-commit-ms1aw4x4/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.