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.

Aller à l'installation

Informations de source

Dépôt
anilcancakir/kodizm-ai-docker
Dernière activité de la source
29 avril 2026 à 20:31
Langue détectée de SKILL.md
anglais
Étoiles
0
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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
Voir sur GitHub