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:
bashgit 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:
bashgit 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.

