{
  "checker": {
    "details": {
      "argv": [
        "<host-path>"
      ],
      "blocker": "product invocation failed: {\"returncode\": 1, \"stdout\": \"\\u001b[H\\u001b[2J\\u001b[3J\\u001b[0;38;5;72;49m\\n _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\n |  __  __   ___   _   _   ___   ____   __   __  |\\n|  |  \\\\/  | |_ _| | \\\\ | | |_ _| |  _ \\\\  \\\\ \\\\ / /   |\\n|  | |\\\\/| |/ | | \\\\|  \\\\| |/ | | \\\\| |_) | /\\\\ V /    |\\n|  |_|  |_| |___| |_| \\\\_| |___| | .__/    | |     |\\n |                              |_|       |_|    |\\n _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \\n\\n\\u001b[0m\\n\\r\\n[?] \\u001b[1;38;5;180;49mChoose a category\\u001b[0m: \\n -> games\\n    tools\\n    \\u001b[1;31mStop\\u001b[0m\\n\\n\", \"stderr\": \"Traceback (most recent call last):\\n  File \\\"<host-path>\\\", line 8, in <module>\\n    sys.exit(main())\\n             ^^^^^^\\n  File \\\"<host-path>\\\", line 39, in main\\n    category = ask(\\\"\\\\033[1;38;5;180;49mChoose a category\\\\033[0m\\\", \\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n  File \\\"<host-path>\\\", line 72, in ask\\n    answer = inquirer.prompt([\\n             ^^^^^^^^^^^^^^^^^\\n  File \\\"<host-path>\\\", line 11, in prompt\\n    answers[question.name] = render.render(question, answers)\\n                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n  File \\\"<host-path>\\\", line 38, in render\\n    return self._event_loop(render)\\n           ^^^^^^^^^^^^^^^^^^^^^^^^\\n  File \\\"<host-path>\\\", line 52, in _event_loop\\n    self._process_input(render)\\n  File \\\"<host-path>\\\", line 107, in _process_input\\n    ev = self._event_gen.next()\\n         ^^^^^^^^^^^^^^^^^^^^^^\\n  File \\\"<host-path>\\\", line 22, in next\\n    return KeyPressed(self._key_gen())\\n                      ^^^^^^^^^^^^^^^\\n  File \\\"<host-path>\\\", line 34, in readkey\\n    c1 = readchar()\\n         ^^^^^^^^^^\\n  File \\\"<host-path>\\\", line 18, in readchar\\n    old_settings = termios.tcgetattr(fd)\\n                   ^^^^^^^^^^^^^^^^^^^^^\\ntermios.error: (25, 'Inappropriate ioctl for device')\\n\", \"needs_credentials\": false, \"needs_browser\": false}",
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 1,
      "stderr": "Traceback (most recent call last):\n  File \"<host-path>\", line 8, in <module>\n    sys.exit(main())\n             ^^^^^^\n  File \"<host-path>\", line 39, in main\n    category = ask(\"\\033[1;38;5;180;49mChoose a category\\033[0m\", \n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"<host-path>\", line 72, in ask\n    answer = inquirer.prompt([\n             ^^^^^^^^^^^^^^^^^\n  File \"<host-path>\", line 11, in prompt\n    answers[question.name] = render.render(question, answers)\n[excerpt truncated]",
      "stdout": "[H[2J[3J[0;38;5;72;49m\n _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n |  __  __   ___   _   _   ___   ____   __   __  |\n|  |  \\/  | |_ _| | \\ | | |_ _| |  _ \\  \\ \\ / /   |\n|  | |\\/| |/ | | \\|  \\| |/ | | \\| |_) | /\\ V /    |\n|  |_|  |_| |___| |_| \\_| |___| | .__/    | |     |\n |                              |_|       |_|    |\n _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n[0m\n\n[?] [1;38;5;180;49mChoose a category[0m: \n[excerpt truncated]",
      "working": false
    },
    "status": "FAIL"
  },
  "deviations": [
    "README 'pip install minipy-tools' replaced by installing the pinned checkout at <host-path> into <host-path>, so the probe runs source at d192ceb3651da37eda6e1fd52206293e6487dcc7.",
    "The venv from the earlier failed run did not exist in this VM; it was created in this run.",
    "No browser, credentials, or API keys were needed. No unit or lint suites were run.",
    "The probe is likely to fail under the real checker: the app exits 1 when stdin is not a TTY (observed). --validate checks shape only, not this behaviour."
  ],
  "fault_owner": "test",
  "main_blocker": "The documented command is an interactive TUI. In a non-TTY process it crashes with termios.error (exit 1) after printing the menu prompt; under a pty it waits on terminal capability queries and never renders.",
  "operation": "Launch the minipy CLI menu (README 'Usage': `minipy`) and reach the 'Choose a category' menu; probe kind cli with stays_running.",
  "operation_scope": "Install and launch verified. The menu is interactive (inquirer + blessed) and needs a real TTY that answers terminal capability queries. With non-TTY stdin it prints the banner and 'Choose a category', then crashes with termios.error (25, 'Inappropriate ioctl for device') and exit 1. Under a pty (script) it blocks on blessed's terminal queries and never renders. The README documents no non-interactive operation.",
  "outcome": "blocked",
  "steps": [
    "apt-get install -y python3-venv python3-tk python3-dev build-essential (README 'Installation': sudo apt install python3-tk)",
    "python3 -m venv <host-path>",
    "<host-path> install <host-path> (pinned checkout, in place of README 'pip install minipy-tools'; exit 0, provides bin/minipy)",
    "<host-path> with stdin=/dev/null: banner and 'Choose a category' printed, then termios.error, exit 1",
    "script -qfc <host-path> (pty): blessed startup queries unanswered; menu never rendered in 5-12s",
    "Wrote .coldpass/probe.json (kind cli, argv [<host-path>, stays_running, expected_text 'Choose a category'); check.py --validate reports valid"
  ],
  "stuck_step": "README 'Usage' -> `minipy` (probe argv <host-path>)",
  "suggested_fix": "Run the minipy probe under a pseudo-terminal that answers terminal queries (or give the checker a pty option for kind cli stays_running), then expect 'Choose a category'. No source change is proposed: the repo behaves as its interactive design requires, and the README documents no non-interactive entry point."
}
