{
  "checker": {
    "details": {
      "checks": [
        {
          "check": "install",
          "details": {
            "argv": [
              "/root/.local/bin/hate_crack",
              "quick",
              "--help"
            ],
            "blocker": "product invocation failed: {\"returncode\": 127, \"stdout\": \"\", \"stderr\": \"/root/.local/bin/hate_crack: line 4: exec: uv: not found\\n\", \"needs_credentials\": false, \"needs_browser\": false}",
            "kind": "cli",
            "needs_browser": false,
            "needs_credentials": false,
            "returncode": 127,
            "stderr": "/root/.local/bin/hate_crack: line 4: exec: uv: not found",
            "stdout": "",
            "working": false
          },
          "optional": false,
          "status": "FAIL"
        }
      ],
      "scope": "partial checks",
      "working": false
    },
    "status": "FAIL"
  },
  "deviations": [
    "make (README Step 3) failed: setuptools-scm 'unable to detect version for /workspace' because the checkout had no .git. Fixed by attaching git metadata for the pinned commit (index reset only, working tree unchanged; diff against the pinned tree was empty).",
    "make failed earlier at 'princeprocessor/src: No such file or directory' because submodules were empty (no git). Fixed by git submodule update --init --recursive.",
    "make's submodule builds failed with 'cc: No such file or directory' / 'gcc: No such file or directory'. Installed build-essential and re-ran make.",
    "Observation (repo): the first make run without a C compiler still exited 0 at the submodule step; the submodule build failures were not treated as errors.",
    "hate_crack quick ... --rules best64.rule failed with 'invalid --rules value: best64.rule' because config.json rules_directory defaults to ./hashcat/rules (empty). Ran the same command with RULES_DIRECTORY=/usr/share/hashcat/rules (README's documented env override).",
    "Declined the 'Upgrade now? [y/N]' prompt by running with stdin from /dev/null (default is N). No telemetry or consent options were encountered.",
    "Observation (repo): hate_crack quick returned exit 0 even though hashcat failed with 'Not enough allocatable device memory'. The README says the process exits non-zero on error. No source change was made for this.",
    "Did not install or use a browser. Did not run the full test or lint suites.",
    "Generated /workspace/config.json, /workspace/.env, and /workspace/.venv (product/uv output), and created /workspace/.git (index attached to the pinned commit). Product source files are unchanged."
  ],
  "fault_owner": "prerequisite",
  "main_blocker": "hashcat CPU/pocl OpenCL device has only 256 MB allocatable in one block and no GPU; hashcat reports 'Not enough allocatable device memory for this attack.' for every configuration tried, including without hate_crack.",
  "operation": "hate_crack quick hashes.txt 0 --wordlist words.txt --rules best64.rule (README 'Non-interactive / scripted usage'); reached hashcat but could not run an attack",
  "operation_scope": "Install and CLI start succeeded (hate_crack quick --help rc=0). The crack operation is blocked: hashcat's only OpenCL device (pocl CPU, 256 MB allocatable in one block, no GPU) reports 'Not enough allocatable device memory for this attack.' Fails identically with plain hashcat -m 0 -a 0, with or without -O, with or without rules, and with -w 1. Prerequisite/runtime limitation of the VM.",
  "outcome": "blocked",
  "steps": [
    "apt-get install -y hashcat p7zip-full transmission-daemon git make ocl-icd-libopencl1 pocl-opencl-icd curl ca-certificates (README 'External Dependencies' / Step 1)",
    "apt-get install -y build-essential (needed by hashcat-utils, princeprocessor, omen builds)",
    "Attached pinned git metadata: git init, git fetch --depth 1 https://github.com/trustedsec/hate_crack.git d6eb5d54bed83d55732e11c3d634d047bb1e5d83, mv .git into /workspace, git reset --mixed FETCH_HEAD (index only; git status clean)",
    "git submodule update --init --recursive (README Step 2; all six submodules at recorded commits)",
    "make (README 'Install dependencies and hate_crack', Step 3) -> rc=0 after fixes; installed shim /root/.local/bin/hate_crack",
    "hate_crack quick --help -> rc=0 (install check)",
    "hate_crack quick hashes.txt 0 --wordlist words.txt --rules best64.rule (README 'Non-interactive / scripted usage') -> hashcat 'Not enough allocatable device memory for this attack'"
  ],
  "stuck_step": "hate_crack quick hashes.txt 0 --wordlist words.txt --rules best64.rule (README 'Non-interactive / scripted usage')",
  "suggested_fix": "Run the operation on a host or guest with a usable GPU or an OpenCL device whose CL_DEVICE_MAX_MEM_ALLOC_SIZE is large enough for hashcat (or a pocl build/configuration that exposes more allocatable memory). Separately, hate_crack quick should propagate hashcat's nonzero exit status so failures are not reported as exit 0."
}
