{
  "checker": {
    "claims": [
      {
        "claim": "audit reports only a relative report locator",
        "command": "<guest-path> <guest-path> --denylist <guest-path> --reports <guest-path>",
        "evidence": "\"report\": \"workspace/20261022T101625.092749Z/report.json\"}\n",
        "expected": "JSON with a relative report path",
        "input": "audit of workspace with --scrub-plan omitted",
        "kind": "claim",
        "outcome": "Real input produced the expected result: \"report\": \"workspace/",
        "returncode": 2,
        "source": "prints only a relative report locator.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "audit exit codes map to PASS/FAIL/INCOMPLETE",
        "command": "<guest-path> <guest-path> --denylist <guest-path> --reports <guest-path>",
        "evidence": "\"outcome\": \"INCOMPLETE\", \"ready\": false, \"counts\": {\"coverage\": 1, \"quality\": 1}, \"report\": \"workspace/20261022T101625.947714Z/report.json\"}\n",
        "expected": "exit 2 with INCOMPLETE outcome",
        "input": "audit of workspace without --verify",
        "kind": "claim",
        "outcome": "Real input produced the expected result: \"outcome\": \"INCOMPLETE\"",
        "returncode": 2,
        "source": "Exit codes: 0 = PASS, 1 = FAIL, 2 = INCOMPLETE.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected: release_check.py main() and README. The README states 'This tool starts no services or timers itself.' There is no cron, scheduler, loop, webhook, --once or --now option; each release-check invocation is a single audit run that exits with PASS/FAIL/INCOMPLETE. No product cycle exists, so no cycle check was run.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected: release_check.py main() and README. The README states 'This tool starts no services or timers itself.' There is no cron, scheduler, loop, webhook, --once or --now option; each release-check invocation is a single audit run that exits with PASS/FAIL/INCOMPLETE. No product cycle exists, so no cycle check was run.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "<guest-path>",
        "--denylist",
        "<guest-path>",
        "--reports",
        "<guest-path>"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 2,
      "scope": "product operation",
      "stderr": "",
      "stdout": "{\"outcome\": \"INCOMPLETE\", \"ready\": false, \"counts\": {\"coverage\": 1, \"quality\": 1}, \"report\": \"workspace/20261022T101624.211461Z/report.json\"}",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "offline CLI proof from the README Development section",
        "command": "<guest-path> -m unittest discover -s tests -p test_audit_rework.py -k _cli_ -v",
        "deferred": false,
        "evidence": "not_report_ready (test_audit_rework.ReworkTests.test_round_3_cli_second_unknown_file_cannot_report_ready) ... ok\ntest_round_3_cli_standard_apache_is_ready (test_audit_rework.ReworkTests.test_round_3_cli_standard_apache_is_ready) ... ok\ntest_round_3_cli_standard_weak_texts_are_ready (test_audit_rework.ReworkTests.test_round_3_cli_standard_weak_texts_are_ready) ... ok\ntest_v3_r2_cli_permissive_weak_and_unlabelled (test_audit_rework.ReworkTests.test_v3_r2_cli_permissive_weak_and_unlabelled) ... ok\n\n----------------------------------------------------------------------\nRan 18 tests in 135.057s\n\nOK",
        "expected": "all 18 CLI tests pass",
        "input": "unittest -k _cli_ subset",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md: Development / Offline CLI proof",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Venv placed at <guest-path> instead of .venv inside the clone so the audit does not scan it; the README's python3 -m venv .venv pattern otherwise followed.",
    "pip install . created release_check.egg-info in the checkout; removed afterwards as build output.",
    "Full unittest run: 175 tests, 38 failures at first. Cause: guest-wide GIT_CONFIG_COUNT/GIT_AUTHOR_EMAIL overrides set a guest-wide agent Git identity as commit identity, which the scanner flags as personal email in fixture repos. With those overrides removed, 174/175 pass.",
    "Remaining test failure test_verify_cli_with_real_interpreter_missing_ensurepip expects an interpreter without ensurepip; the Homebrew Python here includes ensurepip, so the precondition does not hold.",
    "Shallow history: the required --depth 1 fetch makes the audit report shallow-history coverage (INCOMPLETE/FAIL). Not unshallowed, because the task fixed the fetch depth.",
    "--verify: quickstart and the _cli_ test subset pass; the full test verification step exits 1 (raw output is discarded by design, so the exact line is not visible). Export was written but its outcome is FAIL.",
    "Probes and claims use the installed absolute entrypoint <guest-path> so they run without the activated venv.",
    "Final artifacts: the --scrub-plan example was dropped from examples.json because the checker only accepts README-documented example literals and the scrub-plan JSON is not one. The scrub-plan behaviour was still observed (flatten_history true) but is not a replayed example.",
    "An earlier report.json contained an agent email address, which the scanner flagged as a personal finding, making the audit FAIL instead of INCOMPLETE. The address was removed from the report text."
  ],
  "fault_owner": "unsure",
  "main_blocker": null,
  "operation": "Run release-check (README quickstart install) to audit the pinned release-check checkout with an external denylist (INCOMPLETE audit with shallow history), plus --verify and --export observed earlier (both FAIL).",
  "operation_scope": "Local macOS 15.7.7 arm64 guest; Homebrew Python 3.14.8 (README requires 3.11+); Git 2.39.5; pinned commit 5288fe622510581420eb89d02e8246ff3d980bfe fetched with --depth 1. Denylist is a synthetic term file outside the repo. No network services, browsers or credentials used.",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "git init; git remote add origin https://github.com/TayHCode/release-check; git fetch --depth 1 origin 5288fe622510581420eb89d02e8246ff3d980bfe; git reset --mixed FETCH_HEAD",
    "/opt/homebrew/bin/python3 -m venv <guest-path> && . <guest-path> && python -m pip install .  (README Quickstart)",
    "release-check --help; release-check --requirements",
    "python3 -m unittest discover -s tests -q (README Development)",
    "release-check <repo> --denylist <guest-path> --reports <guest-path> --scrub-plan",
    "release-check <repo> --denylist ... --reports ... --verify --timeout 900",
    "release-check <repo> --denylist ... --reports ... --verify --timeout 900 --export <guest-path>"
  ],
  "stuck_step": null,
  "suggested_fix": "None required for the audit tool itself. To get a clean PASS: fetch full history (not depth 1) so shallow-history clears; run the test suite under an interpreter without ensurepip or make the ensurepip test skip when ensurepip is present; set a neutral Git identity in the test environment."
}
