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.

Jump to install

Source facts

Repository
anilcancakir/kodizm-ai-docker
Last source activity
April 29, 2026 at 20:31
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
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
View on GitHub