Pipeline de commit automatisé

VérifiéPrudence

Exécute le pipeline de commit gouverné : branchement automatique, ajout sélectif, formatage, lint, détection de secrets, message conventionnel, push.

Spar Skills Guide Bot
DeveloppementIntermédiaire
22/07/2026
Claude CodeCodex
#git#commit#pre-commit-hooks#secret-scanning#push

Recommandé pour

Synthèse automatique

Exécute un pipeline de commit gouverné : création automatique d'une branche depuis une branche protégée, staging sélectif, formatage et lint, détection de secrets, contrôle de la documentation, rédaction d'un message conventionnel puis push.

Points forts

  • Enchaîne dans un seul flux les étapes souvent oubliées : branchement hors de main/master, staging sélectif, formatage, lint et scan de secrets via gitleaks.
  • Compose automatiquement un message au format conventional commits, avec trailers de référence de work items et numéro de spec.
  • S'arrête explicitement en cas d'échec des gates et propose un mécanisme d'acceptation de risque tracé (une entrée DEC par constat).
  • Détecte les fichiers générés ou sensibles et évite le `git add -A` sauf demande explicite.

Limites

  • Suppose l'écosystème `.ai-engineering` (CLI `ai-eng`, scripts Python, manifeste) déjà installé dans le dépôt ; inutilisable tel quel ailleurs.
  • Dépend de binaires externes (gitleaks, ruff) et échoue si l'environnement ne les fournit pas.
  • Ne couvre pas l'ouverture de pull request ni le nettoyage de branches, renvoyés vers des skills séparés.
Quand l'utiliser

À utiliser lorsqu'il faut committer et pousser des changements en respectant les règles du dépôt, les hooks et le scan de secrets, sans passer par une pull request.

Quand l'éviter

À éviter si l'objectif est d'ouvrir une PR, de nettoyer des branches ou de travailler dans un dépôt sans la structure `.ai-engineering`.

Analyse de sécurité

Prudence
Score qualité82/100

The skill is a legitimate governed commit workflow with no destructive, exfiltrating, obfuscated, or safety-disabling instructions. The main risk is operational: it uses powerful tools such as git push, local scripts, and gate/risk commands, so it warrants caution rather than safe.

Points d'attention
  • •Runs `git push origin <current-branch>`, a network write operation.
  • •Invokes local Python scripts and the `ai-eng` CLI, which can mutate repository state and gate state.
  • •No `allowed-tools` are declared even though the skill uses git, Python, network push, and local binaries (`gitleaks`, `ruff`, `ai-eng`).
Comment cette analyse est faite

Exemples

Commit current work
commit my changes
Stage and ship specific files
stage these files and push this to remote — ship it
Commit with a message hint
commit my changes with the hint: add retry logic to the fetch client

name: ai-commit description: "Runs the governed commit pipeline: auto-branches from protected, stages selectively, formats and lints, scans for secrets, gates docs, composes a conventional message, pushes. Trigger for 'commit my changes', 'save my work', 'push this to remote', 'stage these files', 'ship it'. Not for opening a PR; use /ai-pr instead. Not for branch hygiene; use /ai-branch-cleanup instead." effort: cheap argument-hint: "--force|--only|[message hint]" tags: [git, commit, push, hooks, delivery] requires: bins:

  • gitleaks
  • ruff mirror_family: codex-skills generated_by: ai-eng sync canonical_source: .claude/skills/ai-commit/SKILL.md edit_policy: generated-do-not-edit

Commit Workflow

Runs the governed commit pipeline -- stage, format, lint, secret-detect, compose a conventional message, push -- honoring CLAUDE.md Don't rules (binding). Use /ai-pr when the goal is a pull request; see Quick Reference for invocation forms.

Process

0. Auto-branch from protected

If current branch is main/master: infer type (feat/, fix/, chore/, docs/, refactor/), generate slug deterministically with python3 .ai-engineering/scripts/branch_slug.py --prefix <type> (reads spec.md frontmatter), then git checkout -b <output>, report new branch.

1. Work item context (optional)

If .ai-engineering/specs/spec.md frontmatter has refs: include work item refs as commit body trailers (Refs: AB#101, AB#102, #45). Only include close_on_pr items — never features.

2. Instinct consolidation

If .ai-engineering/observations/observations.yml exists, run /ai-session-watch --review to consolidate session observations before committing.

3. Stage changes

git add <file1> <file2> selectively. Use git add -A only when explicitly requested. Exclude generated files, secrets, large binaries.

4. Run gate orchestrator

ai-eng gate run --cache-aware --json --mode=local

The orchestrator runs the 2-wave collector (Wave 1 fixers serial -> Wave 2 checkers parallel) with cache-aware lookup, emitting .ai-engineering/state/gate-findings.json (schema v1) covering every check. After Wave 1 fixers rewrite files, the orchestrator re-stages the safe S_pre & M_post intersection (spec-105 D-105-09); pass --no-auto-stage to disable, or set gates.pre_commit.auto_stage: false in the manifest.

5. Handle gate result

  • Exit 0 -- all checks PASS or auto-fixed. Continue to Commit.
  • Exit non-zero -- parse gate-findings.json, report failing checks per rule_id + severity, STOP. Fix root cause, re-stage, re-run /ai-commit. Override only when remediation is tracked elsewhere and the publish window forces it: ai-eng risk accept-all .ai-engineering/state/gate-findings.json --justification "<reason>" --spec <spec-id> --follow-up "<plan>" writes one DEC entry per finding with severity-default TTL (see .ai-engineering/reference/risk-acceptance-flow.md).

6. Confirm commit readiness

The documentation gate inside the orchestrator is mandatory.

See .ai-engineering/reference/gate-policy.md for the local fast-slice + CI authoritative split.

7. Commit

Compose message via python3 .ai-engineering/scripts/commit_compose.py --type <type> [--task X.Y] --desc "<desc>". --desc is mandatory (spec-139 M8 D-139-06) — derive it from the current plan.md task title (grep -m1 '^- \[ \] ' .ai-engineering/specs/plan.md) or from staged-files / operator hint on off-chain WIP commits. The legacy <DESC> placeholder fallback is deprecated. Doc-gate via python3 .ai-engineering/scripts/doc_gate.py --changed-paths "<staged>" (exit 1 → block; CHANGELOG.md or README.md must accompany changes under src/, tools/, .codex/skills/).

  • With active spec: feat(spec-NNN): Task X.Y -- <desc>, fix(spec-NNN): <desc>, chore(spec-NNN): <desc>.
  • Without spec: type(scope): description (conventional commits, imperative mood). Valid types: feat, fix, perf, refactor, style, docs, test, build, ci, chore, revert.
  • --force skips preview; otherwise preview and confirm.

8. Push

git push origin <current-branch>. Block if on main/master.

/commit --only

Execute the full pipeline through Commit. Skip Push.

Drift recovery

Exit 78 = stack drift. Run ai-eng doctor --fix in shell, retry. Never --no-verify.

Examples

User: "commit only the spec files and don't push yet" → /ai-commit --only .ai-engineering/specs/ stages only the named paths, runs the full pipeline (auto-branch, ruff format + lint, gitleaks scan, doc gate, conventional message) through commit, and stops before push.

Quick Reference

| Goal | Command | |------|---------| | Auto-stage, format, lint, scan, commit, push | /ai-commit | | Stage only named files | /ai-commit --only path/to/file.py | | Provide a message hint | /ai-commit "fix(auth): ..." | | Skip preview | /ai-commit --force | | Stop before push | /ai-commit --only ... |

Integration

Called by: user directly (off-chain, WIP-only flows). /ai-pr carries the same Steps 0-6 inline (single-responsibility per spec-132 T-3) — it does NOT delegate back here. Calls: git, ruff, gitleaks, ai-eng spec verify --fix. Reads: manifest.yml, CLAUDE.md. See also: /ai-pr, /ai-branch-cleanup, /ai-resolve-conflicts.

$ARGUMENTS

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 annexes

Ce 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.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/automated-commit-pipeline-mrwakflx/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/automated-commit-pipeline-mrwakflx' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/automated-commit-pipeline-mrwakflx/download' --output '.skill-downloads/automated-commit-pipeline-mrwakflx/SKILL.md.part' && mv '.skill-downloads/automated-commit-pipeline-mrwakflx/SKILL.md.part' '.skill-downloads/automated-commit-pipeline-mrwakflx/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.

Extrait original : Quick Reference
GoalCommand
Auto-stage, format, lint, scan, commit, push/ai-commit
Stage only named files/ai-commit --only path/to/file.py
Provide a message hint/ai-commit "fix(auth): ..."
Skip preview/ai-commit --force
Stop before push/ai-commit --only ...

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/automated-commit-pipeline-mrwakflx/SKILL.md' && test -s '.skill-downloads/automated-commit-pipeline-mrwakflx/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ai-commit' && cp -R '.skill-downloads/automated-commit-pipeline-mrwakflx' '.claude/skills/ai-commit'

Codex
test -f '.skill-downloads/automated-commit-pipeline-mrwakflx/SKILL.md' && test -s '.skill-downloads/automated-commit-pipeline-mrwakflx/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/ai-commit' && cp -R '.skill-downloads/automated-commit-pipeline-mrwakflx' '.agents/skills/ai-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’OpenSkills
openskills install './.skill-downloads/automated-commit-pipeline-mrwakflx'

openskills read 'automated-commit-pipeline-mrwakflx'

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 sync

Mode 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/automated-commit-pipeline-mrwakflx/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.

Skills similaires