[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_
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗