- The lint reads a whole command, so an unquoted multi-word placeholder is
caught; negative controls cover double, single and no quotes, quoted and
unquoted heredocs, continuation lines, and quoted-only identifiers used
unquoted.
- Every allowlisted grammar rejects quote-breaking characters (and shell
operators and whitespace when used unquoted); git accepts 'fix;id' and
'fix`id`' as branch names, the ref grammar does not.
- Greptile replies, test-failure issues (GitHub and GitLab) and /spec filing
and archive run from the real generated text with stub gh/glab: a body
with backticks, $(...), an apostrophe and lines equal to EOF and the old
heredoc delimiters arrives byte for byte, nothing in it runs, and the temp
file is gone. An unwritten file is refused with its path and the manual
command, and nothing is sent.
Co-authored-by: dgrant <dgrant@users.noreply.github.com>