multiline-commit-messages

Use single-quoted strings for multiline git commit messages in the Shell tool. Prevents heredoc escaping failures that produce garbled commit messages.

Install
npx skills add 'https://github.com/prisma/orm/tree/main/skills-contrib/multiline-commit-messages'
Download bundle ↓
main · fac8604Scanned 2026-09-17

Contributors

GitHub-linked commit authors for this SKILL.md at the saved revision. Co-authors and history before file renames are not included.

File history ↗

SKILL.md

SKILL.mdBrowse 1 file
View on GitHub

Multiline commit messages

The Shell tool sends commands as a single string. Heredoc syntax (<<'EOF') inside $(cat ...) is fragile and fails silently — the literal $(cat <<'EOF' ... ends up as the commit message instead of the intended text.

Rule

Never use $(cat <<'EOF' ...) or $(cat <<EOF ...) for commit messages.

Use single-quoted strings with embedded newlines:

git commit -m 'short summary line

Longer body paragraph explaining why the change exists.
Additional context if needed.'

Why heredocs fail

The Shell tool passes the command as a single string argument. When you write:

git commit -m "$(cat <<'EOF'
message
EOF
)"

The shell may not parse the heredoc correctly in this context — the EOF delimiter, newlines, and nested quoting interact unpredictably. The result is the raw $(cat <<'EOF' ... text appearing as the commit message.

Single-quoted strings with literal newlines are simple, portable, and always work.

Discovery context

Discovered by repository scan. No exact path reference found in the snapshot’s root AGENTS.md.