Skip to main content

git-commit-conventions

Conventional commit format and workflow with Jira ticket integration Use when this capability is needed.

Zur Installation springen

Quellinformationen

Repository
tomevault-io/skills-registry
Letzte Quellaktivität
28. April 2026 um 22:53
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
0

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.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
git-commit-conventions
description
Conventional commit format and workflow with Jira ticket integration Use when this capability is needed.
metadata
{"author":"alexandrebenkendorf"}
# Git Commit Conventions Guidelines for creating properly formatted commit messages with Jira ticket numbers. --- ## Configuration **Set your Jira project prefix in `README.md`:** ```markdown # Project Configuration - **Jira Ticket Prefix**: `PROJ` (e.g., JIRA, DEV, TASK) - **Branch Format**: `<PREFIX>-<number>-description` ``` --- ## Conventional Commit Format ``` <type>: <PREFIX>-<ticket-number> <description> ``` **Where:** - `<type>` = Commit type (feat, fix, docs, etc.) - `<PREFIX>` = Your Jira project prefix (PROJ, JIRA, etc.) - `<ticket-number>` = Jira ticket number - `<description>` = Imperative description ### No-ticket exception If there is **no ticket in the branch name** and **recent commits do not include tickets**, omit the ticket and use: ``` <type>: <description> ``` ### Commit Types | Type | Usage | | ---------- | ------------------------------------------------------------------------------------------------------ | | `feat` | A new feature | | `fix` | A bug fix | | `docs` | Documentation only changes | | `style` | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) | | `refactor` | A code change that neither fixes a bug nor adds a feature | | `perf` | A code change that improves performance | | `test` | Adding missing tests or correcting existing tests | | `build` | Changes that affect the build system or external dependencies | | `ci` | Changes to our CI configuration files and scripts | | `chore` | Other changes that don't modify src or test files | | `revert` | Reverts a previous commit | | `rollback` | Rolling back to a previous version | --- ## Message Guidelines - **Use imperative mood** in the description (e.g., "Add feature" not "Added feature") - **Keep the description concise** but descriptive - **Capitalize the first letter** of the description - **Do not end with a period** --- ## Ticket Number Format - Always include the **Jira ticket number** from your current branch - Extract the ticket number from your branch name - Example: `PROJ-134713-FE-Add-GitHub-unittest.instructions.md-for-vitest` → `PROJ-134713` - Example: `TASK-456-implement-user-auth` → `TASK-456` - **If the branch has no ticket and recent commits do not include tickets**, omit the ticket and use `<type>: <description>`. --- ## Examples ```bash # Adding a new feature git commit -m "feat: PROJ-134713 Add GitHub unittest instructions for Vitest best practices" git commit -m "feat: TASK-456 Implement user authentication flow" # Fixing a bug git commit -m "fix: PROJ-134714 Resolve memory leak in component unmounting" git commit -m "fix: JIRA-789 Correct email validation regex" # Documentation update git commit -m "docs: PROJ-134715 Update API documentation for user service" # Refactoring code git commit -m "refactor: PROJ-134716 Simplify user authentication logic" # Rolling back changes git commit -m "rollback: PROJ-134717 Revert to previous version due to performance issues" # Adding tests git commit -m "test: PROJ-134718 Add unit tests for UserProfile component" # Performance improvement git commit -m "perf: PROJ-134719 Optimize database query for user search" ``` --- ## AI Assistant Workflow **When user says "commit the changes" or similar:** ### Step-by-step process: 1. ✅ **Run `git status`** to see modified files 2. ✅ **Run `git diff --staged`** (or `git diff` if nothing staged) to review actual code changes - **CRITICAL:** This step is mandatory - never skip it 3. ✅ **Analyze the actual code changes** in detail (not just filenames) 4. ✅ **Check if changes should be split into multiple commits** - If staged changes contain **multiple unrelated changes** (e.g., feature + refactor + docs): - **STOP** and inform the user - Recommend unstaging: `git reset HEAD <file>` - Suggest staging related changes separately - Example: "Your staged changes include both feature changes and documentation updates. Consider splitting these into separate commits for better history." - Each commit should represent **one logical change** 5. ✅ **Determine the appropriate commit type** based on what actually changed: - New functionality → `feat` - Bug fixes → `fix` - Tests only → `test` - Documentation → `docs` - Code cleanup/restructuring → `refactor` - Performance improvements → `perf` - Build/CI changes → `build` or `ci` 6. ✅ **Extract the ticket number** from the current branch name - Read project's Jira prefix from `README.md` if available - Or detect from branch name pattern (e.g., `PROJ-`, `TASK-`, etc.) - **If no ticket is present and recent commits do not include tickets, omit the ticket** 7. ✅ **Check recent commit messages** to match local conventions (e.g., whether tickets are included) 8. ✅ **Generate a properly formatted commit message** based on actual changes 9. ✅ **Execute the commit** with the generated message (only if changes are cohesive) ### Atomic Commits **Each commit should represent ONE logical change:** ✅ **Good - Focused commits:** ```bash # Commit 1 git add src/components/UserProfile.tsx git commit -m "feat: PROJ-12345 Add user avatar display to UserProfile" # Commit 2 git add src/utils/validation.ts git commit -m "fix: PROJ-12345 Correct email validation regex" # Commit 3 git add README.md git commit -m "docs: PROJ-12345 Update UserProfile component documentation" ``` ❌ **Bad - Mixed changes:** ```bash # Mixing feature, fix, and docs in one commit git add src/components/UserProfile.tsx src/utils/validation.ts README.md git commit -m "feat: PROJ-12345 Add avatar, fix validation, update docs" ``` **When to split commits:** - Changes serve different purposes (feature vs fix vs refactor) - Changes affect unrelated areas of the codebase - One change could be reverted independently - Changes would have different commit types ### DO NOT: - ❌ Create commit messages based only on `git status` output - ❌ Assume what changed based on filenames alone - ❌ Skip reviewing the actual code diff - ❌ Guess the commit type without seeing the changes - ❌ Commit multiple unrelated changes together - ❌ Mix different commit types in a single commit (e.g., feat + refactor + docs) --- ## User Prompts ### Recommended Prompts **Best (let AI analyze):** ``` "Commit the changes" "Review my staged changes and create a commit message" ``` **Good (with context):** ``` "I've updated the authentication flow and added error handling. Check my changes and create a commit message." ``` **Acceptable (manual description):** ``` "Create a commit message. I added unit tests for the UserProfile component and fixed a bug in the validation logic." ``` --- ## Example Workflow 1. Make your code changes 2. Stage your changes: `git add .` 3. Ask the AI assistant: **"Commit the changes"** 4. The assistant will: - Run `git status` to see what files changed - **Run `git diff --staged` to see the actual code changes** - Analyze the changes to determine the proper commit type - Extract the ticket number from the branch name - Generate a properly formatted commit message: ``` feat: PROJ-134801 Add error handling to authentication flow ``` 5. Execute the commit: `git commit -m "feat: PROJ-134801 Add error handling to authentication flow"` --- > Converted and distributed by [TomeVault](https://tomevault.io/claim/alexandrebenkendorf) — claim your Tome and manage your conversions. <!-- tomevault:4.0:skill_md:2026-04-13 -->
Auf GitHub ansehen