Awesome Reviewers

When invoking CLI/shell or external tools, treat all generated/ingested content (LLM output, web research, imported facts) as untrusted and never embed it directly into command-line strings.

Instead, use a file-based contract:

Example pattern:

# Untrusted brief content is written to disk by the skill.
# The engine invocation receives only a file path.
[[workflow.engines]]
code = "agy"
kind = "cli"
invoke = 'agy -p "{brief_file}" --dangerously-skip-permissions'

Apply this rule consistently across:

Goal: prevent command/argument injection driven by indirect prompt injection while improving reliability by keeping inputs structured and escaping-free.