{
  "checker": {
    "claims": [
      {
        "claim": "The -s option runs the command immediately at start",
        "command": "timeout 5 <guest-path> -s <guest-path> echo triggered-by-when-changed",
        "evidence": "triggered-by-when-changed\n",
        "expected": "command output printed at startup before the watcher is stopped",
        "input": "when-changed -s on an existing file with echo triggered-by-when-changed, bounded by timeout 5",
        "kind": "claim",
        "outcome": "Real input produced the expected result: triggered-by-when-changed",
        "returncode": 124,
        "source": "-s Run command immediately at start",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "A watch cycle runs the command when triggered",
        "command": "<guest-path> -s <guest-path> echo triggered-by-when-changed",
        "evidence": "triggered-by-when-changed",
        "expected": "command output printed once at startup while watcher keeps running",
        "input": "-s on <guest-path> with echo triggered-by-when-changed",
        "kind": "cycle",
        "method": "start trigger via -s (fake/run-once: no file edit needed); file-change trigger verified by hand in <guest-path>",
        "outcome": "Triggered one cycle by hand (start trigger via -s (fake/run-once: no file edit needed); file-change trigger verified by hand in <guest-path>; normal trigger: event loop: observer watches the file; start-run triggers run_command once): triggered-by-when-changed",
        "returncode": 0,
        "schedule": "event loop: observer watches the file; start-run triggers run_command once",
        "source": "whenchanged/whenchanged.py",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "-s",
        "<guest-path>",
        "echo",
        "triggered-by-when-changed"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "triggered-by-when-changed",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Usage example: watch a file and run a command when it changes",
        "command": "",
        "deferred": false,
        "evidence": "Repo has no test suite or finite example; the documented usage is a long-running watcher. Covered by claims/probe (-s start run) and a manual file-modified test in <guest-path> (command ran with WHEN_CHANGED_EVENT=file_modified). README example pdflatex CV.tex not available in guest.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "Repo has no test suite or finite example; the documented usage is a long-running watcher. Covered by claims/probe (-s start run) and a manual file-modified test in <guest-path> (command ran with WHEN_CHANGED_EVENT=file_modified). README example pdflatex CV.tex not available in guest.",
        "source": "README.md Usage",
        "verdict": "blocked"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "README install line uses GitHub master zip; installed from pinned local snapshot instead",
    "No repo tests or finite examples exist, so examples.json records a reason",
    "Manual file-change test used sh -c wrapper; that wrapper is not part of the saved probe",
    "pip build artifacts (build/, egg-info) removed from the workspace",
    "Claim check wraps the same when-changed -s run in `timeout 5` (exit 124) because the claim runner waits for CLI exit and cannot stop a watcher; the stays_running probe and cycle check run the bare watcher",
    "Examples: no finite test or example exists; examples.json records a reason, verdict blocked"
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "Install when-changed and watch a file so a command runs when it changes (README Usage, -s start run)",
  "operation_scope": "Linux guest, Python 3.12.3 venv at <guest-path>, watchdog 6.0.0, local file only; no browser or credentials needed",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "python3 -m venv <guest-path>",
    "<guest-path> install <guest-path> (README uses pip install of GitHub master zip; pinned snapshot installed locally instead)",
    "<guest-path> -s <guest-path> echo triggered-by-when-changed",
    "Manual: append to <guest-path> while `when-changed -v a.txt sh -c ...` runs; command ran with WHEN_CHANGED_EVENT=file_modified and WHEN_CHANGED_FILE set"
  ],
  "stuck_step": null,
  "suggested_fix": null
}
