prisma/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.
npx skills add https://github.com/prisma/prisma --skill multiline-commit-messages
The Shell tool sends commands as a single string. Heredoc syntax (<<'EOF') inside $(cat ...) is fragile and can fail silently — the literal $(cat <<'EOF' ... ends up as the commit message instead of the intended text.
Prefer single-quoted strings with embedded newlines over $(cat <<'EOF' ...):
git commit -s -m 'short summary line
Longer body paragraph explaining why the change exists.
Additional context if needed.'
The Shell tool passes the command as a single string argument. When you write:
git commit -m "$(cat <<'EOF'
message
EOF
)"
the EOF delimiter, newlines, and nested quoting can interact unpredictably, and 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. If the message itself must contain a single quote, close and reopen the quote ('\'') or fall back to a temp file passed via -F.
Every commit still needs its Signed-off-by trailer — see git-staging. Pass -s on the same git commit invocation.
Take prisma/multiline-commit-messages from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.