commit skill
고품질의 기술적이고 실행 가능한 git commit message를 작성하고 검토하기 위해 17단계 분석 및 특정 포맷 규칙을 적용합니다.
- GitHub 스타
- 13
- 파일
- 1
- 마지막 커밋
- 2026년 11월 10일
- 라이선스
- —
- 허용된 도구
- —
commit skill은 무엇을 하나요?
commit은(는) agent skill입니다. 고품질의 기술적이고 실행 가능한 git commit message를 작성하고 검토하기 위해 17단계 분석 및 특정 포맷 규칙을 적용합니다.
skill의 SKILL.md에서 생성된 요약입니다.
commit skill 정보
고품질의 기술적인 git 히스토리를 유지해야 하는 개발자는 이 SKILL을 사용하여 commit message에 엄격한 표준을 적용할 수 있습니다. 이 SKILL은 메시지를 작성하거나 검토하기 전에 17단계의 검토 프로세스를 거치도록 하는 pre-commit 분석 엔진 역할을 합니다. 사용자가 commit 요구 사항, 가이드라인 또는 /ar:commit과 같은 특정 명령을 요청할 때, 에이전트는 모든 메시지가 실행 가능하고 기술적으로 정확하도록 이 SKILL을 로드해야 합니다.
이 SKILL은 git status, git diff --staged, git log와 같은 git 명령어를 실행하여 컨텍스트를 수집하고 변경 사항을 검증합니다. 구체적인 제목, 이전 동작 설명, 특정 기술적 변경 사항 및 테스트 가능한 결과가 포함된 구조화된 자가 문서화 commit message를 생성합니다. 일반적인 commit 관행과 달리, 모호한 동사와 세션 내부 용어 사용을 엄격히 금지하며, 메시지의 모든 주장이 실제 코드 diff에서 발견된 증거에 의해 뒷받침되도록 요구합니다.
agent가 수행할 수 있는 작업
- 1구조화된 commit message 생성스테이징된 변경 사항에 대해 17단계 분석 및 특정 포맷 규칙을 따르는 git commit message를 작성합니다.
- 2기존 commit message 검토최근 commit message가 기술적 구체성 및 정확성 요구 사항을 충족하는지 확인합니다.
- 3diff 기반 변경 사항 검증스테이징된 변경 사항을 분석하여 commit message가 코드를 정확하게 반영하고 근거 없는 주장을 포함하지 않는지 확인합니다.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
commit skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.플러그인에 commit skill 설치
/plugin marketplace add ahundt/autorun /plugin install ar@autorun
Claude Code에 commit skill 설치
~/.claude/skills/commit/SKILL.md
$ npx degit ahundt/autorun/plugins/autorun/skills/commit ~/.claude/skills/commitClaude Code (project)에 commit skill 설치
.claude/skills/commit/SKILL.md
$ npx degit ahundt/autorun/plugins/autorun/skills/commit .claude/skills/commitCodex에 commit skill 설치
~/.agents/skills/commit/SKILL.md
$ npx degit ahundt/autorun/plugins/autorun/skills/commit ~/.agents/skills/commitGemini CLI에 commit skill 설치
~/.gemini/skills/commit/SKILL.md
$ npx degit ahundt/autorun/plugins/autorun/skills/commit ~/.gemini/skills/commitClaude.ai에 commit skill 설치
npx degit ahundt/autorun/plugins/autorun/skills/commit commit && zip -r commit.zip commit # claude.ai → Customize → Skills → + → Create skill → Upload a skill → commit.zip
SKILL.md
GitHub에서 보기Git Commit Requirements
Third-party repos: Use .git/info/exclude for local-only ignores (e.g., notes/) without modifying .gitignore.
IMPORTANT: Read this entire process (steps 1-17) before starting any git commit work and you must carefully re-analyze the actual for regressions and errors and complete each numbered item and sub-item step-by-step.
Pre-Git Commit Analysis Process
1. Command Execution
git status- see all untracked filesgit diff --staged- see exactly what changes will be committedgit log -5- see recent commit messages for style consistency and for context
2. Complete Change Analysis
Must analyze ALL commits and changes that will be included:
- Not just latest commit - analyze entire scope
- Both staged and unstaged changes
- All commits from branch divergence point (for PRs)
- Previously staged work, not just immediate changes
3. Mandatory Regression Check
Before writing commit message, review git diff --staged to ensure:
- Every claim in commit message has evidence in the actual diff
- No assumptions about previous behavior - only describe what the diff shows changed
- Subject line accurately reflects the files and scope of actual changes
- All described functionality changes match what's visible in the code diff
- If regressions found: record a task with the harness's task tool and fix it before writing the message
Pre-Git Commit Structure & Format
4. Subject Line Format
- Few/grouped files:
<files>: concrete description of what specifically changed- Example:
scoped_allow.py,test_scoped_allow.py: accept day units in scope durations - Example:
test_install_*.py: pin tree publication under two processes(pattern grouping) - Example:
plugins/autorun/commands/*.md: run every bash block through uv run --project(directory grouping)
- Example:
- Many files:
type(scope): concrete description of what specifically changed(scope can be app name)- Example:
fix(installer): retire a hashless legacy tree under --force after a backup
- Example:
- Mixed:
type(scope) <files>: concrete description- Example:
fix(installer) fs.py: republish a hashless legacy tree after backing it up
- Example:
- Always include: Concrete and actionable description of what specifically changed
- Avoid vague terms: "improve performance" → "hydrate ThreadSafeDB once per session instead of once per hook", "enhance security" → "reject relative export paths in plan_export before writing", "update system" → "default the cache gate to off in its FeatureToggle"
5. Message Structure
- Summary first: Concise summary line at top (following format above)
- Previous behavior: Describe what existed before (based on actual git diff, not assumptions)
- What changed: Specific changes made
- Why: Rationale for the changes
- Specific files: List affected files and what changed in each
Pre-Git Commit Content Requirements
6. Concrete & Actionable
- Use specific, measurable descriptions
- Describe functionality that can be tested/verified
- AVOID vague terms: "improved", "enhanced", "HYBRID approach", invented jargon
- USE concrete action words: "fix", "add", "remove", "enable", "disable"
- "update" requires specificity: Use "update X to Y" or "update X by doing Y" - never just "update"
- Include actionable details about what the code now does
- Show exact changes: Before/after comparisons with specific file paths, line numbers
7. Technical Specificity
- Name specific functions, classes, methods affected
- Include file paths and what changed in each file
- Describe technical implementation details
- Mention configuration changes, new dependencies, etc.
8. Accurate Change Classification
- "add" = wholly new feature
- "update X to Y" or "update X by doing Y" = enhancement to existing feature (must specify what changed)
- "fix" = bug fix
- "refactor" = code restructuring
- Must accurately reflect the nature of changes
Pre-Git Commit Context & Documentation
9. Complete Context
- Describe both before/after states
- Explain the problem being solved
- Include enough detail for future developers to understand
- Connect changes to overall system architecture
- Show how changes fit into broader development work
10. Repository Consistency
- Follow existing commit message style from
git log - Match repository's commit message patterns
- Focus on "why" rather than "what" (1-2 sentences for summary)
Pre-Git Commit Security & Quality
11. Security Check
Explicitly check for and prevent committing:
- Secrets or API keys
- Passwords or tokens
- Any sensitive information
12. Testable Outcomes
- Include specific ways to verify changes work
- Mention new functionality that can be tested
- Reference specific commands or use cases enabled
Pre-Git Commit Validation & Quality Control
13. Accuracy Validation Checklist
Before committing, verify:
- Subject format matches
<files>:,type(scope):, ortype(scope) <files>:convention - Every "previous behavior" claim is supported by git diff evidence
- All "what changed" statements match actual lines in git diff --staged
- No claims about functionality that isn't visible in the diff
- Testable outcomes can be verified by running the described commands
- File paths and line numbers are accurate
- Technical details (function names, configurations) match the actual code changes
Pre-Git Development Process Exclusions
14. Avoid Development Methodology References
- Don't mention Claude or AI assistance in development process
- Don't mention multi-agent development methodology used to create the code
- Don't describe HOW the code was developed by assistants
- Don't describe conversational changes or internal commit development process
- Focus on WHAT was built and WHY (multi-agent systems as software features are fine)
15. Avoid Overconfidence & Vague Language
- Never use vague qualifiers: "comprehensive", "complete", "thorough", "HYBRID approach"
- Don't invent terminology: Avoid made-up technical terms that aren't standard
- Avoid abstract descriptions: Use concrete language instead of conceptual descriptions
- Don't bury the main point: Put the key change upfront, not buried in paragraphs
- Avoid absolute claims unless verifiable in the diff
- Don't claim to have "fixed all issues" or "improved everything"
- Use specific, measurable language about actual changes made
- Balance user impact with technical details: Describe both what broke/was fixed AND the implementation approach used
- Acknowledge limitations and scope of changes when relevant
16. Focus on Commit Outcome vs Process
- Describe the whole commit outcome compared to the previous commit state
- Avoid describing incremental conversation steps or iterative development
- Present the final state achieved rather than the journey to get there
- Focus on the complete functional change delivered
Pre-Git Commit Hook Handling
17. Hook Integration
- If pre-commit hooks modify files during commit, retry commit ONCE
- If commit succeeds but hooks modified files, MUST amend commit
- Never use interactive git commands (
-iflag)
Common Git Commit Message Pitfalls & Solutions
Based on analysis of problematic commit messages, avoid these common mistakes:
❌ Bad Commit Message Patterns
-
Vague subject lines: "HYBRID approach", "improve system", "enhance features"
- Problem: Meaningless to someone reading git log
- Solution: Use concrete actions like "fix authentication", "add config validation"
-
Invented jargon: Creating terms like "HYBRID approach" that aren't standard
- Problem: Readers can't understand what was actually implemented
- Solution: Use established technical terms or explain new concepts clearly
-
Missing application context: Subject could apply to any project
- Problem: Lost context about which application was changed
- Solution: Name the component in the scope or lead with its files:
fix(installer): ...,fs.py,traversal.py: ...
-
Buried file impact: Mentioning files deep in message body
- Problem: Hard to understand scope of changes
- Solution: List affected files prominently with brief descriptions
-
Abstract problem descriptions: Conceptual language instead of concrete issues
- Problem: Unclear what the fix actually accomplished
- Solution: Describe specific symptoms and measurable outcomes
✅ Good Git Commit Message Template
type(scope) <files>: [concrete action] [specific component] by [exact method]
Summary: [Concrete action oriented brief high-level description of the change and why it matters]
Previous behavior: [Concrete description of observable behavior and/or limitation(s) being addressed based on git diff]
What changed: [Bulleted list of exact changes with file paths]
- file1.ext: [specific change made]
- file2.ext: [specific change made]
Why: [Root cause explanation in simple terms]
Files affected:
- [list of all modified files with brief description]
Testable: [Specific commands to verify the fix works]
This process ensures git commits are self-documenting, technically precise, security-conscious, and contextually complete while maintaining proper git workflow practices.
이 스킬의 파일
1commit skill 질문
Claude Code에 commit skill을 어떻게 설치하나요?
npx degit ahundt/autorun/plugins/autorun/skills/commit ~/.claude/skills/commit를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
commit skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.