Format git commit messages correctly, avoiding HEREDOC syntax issues in favor of multiline strings
Install
npx skillscat add boneskull/claude-plugins/git-commit-messages Install via the SkillsCat registry.
SKILL.md
Git Commit Message Formatting
When to Use This Skill
Use this skill when creating git commits with the Bash tool, especially for commits with:
- Multi-line messages
- Body text or explanations
- Co-authored-by footers
- Claude Code attribution
Core Principle
Avoid HEREDOC syntax - Use -m with multiline strings instead.
Pattern to Follow
✅ DO - Use multiline string with -m
git commit -m "feat(github): add github plugin
This adds comprehensive GitHub workflow support including
commands for PR management and review workflows.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>"Key points:
- Single
-mflag with entire message in quotes - Newlines preserved within the quoted string
- No special syntax or escaping needed
- Works reliably across all environments
❌ DON'T - Use HEREDOC syntax
# This FAILS in Claude Code's Bash tool
git commit -m "$(cat <<'EOF'
feat(github): add github plugin
This adds comprehensive GitHub workflow support.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"Why this fails:
- HEREDOC syntax has shell interpretation issues
- Fails in certain execution contexts
- More complex than necessary
- Unreliable across environments
Examples
Simple commit
git commit -m "fix: resolve path configuration issue"Commit with body
git commit -m "feat: add progressive disclosure pattern
Skills now support references/ subdirectory for
detailed documentation that loads on-demand."Full conventional commit
git commit -m "feat(tools): add git commit message skill
This skill teaches Claude to format git commit messages
using multiline strings instead of HEREDOC syntax, which
fails in certain shell environments.
The pattern uses a single -m flag with the entire message
in quotes, preserving newlines naturally."Why It Matters
Using -m with multiline strings is:
- Reliable: Works consistently in all environments
- Simple: No complex shell syntax needed
- Portable: Standard git behavior
- Direct: Git handles newlines correctly
HEREDOC syntax causes issues because:
- Shell interpretation varies by environment
- Execution context in Claude Code differs from terminal
- Quote handling becomes complex
- Unnecessary complexity for the task
Quick Reference
- One
-mflag - Entire message in double quotes
- Newlines work naturally
- No HEREDOC needed