From 8cc9ed484e6e7d8e95b42626d19de8457b237cf3 Mon Sep 17 00:00:00 2001 From: imbytecat Date: Sat, 7 Feb 2026 00:49:13 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4=E5=BA=9F=E5=BC=83?= =?UTF-8?q?=E7=9A=84=20git-commit=20=E6=8A=80=E8=83=BD=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- skills/git-commit/SKILL.md | 124 ------------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 skills/git-commit/SKILL.md diff --git a/skills/git-commit/SKILL.md b/skills/git-commit/SKILL.md deleted file mode 100644 index c35f13b..0000000 --- a/skills/git-commit/SKILL.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -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) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping' -license: MIT -allowed-tools: Bash ---- - -# 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 - -``` -[optional scope]: - -[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 -``` - -## 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 -``` - -### 2. 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/* - -# Interactive staging -git add -p -``` - -**Never commit secrets** (.env, credentials.json, private keys). - -### 3. 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) - -### 4. Execute Commit - -```bash -# Single line -git commit -m "[scope]: " - -# Multi-line with body/footer -git commit -m "$(cat <<'EOF' -[scope]: - - - - -EOF -)" -``` - -## 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)