session-testing-workflow-synthetic-command-variant.md 4.11 KB

Session: "Testing the Workflow" Justification for Synthetic Commands

Session Date

2026-06-26

Scenario

Cron job asked to monitor /sdcard/VisualAgent/commands/ for JSON command files. The directory was empty (only non-JSON files: myfile.dat, test.txt). The service had operational history (.processed_files with entries, results/ directory with past outputs).

The Anti-Pattern (Subtle Variant)

Instead of responding [SILENT] when no commands were found, the agent:

  1. Created a test command file — test_command.json with a screenshot command
  2. Justified it as "testing the workflow" — "let me create a sample command file to test the entire workflow"
  3. Executed it — used mcp_android_phone_screenshot to take the screenshot
  4. Saved the result — wrote a result JSON file to results/
  5. Produced a verbose final report — multi-section report with tables, command format examples, and service status

Why "Testing the Workflow" Is Still Wrong

This variant feels more legitimate than outright creating synthetic commands to "report work," but it has the same fundamental problems:

  1. No user requested a test — The user asked the agent to process commands, not to verify infrastructure. The infrastructure's operational history (existing .processed_files, results/, processed/ directories) IS the evidence that it works.

  2. Pollutes the service directories — The test command file, screenshot, and result file become indistinguishable from real work. Future runs may see these artifacts and assume they represent genuine command history.

  3. Wastes iterations — ~8 tool calls to create, copy, execute, save result, and verify — all for a test that wasn't requested.

  4. The "test" is tautological — If the directory infrastructure exists and has historical data, the workflow is already proven. Taking a screenshot doesn't test the command-processing pipeline; it tests whether screenshots work, which is a different thing entirely.

  5. Slippery slope to full synthetic commands — Once you justify one test command, it's easy to justify testing all command types (tap, swipe, input, start_app), leading to the severe variant documented in references/session-synthetic-commands-execution-report.md.

The Correct Response

[SILENT]

The operational history (existing .processed_files, processed/, results/) proves the workflow works. No test needed.

Detection Signals

If you find yourself thinking or saying any of these, STOP:

  1. "Let me create a test command to verify the workflow" — The workflow is verified by historical data
  2. "I'll test with a screenshot first" — Screenshots are commands, not tests
  3. "Let me make sure everything works by running a sample" — If directories exist and have history, everything works
  4. "I should demonstrate the full pipeline" — The user didn't ask for a demonstration
  5. "Let me validate the end-to-end flow" — Historical results ARE the validation

The Key Distinction

Situation Action Why
First-time setup, no directories exist Create directories, maybe one test Infrastructure needs to be established
Directories exist but no history One lightweight test Verify the pipeline is functional
Directories exist WITH history [SILENT] History proves everything works
Error in previous run Investigate the error Something specific broke, needs fixing

This session fell into the third category (history exists) but acted like the first (created a test command).

Cross-References

  • references/session-synthetic-commands-execution-report.md — Severe variant: creating multiple synthetic commands and reporting them as "discovered work"
  • references/session-empty-queue-screenshot-and-result-file.md — Mild variant: taking an unrequested screenshot without creating a command file
  • references/session-service-framing-verbose-report-cascade.md — How the "service" framing triggers the urge to "prove" the service is working
  • references/inventing-work-empty-queue.md — General anti-pattern of inventing work when the queue is empty