Skip to main content

git-commit

Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Creating a feature branch when on main/master before committing, (3) Generating conventional commit messages from diff, (4) Interactive commit with optional type/scope/description overrides, (5) Intelligent file staging for logical grouping

Quellinformationen

Repository
doocs/md
Letzte Quellaktivität
10. September 2026 um 11:53
Erkannte Sprache von SKILL.md
Englisch
Sterne
13.504
Forks
2.252

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
git-commit
description
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Creating a feature branch when on main/master before committing, (3) Generating conventional commit messages from diff, (4) Interactive commit with optional type/scope/description overrides, (5) Intelligent file staging for logical grouping
license
MIT
# Git Commit with Conventional Commits ## Overview Create standardized, semantic git commits using the Conventional Commits specification. Analyze the actual diff to determine appropriate type, scope, and message. ## Conventional Commit Format ``` <type>[optional scope]: <description> [optional body] [optional footer(s)] ``` ## Commit Types | Type | Purpose | | ---------- | ------------------------------ | | `feat` | New feature | | `fix` | Bug fix | | `docs` | Documentation only | | `style` | Formatting/style (no logic) | | `refactor` | Code refactor (no feature/fix) | | `perf` | Performance improvement | | `test` | Add/update tests | | `build` | Build system/dependencies | | `ci` | CI/config changes | | `chore` | Maintenance/misc | | `revert` | Revert commit | ## Breaking Changes ``` # Exclamation mark after type/scope feat!: remove deprecated endpoint # BREAKING CHANGE footer feat: allow config to extend other configs BREAKING CHANGE: `extends` key behavior changed ``` ## Host shell Do **not** assume Bash. Cursor on Windows uses PowerShell, where `&&`, `$(cat <<'EOF')`, and POSIX `[ -z ... ]` fail. - Prefer **separate git invocations** over chained one-liners. - If you must chain: PowerShell uses `;` (or separate calls). Bash/zsh may use `&&`. - Examples below show Bash and PowerShell when the syntax differs. ## Workflow ### 1. Analyze Diff ```bash # If files are staged, use staged diff git diff --staged # If nothing staged, use working tree diff git diff # Also check status git status --porcelain ``` From the diff, determine the commit **type** and a short **description** (needed for branch naming in step 2). ### 2. Ensure Feature Branch If the current branch is `main` or `master`, create a feature branch **before** staging or committing. ```bash git branch --show-current ``` **Branch naming** — documented prefixes in `CONTRIBUTING.md`: `feat/`, `fix/`, `docs/`. For other commit types, use the commit type as prefix (e.g. `chore/`): ``` <type>/<kebab-case-description> ``` | Commit type | Branch prefix | Example | | ----------- | ------------- | ------- | | `feat` | `feat/` | `feat/custom-shortcuts` | | `fix` | `fix/` | `fix/upload-timeout` | | `docs` | `docs/` | `docs/contributing-guide` | | other types | `<type>/` | `chore/add-create-pr-skill` (aligns with commit type; not listed in CONTRIBUTING.md) | Rules for `<kebab-case-description>`: - Lowercase, words separated by hyphens - Derived from the commit description (drop scope, articles, punctuation) - Keep it short (2–5 words), e.g. `add create pr skill` → `add-create-pr-skill` ```bash # Example: chore commit about adding create-pr skill git checkout -b chore/add-create-pr-skill ``` Do **not** commit directly on `main` or `master`. If the user explicitly asks to commit on the default branch, confirm before proceeding. ### 3. Stage Files (if needed) If nothing is staged or you want to group changes differently: ```bash # Stage specific files git add path/to/file1 path/to/file2 # Stage by pattern git add *.test.* git add src/components/* ``` Do **not** run `git add -p` (interactive; agents cannot complete it). Stage explicit paths instead. **Never commit secrets** (.env, credentials.json, private keys). ### 4. Generate Commit Message Analyze the diff to determine: - **Type**: What kind of change is this? - **Scope**: What area/module is affected? - **Description**: One-line summary of what changed (present tense, imperative mood, <72 chars) ### 5. Execute Commit Single line (any shell): ```bash git commit -m "<type>[scope]: <description>" ``` Multi-line with body/footer: ```bash # Bash / zsh git commit -m "$(cat <<'EOF' <type>[scope]: <description> <optional body> <optional footer> EOF )" ``` ```powershell # PowerShell git commit -m @" <type>[scope]: <description> <optional body> <optional footer> "@ ``` ## Best Practices - One logical change per commit - Present tense: "add" not "added" - Imperative mood: "fix bug" not "fixes bug" - Reference issues: `Closes #123`, `Refs #456` - Keep description under 72 characters ## Git Safety Protocol - NEVER update git config - NEVER run destructive commands (--force, hard reset) without explicit request - NEVER skip hooks (--no-verify) unless user asks - NEVER force push to main/master - If commit fails due to hooks, fix and create NEW commit (don't amend) ## Project Notes (doocs/md) - Commit messages and PR titles must be in **English** (see `AGENTS.md` and `CONTRIBUTING.md`) - Branch naming: `feat/`, `fix/`, `docs/` per `CONTRIBUTING.md`; for other commit types use `<type>/` prefix; never commit on `main`/`master` — create a branch first (step 2) - Pre-commit runs `eslint --fix` via lint-staged; if the hook modifies files, fix and create a new commit instead of amending
Auf GitHub ansehen