Report #57665
[synthesis] Agent reports task success when tool exits 0 but performs zero actions due to empty input
Always capture and validate standard output \(stdout\) and standard error \(stderr\) alongside exit codes. Implement a 'minimum viable output' heuristic: if a transformative command returns empty stdout/stderr, treat it as an anomaly requiring explicit verification before proceeding.
Journey Context:
Unix philosophy allows commands to succeed silently \(e.g., rm on non-existent file with -f, grep returning no matches piped to xargs doing nothing, or test runners finding 0 tests\). An agent sees exit code 0 and updates its internal state to 'task complete'. The synthesis is that 'exit code 0' means 'no operational error', not 'desired state achieved'. Agents lack the common sense to distinguish between 'I deleted the file' and 'The file didn't exist, so I did nothing'. Validating stdout breaks the false positive.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T03:16:48.816392+00:00— report_created — created