{
  "checker": {
    "details": {
      "checks": [
        {
          "check": "install",
          "details": {
            "argv": [
              "<host-path>",
              "--help"
            ],
            "kind": "cli",
            "needs_browser": false,
            "needs_credentials": false,
            "returncode": 0,
            "scope": "partial: install",
            "stderr": "",
            "stdout": "usage: shan-fin [-h] {cli,tkinter} ...\n\nPersonal Finance Quant Engine\n\npositional arguments:\n  {cli,tkinter}  Frontend to launch\n    cli          Launch the terminal CLI\n    tkinter      Launch the Desktop GUI\n\noptions:\n  -h, --help     show this help message and exit",
            "working": false
          },
          "optional": false,
          "status": "PASS"
        },
        {
          "check": "start",
          "details": {
            "argv": [
              "<host-path>",
              "cli",
              "--help"
            ],
            "blocker": "wrong subcommand or usage-only response: {\"returncode\": 0, \"stdout\": \"usage: shan-fin cli [-h] [--config CONFIG] [--rules RULES] [--snapshot]\\n                    [--restore RESTORE] [--auto] [--cron] [--docs]\\n\\noptions:\\n  -h, --help         show this help message and exit\\n  --config CONFIG    Path to config.toml\\n  --rules RULES      Path to rules.toml\\n  --snapshot         Snapshot the DuckDB database instead of running ETL\\n  --restore RESTORE  Path to backup zip file to restore (requires --config)\\n  --auto             Bypass confirmation prompts and automatically start the\\n                     pipeline\\n  --cron             Run completely unattended and exit immediately after\\n                     completion (implies --auto)\\n  --docs             Open the documentation and guides window, then exit\\n\", \"stderr\": \"\", \"needs_credentials\": false, \"needs_browser\": false}",
            "kind": "cli",
            "needs_browser": false,
            "needs_credentials": false,
            "returncode": 0,
            "stderr": "",
            "stdout": "usage: shan-fin cli [-h] [--config CONFIG] [--rules RULES] [--snapshot]\n                    [--restore RESTORE] [--auto] [--cron] [--docs]\n\noptions:\n  -h, --help         show this help message and exit\n  --config CONFIG    Path to config.toml\n  --rules RULES      Path to rules.toml\n  --snapshot         Snapshot the DuckDB database instead of running ETL\n  --restore RESTORE  Path to backup zip file to restore (requires --config)\n  --auto             Bypass confirmation prompts and automatically start the\n                     pipeline\n  --cron             Run completely unattended and exit immediately after\n[excerpt truncated]",
            "working": false
          },
          "optional": false,
          "status": "FAIL"
        }
      ],
      "scope": "partial checks",
      "working": false
    },
    "status": "FAIL"
  },
  "deviations": [
    "Guest had no uv; installed it with the astral.sh installer before uv sync (installation.md names uv as the workflow).",
    "quick-start.md step 1-4 cannot run: needs user-owned config.toml, financial_rules.toml and source data. Repo tests/config.toml uses placeholder '...' paths, so it was not usable and no synthetic financial data was created.",
    "shan-fin cli --docs fails under headless guest: pywebview needs QT or GTK Python bindings (WebViewException)."
  ],
  "fault_owner": "prerequisite",
  "main_blocker": "Prerequisite, not a repo defect: the ETL needs the user's own financial source files, config and rules, none of which exist in the guest. Config validation fails as designed.",
  "operation": "Installed package launcher verified (shan-fin --help, shan-fin cli --help). Attempted documented pipeline run: shan-fin cli --config ... --rules ... --auto --cron; it halts at config validation because user-owned inputs are absent.",
  "operation_scope": "Partial: install and launcher start only. The ETL operation (discover, synchronize, transform, publish Gold/Meta) is not exercised; it requires the user's own config.toml, financial_rules.toml, source DB, statements folder and seven reference CSVs. Desktop (shan-fin / shan-fin-gui / shan-fin cli --docs) needs a GTK or Qt display for pywebview and is not runnable in this headless guest.",
  "outcome": "blocked",
  "steps": [
    "Read README.md and docs/getting-started/installation.md (uv sync documented)",
    "Installed uv 0.13.1 via https://astral.sh/uv/install.sh",
    "uv python install 3.13 (project .python-version is 3.13)",
    "NODE_USE_ENV_PROXY=1 uv sync (created .venv, 3.13.16)",
    ".venv/bin/shan-fin --help (launcher lists cli and tkinter)",
    ".venv/bin/shan-fin cli --help",
    "Read docs/getting-started/quick-start.md; attempted .venv/bin/shan-fin cli --config tests/config.toml --rules tests/financial_rules.toml --auto --cron: validation reports missing paths (placeholder '...' values) and halts; exit 0"
  ],
  "stuck_step": "README Quick Start, steps 1-4 (docs/getting-started/quick-start.md): run the ETL with config.toml and financial_rules.toml",
  "suggested_fix": "Provide a real config.toml with absolute Linux paths to SOURCE_DB_FOLDER, STATEMENTS_FOLDER and the seven CSVs, plus a financial_rules.toml, then run: .venv/bin/shan-fin cli --config /abs/config.toml --rules /abs/financial_rules.toml --auto --cron. For the desktop check, install GTK/PyGObject or Qt bindings in the guest."
}
