Back to skills
extension
Category: Development & EngineeringNo API key required

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.

personAuthor: jakexiaohubgithub

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 | |------|-------------| | feat | New feature | | fix | Bug fix | | docs | Documentation only | | refactor | Code restructure (no functional change) | | style | Formatting (no code change) | | test | Adding/updating tests | | chore | 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

  1. Identify type from changes (feat/fix/docs/etc.)
  2. Identify scope from file paths
  3. Write description (≤50 chars, imperative mood)
  4. 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:

  • .env files
  • credentials.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

  • Bash (git status, git diff, git log)
  • Read (if needed to understand file changes)