Claude-skill-registry julien-dev-commit-message
Generate semantic commit messages and create git commits. Handles OneDrive mmap errors automatically. Use when user wants to commit, needs a commit message, or git commit fails.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/julien-dev-commit-message" ~/.claude/skills/majiayu000-claude-skill-registry-julien-dev-commit-message && rm -rf "$T"
manifest:
skills/data/julien-dev-commit-message/SKILL.mdsource content
Commit Message Generator
Generate semantic commit messages and create git commits. Automatically handles OneDrive mmap errors.
Observability
First: At the start of execution, display:
🔧 Skill "julien-dev-commit-message" activated
Quick Reference
<type>(<scope>): <description max 50 chars> <body explaining why> 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Commit Types
| Type | When to Use |
|---|---|
| New feature |
| Bug fix |
| Documentation only |
| Code restructure (no functional change) |
| Formatting (no code change) |
| Adding/updating tests |
| Maintenance, dependencies |
Execution Process
Step 1: Analyze Changes
git status git diff --cached --stat git diff --cached git log --oneline -5
Step 2: Generate Message
- Identify type from changes (feat/fix/docs/etc.)
- Identify scope from file paths
- Write description (≤50 chars, imperative mood)
- Write body explaining WHY (not what)
Step 3: Present to User
## Proposed Commit \`\`\` feat(api): add user authentication endpoint - Implemented JWT token generation - Added password hashing with bcrypt - Created login/logout routes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> \`\`\` **Ready to commit?** Run: \`\`\`bash git add -A && git commit -m "$(cat <<'EOF' feat(api): add user authentication endpoint - Implemented JWT token generation - Added password hashing with bcrypt - Created login/logout routes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> EOF )" \`\`\`
Step 4: Wait for Approval
NEVER commit automatically. Always wait for user to execute the command.
OneDrive Error Handling
If
git commit fails with fatal: mmap failed: Invalid argument:
Automatic Detection
Check if repo is in OneDrive:
pwd | grep -i onedrive && echo "OneDrive detected"
Workaround: Git Plumbing Commands
# 1. Configure memory limits git config core.packedGitWindowSize 1m git config pack.windowMemory 1m # 2. Create blob objects SHA=$(git hash-object -w path/to/file) # 3. Update index git update-index --add --cacheinfo 100644,$SHA,path/to/file # 4. Create tree TREE=$(git write-tree) # 5. Get parent PARENT=$(git rev-parse HEAD) # 6. Create commit COMMIT=$(echo "your message" | git commit-tree $TREE -p $PARENT) # 7. Update branch git update-ref refs/heads/$(git branch --show-current) $COMMIT
Alternative
If plumbing fails, recommend:
- Git GUI (included with Git for Windows)
- GitHub Desktop
- VSCode Source Control
Security Checks
Warn if staged files contain:
files.envcredentials.json- API keys, tokens
- Private keys (
,.pem
).key
Checklist
Before presenting:
- Type matches changes
- Description ≤50 chars, imperative mood
- Body explains WHY
- No secrets in staged files
- Attribution included
- Command provided (not auto-committed)
Skill Chaining
Input Expected
- Git repository with staged or unstaged changes
Output Produced
- Format: Commit message + git command to execute
- Side effects: None until user executes command
Tools Used
(git status, git diff, git log)Bash
(if needed to understand file changes)Read