Skip to main content

git-master

Atomic commit architect. Detects project commit style from instruction files, git history, or Conventional Commits fallback. Enforces split rules, test pairing, dependency ordering.

跳到安装

来源信息

仓库
anilcancakir/kodizm-ai-docker
最近来源活动
2026年4月29日 20:31
检测到的 SKILL.md 语言
英语
星标
0
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
git-master
description
Atomic commit architect. Detects project commit style from instruction files, git history, or Conventional Commits fallback. Enforces split rules, test pairing, dependency ordering.
when-to-use
TRIGGER when commit, stage, git add, ready to commit, save progress, checkpoint work. DO NOT TRIGGER when push, rebase, squash, blame, bisect, cherry-pick, history search.
# Git Master Atomic commit architect. Each logical unit of work gets its own commit — commit as you go, not in a batch at the end. ## Core Rule: Split by Default **Single commit from many unrelated files = failure.** Default is MULTIPLE COMMITS. ``` 3+ files → MUST be 2+ commits 5+ files → MUST be 3+ commits 10+ files → MUST be 5+ commits ``` **Split when ANY true:** | Signal | Action | |--------|--------| | Different directories/modules | SPLIT | | Different component types (model/service/view) | SPLIT | | Can be reverted independently | SPLIT | | Different concerns (UI/logic/config/test) | SPLIT | | New file vs modification | SPLIT | **Combine ONLY when ALL true:** exact same atomic unit (function + its test), splitting would break compilation, one-sentence justification exists. ## Phase 1: Context Gathering Run in parallel: - `git status` - `git diff --staged --stat` - `git diff --stat` - `git log -20 --pretty=format:"%s"` - `git branch --show-current` ## Phase 2: Convention Detection **First match wins — stop searching after a match.** ### Step 1: AI agent instruction files | File | Source | |------|--------| | `CLAUDE.md` | Claude Code | | `GEMINI.md` | Gemini | | `AGENTS.md` | Shared agent instructions | | `.github/copilot-instructions.md` | GitHub Copilot | If any specifies a commit format — adopt it exactly. ### Step 2: Project convention files | File | What to look for | |------|-----------------| | `.github/git-commit-instructions.md` | Dedicated commit rules | | `.commitlintrc` / `.commitlintrc.json` / `commitlint.config.js` | Commitlint type/scope rules | | `.czrc` / `.cz.json` | Commitizen format | | `CONTRIBUTING.md` / `.github/CONTRIBUTING.md` | "Commit" section | | `PROJECT.md` | Project conventions | | `README.md` | "Commit" or "Contributing" section | If found — adopt exactly. ### Step 3: Git history analysis Classify from the last 20 commits: | Style | Pattern | Detection | |-------|---------|-----------| | `SEMANTIC` | `type(scope): msg` | `^(feat\|fix\|chore\|refactor\|docs\|test\|ci\|style\|perf\|build)(\(.+\))?:` | | `PLAIN` | Descriptive, no prefix | No conventional prefix, >3 words | | `SHORT` | Minimal | 1–3 words only | ``` semantic >= 50% → SEMANTIC plain >= 50% → PLAIN short >= 33% → SHORT else → PLAIN ``` ### Step 4: Default fallback Fewer than 5 commits → Conventional Commits: `feat:`, `fix:`, `refactor:`, `chore:`, `docs:`, `test:`. ### Output (mandatory before proceeding) ``` STYLE DETECTION =============== Source: [instruction file | convention file | git history | default] Style: [SEMANTIC | PLAIN | SHORT] Reference examples from log: 1. "..." 2. "..." 3. "..." ``` ## Phase 3: Commit Planning **Minimum commits:** `max(ceil(file_count / 3), hard_rule_minimum)` Hard rule: 3+ → 2 min | 5+ → 3 min | 10+ → 5 min **Split order:** directory/module first → then by concern. ### Test Pairing Test files MUST be in the same commit as their implementation: ``` *_test.dart ↔ *.dart test_*.py ↔ *.py *.test.ts ↔ *.ts *.spec.ts ↔ *.ts __tests__/*.ts ↔ *.ts tests/*.php ↔ src/*.php ``` ### 3+ Files Justification ``` VALID: "implementation + its direct test file" VALID: "migration + model change (breaks without both)" INVALID: "all related to feature X" INVALID: "part of the same task" ``` ### Dependency Ordering ``` Level 0: Utilities, constants, type definitions Level 1: Models, schemas, interfaces Level 2: Services, business logic Level 3: Controllers, views, endpoints Level 4: Configuration, infrastructure ``` ### Output (mandatory before executing) ``` COMMIT PLAN =========== Files: N | Min commits: M | Planned: K | Status: K >= M ✓ COMMIT 1: [message in detected style] - path/to/file.dart - path/to/file_test.dart Justification: implementation + its test COMMIT 2: [message] - path/to/other.dart Order: Commit 1 → 2 (Level 0 → Level 2) ``` Validate before executing: each commit ≤4 files (or justified), messages match style, tests paired, total ≥ min_commits. Fail → REPLAN. ## Phase 4: Execute For each commit in dependency order: ```bash git add path/to/file1 path/to/file2 git diff --staged --stat git commit -m "<message>" ``` After all commits: `git status` + `git log --oneline -10`. Report results. **Message examples:** | Style | Example | |-------|---------| | SEMANTIC | `feat: add login validation` | | PLAIN | `Add login validation` | | SHORT | `format` | ## Constraints - Selective staging only — `git add path/to/file`, never `git add -A` or `git add .` - No interactive staging — `git add -i` and `git add -p` are blocked - No amending — `git commit --amend` is forbidden, each commit is final - No history rewriting — no `git rebase`, `git reset`, `git cherry-pick` - No pushing — the platform pushes automatically - No branch switching — stay on the assigned task branch
在 GitHub 查看