Skip to main content

git-commit

Commit message conventions and git commit execution rules. MUST be loaded before running any git commit command. Invoke whenever the user asks to commit changes, stage files, or create a commit — even without an explicit slash command.

Informations de source

Dépôt
rohaquinlop/claude-config
Dernière activité de la source
2 septembre 2026 à 14:23
Langue détectée de SKILL.md
anglais
Étoiles
0
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
git-commit
description
Commit message conventions and git commit execution rules. MUST be loaded before running any git commit command. Invoke whenever the user asks to commit changes, stage files, or create a commit — even without an explicit slash command.
# Git Commits Use Conventional Commits. Every commit message must follow this format: ``` <type>(<scope>): <short description> ``` --- ## Types | Type | When to use | | ---------- | ------------------------------------------------------- | | `feat` | New functionality | | `fix` | Bug fix | | `refactor` | Code change that neither adds a feature nor fixes a bug | | `chore` | Maintenance — dependencies, config, tooling | | `test` | Adding or updating tests | | `docs` | Documentation only | ## Scope The scope is the part of the codebase affected. Keep it to one word. Derive it from this repo's own naming — the actual directory, module, package, or service name the change touches (e.g. a top-level folder name, a package name, a service name already used in the codebase). Don't impose vocabulary from another project. Common cross-cutting scopes, when the change doesn't map to one module: `deps`, `config`, `ci`, `docs`. Scope is optional only when the change is truly cross-cutting across multiple modules. --- ## Short Description - Lowercase, no period at the end - Imperative mood: "add retry logic" not "added retry logic" - Max ~70 characters - Enough context to understand the change without reading the diff --- ## Examples ``` feat(api): add payload validation on ingestion fix(auth): handle expired tokens without crashing refactor(worker): extract batch processing into private method chore(deps): add pytest-mock as dev dependency test(api): add unit tests for json payload loading docs(config): document required environment variables chore(deps): upgrade requests to 2.32.0 ``` --- ## Grouping and Executing Commits When multiple files have been changed, never commit everything in a single `git add .`. Group changes by concern and make one commit per group. **How to group:** 1. List all changed files with `git status` 2. Identify logical groups — each group should map to a single type + scope 3. Commit each group separately in order from most foundational to most dependent (e.g. shared/lower-level modules before the code that consumes them, deps before code that uses them) **Execution per group:** ```bash git add <file1> <file2> ... git commit -m "<type>(<scope>): <description>" ``` **Example — adding a new module and wiring it into an existing one:** ```bash # Group 1: new module git add lib/rate_limiter.py git commit -m "feat(lib): add rate limiter" # Group 2: consumer wired up git add api/handler.py git commit -m "feat(api): apply rate limiter to incoming requests" ``` **Rules:** - Never use `git add .` or `git add -A` - If a file genuinely touches multiple concerns, prefer the dominant one as the scope - `pyproject.toml` and `uv.lock` always go together in a single `chore(deps)` commit - Never include Claude as co-author - Never push changes — only commit when asked --- ## What to Avoid ``` # Too vague fix: bug fix chore: changes feat: stuff # Not imperative feat(api): added image download support # Unnecessary detail (that's what the diff is for) fix(worker): changed line 42 in worker.py to fix the null check ```
Voir sur GitHub