Skip to content
Skills Library
Programming · Review & audit

commit

/commit

Use before writing any git commit message or reviewing one, and when the user asks for "commit requirements", "commit message guidelines", "/ar:commit", or "/ar:gc". Carries the 17-step pre-commit analysis, the concrete-subject rules that ban vague verbs and session-internal jargon, and the checks that keep a message reviewable from the repository alone.

Repository
autorun ↗
Licence
Apache-2.0
Last repository change
14.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 14.10.2026, without references to retired models or APIs.

Licence

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

What it does and when to use it

Use before writing any git commit message or reviewing one, and when the user asks for "commit requirements", "commit message guidelines", "/ar:commit", or "/ar:gc". Carries the 17-step pre-commit analysis, the concrete-subject rules that ban vague verbs and session-internal jargon, and the checks that keep a message reviewable from the repository alone.

Triggers from the description

commit requirementscommit message guidelines
Original author description

Use before writing any git commit message or reviewing one, and when the user asks for "commit requirements", "commit message guidelines", "/ar:commit", or "/ar:gc". Carries the 17-step pre-commit analysis, the concrete-subject rules that ban vague verbs and session-internal jargon, and the checks that keep a message reviewable from the repository alone.

How it works

  1. Pre-Git Commit Analysis Process
  2. Pre-Git Commit Structure & Format
  3. Pre-Git Commit Content Requirements
  4. Pre-Git Commit Context & Documentation
  5. Pre-Git Commit Security & Quality
  6. Pre-Git Commit Validation & Quality Control
  7. Pre-Git Development Process Exclusions
  8. Pre-Git Commit Hook Handling
  9. Common Git Commit Message Pitfalls & Solutions
Original SKILL.md headings · 242 lines, 1,394 words
SKILL.md preview
---
name: commit
description: Use before writing any git commit message or reviewing one, and when the user asks for "commit requirements", "commit message guidelines", "/ar:commit", or "/ar:gc". Carries the 17-step pre-commit analysis, the concrete-subject rules that ban vague verbs and session-internal jargon, and the checks that keep a message reviewable from the repository alone.
aliases: [gc]
---

# Git Commit Requirements

<purpose>

**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.**

</purpose>

---

<requirements>

## Pre-Git Commit Analysis Process

### 1. Command Execution

- `git status` - see all untracked files
- `git diff --staged` - see exactly what changes will be committed
- `git 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)
- **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`
- **Mixed**: `type(scope) <files>: concrete description`
  - Example: `fix(installer) fs.py: republish a hashless legacy tree after backing it up`
- **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):`, or `type(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 (`-i` flag)

</requirements>

---

<pitfalls>

## Common Git Commit Message Pitfalls & Solutions

Based on analysis of problematic commit messages, avoid these common mistakes:

### ❌ Bad Commit Message Patterns

1. **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"

2. **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

3. **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: ...`

4. **Buried file impact**: Mentioning files deep in message body
   - **Problem**: Hard to understand scope of changes
   - **Solution**: List affected files prominently with brief descriptions

5. **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.

</pitfalls>

Versions

RepositoryScoreLicence
This page · ahundt/autorun100Apache-2.0
rmsaitam/skill-git-conventions100MIT
opsmill/infrahub100Apache-2.0
kdlbs/kandev100AGPL-3.0
vinta/hal-9000100MIT
restarter/lets-workflow100MIT
mickeyyaya/evolve-loop100Apache-2.0
friendlyinternet/nuxt-crouton100MIT
yonatangross/orchestkit100MIT

Database snapshot: 13.11.2026 · package version c259c5a23df1 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100create-commit-message
    Generate a Conventional Commit message from staged git changes when the user asks to write a commit message, create a commit, or format a commit
  • 90commit-message
    Write a commit message for the staged changes that matches the repo's own style, and commit when asked. Use when asked to "write a commit message", "commit this", "commit my changes" or "what should this commit say".
  • 100git-commit
    Commit staged changes with conventional commit message. Use when user says "commit changes", "commit this", "save my changes", or wants to create a git commit.
  • 100git-commit
    Commit staged changes with conventional commit message. Use when user says "commit changes", "commit this", "save my changes", or wants to create a git commit.
  • 96commit-message-generator
    Generate a clear, concise conventional commit message from staged code changes. Use when writing a commit message.
  • 100dev-commit
    开发者准备提交代码时触发。当用户说"commit"、"提交"、"写 commit message"、 "commit these changes"、"生成提交信息"、"帮我写 commit"时使用本 skill。 基于 git diff 生成符合项目 commit 规范的提交信息。 即使用户没有明确说"commit message",只要涉及提交代码的操作都应该触发。

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.