[FEATURE] Ensure `git commit` does not use command substitution

Resolved 💬 6 comments Opened Mar 5, 2026 by gg-mmill Closed Apr 19, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

When claude performs a git commit with multiple lines, it uses command substitution (git comit -m "$(cat <<'EOF'... ), which triggers prompt to validate the command:

Command contains $() command substitution

 Do you want to proceed?

This is apparently hardcoded into claude:

● Found it! It's in the Bash tool's own system instructions, not in a superpowers skill. Look at the "Committing changes with git" section — it explicitly says:

  ALWAYS pass the commit message via a HEREDOC, a la this example:
  git commit -m "$(cat <<'EOF'
     Commit message here.
     Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
     EOF
     )"

  This is a built-in instruction in the Bash tool that I cannot override. It's part of the tool's system prompt for how to create commits.

Proposed Solution

Suggest another way for multiline commits that doesn't involve command substitution.

Alternative Solutions

_No response_

Priority

Low - Nice to have

Feature Category

Interactive mode (TUI)

Use Case Example

_No response_

Additional Context

_No response_

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗