{
  "tokens_out": 8941,
  "outcome": "pass",
  "suggested_fix": null,
  "cycle_checks": null,
  "fault": {
    "owner": null,
    "status": "resolved",
    "reason": null,
    "evidence": []
  },
  "runtime_revision": null,
  "agent_execution": "native_agent",
  "time_to_working_s": null,
  "usage_complete": true,
  "runtime": null,
  "architecture": null,
  "local_or_hosted": null,
  "agent_interfaces_note": null,
  "platform_details": null,
  "platforms_claimed": null,
  "maintenance": null,
  "evidence_strength": null,
  "purpose": "initial",
  "topic": null,
  "needs_which": null,
  "tested_with": null,
  "native_bundle": null,
  "agent_runtime": "claude-code",
  "maintenance_note": null,
  "runtime_version": null,
  "does_what_it_says": null,
  "commit": "ae6b4f86097566a0537f88b372707dbc55282cdf",
  "failure_origin": null,
  "stuck_step": null,
  "repo_url": null,
  "needs": null,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "--chdir",
          "/tmp/deploy",
          "-b",
          "127.0.0.1:8765",
          "wsgi:app"
        ],
        "kind": "http",
        "status": 200,
        "bytes": 6473,
        "url": "http://127.0.0.1:8765/login",
        "scope": "product operation"
      }
    }
  ],
  "open_issues": null,
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "verifies_run_id": null,
  "total_s": 150.06593489646912,
  "license": null,
  "tool_calls": 20,
  "model_version": "claude-haiku-5-5",
  "example_checks": [],
  "mcp": null,
  "other_model": null,
  "first_use_s": null,
  "native_tool_calls": 20,
  "last_commit_at": null,
  "source": "https://github.com/m-31/little-sister-github",
  "models_agree": null,
  "maintenance_verdict": null,
  "cost_usd": 0.0157333,
  "safety": null,
  "answered_issues": null,
  "what_failed": null,
  "steps": [
    "cd <host-path> && ls -la && cat README* | head -300",
    "cd <host-path> && git log -1 --format=%H 2>/dev/null; ls .github/workflows 2>/dev/null; echo \"CDP=$CDP_URL $<env-var>\"",
    "cd <host-path> && grep -n '^#' README.md; grep -n -i 'quickstart\\|pip install\\|uv \\|python -m\\|little-sister ' README.md | head -60; ls examples docs hooks tests src/*; python3 --version; which uv pip3 pip",
    "cd <host-path> && sed -n 440,500p README.md; sed -n 1,30p tests/running.py; cat tests/settings.yaml | head -40",
    "cd <host-path> && (command -v uv || (curl -LsSf https://astral.sh/uv/install.sh | sh)) 2>&1 | tail -3; export PATH=$HOME/.local/bin:$PATH; export NODE_USE_ENV_PROXY=1; uv --version && grep -n 'uv.sources\\|little-sister' pyproject.toml | head; uv sync 2>&1 | tail -25",
    "cd <host-path> && P=.venv/bin; ls $P | head -50; $P/python -c \"import little_sister,os;print(os.path.dirname(little_sister.__file__))\"; grep -n -A5 'scripts' pyproject.toml | head; ls .venv/lib/python3.12/site-packages/little_sister | head -60",
    "cd <host-path> && ls scripts; grep -rn 'environ\\|getenv' config_dir.py paths.py config.py | head -30; sed -n 1,40p config_dir.py",
    "cd <host-path> && cat examples/github.yaml | grep -v '^\\s*#' | grep -v '^\\s*$' | head -40; grep -n 'LITTLE_SISTER' -r .venv/lib/python3.12/site-packages/little_sister/config_dir.py .venv/lib/python3.12/site-packages/little_sister/config.py | head",
    "mkdir -p /tmp/deploy/config/checks && cd /tmp/deploy && cp <host-path> config/checks/platform.yaml && cat > wsgi.py <<'EOF'\n# isort: off\nimport little_sister_github          # noqa: F401  registers both check types\nfrom little_sister.app import app\n# isort: on\n\n__all__ = [\"app\"]\nEOF\ncat > config/settings.yaml <<'EOF'\ntimezone: UTC\nEOF\nexport PATH=<host-path>\nexport PLATFORM_GITHUB_TOKEN=placeholder-not-a-real-token\nexport LITTLE_SISTER_CONFIG_DIR=/tmp/deploy/config\nexport NODE_USE_ENV_PROXY=1\ntimeout 20 gunicorn --chdir /tmp/deploy -b 127.0.0.1:8765 wsgi:app > /tmp/ls-start.log 2>&1 &\nsleep 8; curl -s -o /dev/null -w '%{http_code}\\n' http://127.0.0.1:8765/; tail -30 /tmp/ls-start.log",
    "cd /tmp/deploy && grep -n 'use_local' <host-path> | head -5; sed -n 1,30p <host-path> | grep -v '^$' | head -30; grep -n 'github' /tmp/ls-start.log | head; curl -s -i http://127.0.0.1:8765/ | head -5",
    "pkill -f 'gunicorn --chdir /tmp/deploy' ; sleep 2; cd /tmp/deploy && cat > wsgi.py <<'EOF'\n# isort: off\nimport little_sister_github          # noqa: F401  registers both check types\nfrom little_sister import local_login\nlocal_login.use_local()              # the built-in login list, for this local deployment\nfrom little_sister.app import app\n# isort: on\n\n__all__ = [\"app\"]\nEOF\nexport PATH=<host-path> PLATFORM_GITHUB_TOKEN=placeholder-not-a-real-token LITTLE_SISTER_CONFIG_DIR=/tmp/deploy/config\ntimeout 60 gunicorn --chdir /tmp/deploy -b 127.0.0.1:8765 wsgi:app > /tmp/ls-start2.log 2>&1 &\nsleep 8; curl -s -o /dev/null -w 'login:%{http_code}\\n' http://127.0.0.1:8765/login; curl -s -o /dev/null -w 'root:%{http_code}\\n' http://127.0.0.1:8765/; grep -i 'error\\|warn\\|github' /tmp/ls-start2.log | cut -c1-300 | head; curl -s -m 8 -o /dev/null -w 'gh:%{http_code}\\n' https://api.github.com/ || echo \"github unreachable\"",
    "ps aux | grep '[g]unicorn' | cut -c1-200; cd /tmp/deploy && cat wsgi.py | head -3",
    "cd /tmp/deploy && cat > wsgi.py <<'EOF'\n# isort: off\nimport little_sister_github          # noqa: F401  registers both check types\nfrom little_sister import local_login\nlocal_login.use_local()              # the built-in login list, for this local deployment\nfrom little_sister.app import app\n# isort: on\n\n__all__ = [\"app\"]\nEOF\nexport PATH=<host-path> PLATFORM_GITHUB_TOKEN=placeholder-not-a-real-token LITTLE_SISTER_CONFIG_DIR=/tmp/deploy/config\nnohup timeout 900 gunicorn --chdir /tmp/deploy -b 127.0.0.1:8765 wsgi:app > /tmp/ls-start2.log 2>&1 &\nsleep 8; curl -s -o /dev/null -w 'login:%{http_code}\\n' http://127.0.0.1:8765/login; curl -s -o /dev/null -w 'root:%{http_code}\\n' http://127.0.0.1:8765/; grep -i 'error\\|warn\\|github' /tmp/ls-start2.log | cut -c1-300 | head; curl -s -m 8 -o /dev/null -w 'gh:%{http_code}\\n' https://api.github.com/ || echo \"github unreachable\"",
    "cd <host-path> && find . -name 'users.example.yaml' | head -2; f=$(find <host-path> <host-path> -name 'users.example.yaml' 2>/dev/null | head -1); [ -n \"$f\" ] && cat \"$f\" | head -30",
    "cd /tmp/deploy && cat > config/users.yaml <<'EOF'\nprobe:\n  firstname: \"Probe\"\n  lastname: \"Local\"\n  password: \"<secret>\"\n  admin: true\nEOF\nexport PATH=<host-path> PLATFORM_GITHUB_TOKEN=placeholder-not-a-real-token LITTLE_SISTER_CONFIG_DIR=/tmp/deploy/config\nnohup timeout 900 gunicorn --chdir /tmp/deploy -b 127.0.0.1:8765 wsgi:app > /tmp/ls-start3.log 2>&1 &\nsleep 8; curl -s -o /dev/null -w 'login:%{http_code}\\n' http://127.0.0.1:8765/login; curl -s -o /dev/null -w 'root:%{http_code}\\n' http://127.0.0.1:8765/; grep -i 'error\\|exception' /tmp/ls-start3.log | cut -c1-300 | head -5; grep -i 'platform\\|github' /tmp/ls-start3.log | cut -c1-250 | head -8",
    "cd /tmp && rm -f /tmp/jar; curl -s -c /tmp/jar -b /tmp/jar http://127.0.0.1:8765/login | grep -io '<form[^>]*>\\|name=\"[^\"]*\"' | head; ",
    "cd /tmp && curl -s -c /tmp/jar -b /tmp/jar -o /dev/null -w 'post:%{http_code} %{redirect_url}\\n' -d 'username=probe&password=<secret>' http://127.0.0.1:8765/login; sleep 20; curl -s -b /tmp/jar -o /tmp/dash.html -w 'dash:%{http_code}\\n' http://127.0.0.1:8765/; grep -o 'platform[^\"<]\\{0,80\\}' /tmp/dash.html | sort -u | head -15; grep -i 'could not\\|401\\|ERROR' /tmp/ls-start3.log | cut -c1-250 | head -5",
    "cd /tmp && curl -s -b /tmp/jar -o /tmp/status.html -w 'status:%{http_code}\\n' http://127.0.0.1:8765/status; sed 's/<[^>]*>/ /g' /tmp/status.html | tr -s ' \\n' | grep -i 'github\\|platform\\|could not\\|token' | cut -c1-300 | head -15; tail -5 /tmp/ls-start3.log | cut -c1-300",
    "pkill -f \"[g]unicorn --chdir /tmp/deploy\"; sleep 2; ps aux | grep '[g]unicorn' | wc -l; curl -s -m 3 -o /dev/null -w '%{http_code}\\n' http://127.0.0.1:8765/login || echo stopped; mkdir -p <host-path> && ls -la <host-path>; cd <host-path> && git status 2>/dev/null | head -3; cat .gitignore | grep -i coldpass",
    "cd <host-path> && cat > .coldpass/probe.json <<'EOF'\n{\n  \"kind\": \"http\",\n  \"argv\": [\"<host-path>\", \"--chdir\", \"/tmp/deploy\", \"-b\", \"127.0.0.1:8765\", \"wsgi:app\"],\n  \"cwd\": \"<host-path>\",\n  \"url\": \"http://127.0.0.1:8765/login\",\n  \"env\": {\n    \"LITTLE_SISTER_CONFIG_DIR\": \"/tmp/deploy/config\",\n    \"PLATFORM_GITHUB_TOKEN\": \"placeholder-not-a-real-token\"\n  }\n}\nEOF\ncat > .coldpass/report.json <<'EOF'\n{\n  \"outcome\": \"working\",\n  \"operation\": \"Started the little-sister dashboard with little-sister-github registered (gunicorn wsgi:app from a deployment dir outside the checkout) and fetched its /login page (HTTP 200). Login POST and /status also answered 200 for the local user.\",\n  \"operation_scope\": \"Verified: install, import/registration of both check types, server start, login page. NOT verified: the github check reading real GitHub data. The config uses a placeholder token and no real org/token was available, so no aspect was shown reading GitHub. Only the server start and login path were exercised.\",\n  \"steps\": [\n    \"Read README.md (headings: Install, Configure github, Develop).\",\n    \"Installed uv 0.13.1 via https://astral.sh/uv/install.sh\",\n    \"uv sync (in <host-path>; NODE_USE_ENV_PROXY=1 exported) -> installed little-sister 0.3.21 and little-sister-github 0.1.12 into .venv\",\n    \"Created /tmp/deploy (outside checkout) with wsgi.py per README Install section, plus local_login.use_local() and config/{settings.yaml,checks/platform.yaml (from examples/github.yaml),users.yaml}\",\n    \"gunicorn --chdir /tmp/deploy -b 127.0.0.1:8765 wsgi:app -> /login 200, POST /login -> 302 to /status, /status 200\",\n    \"Stopped the test server afterwards\"\n  ],\n  \"deviations\": [\n    \"README's Install snippet is a deployment pyproject, not a runnable command; used the Develop section's `uv sync` instead, which the README documents.\",\n    \"First wsgi.py without an identity door failed to serve /login (ERROR: no identity door registered); added local_login.use_local() per little-sister's own message.\",\n    \"Second start failed: 'user list not found'; created config/users.yaml in /tmp/deploy from users.example.yaml format with a throwaway local password.\",\n    \"Used a placeholder PLATFORM_GITHUB_TOKEN; no real GitHub token or org available, so the github check's live reads were not exercised.\",\n    \"Did not run pytest/ruff/mypy/shellcheck per the smoke-task rule.\"\n  ],\n  \"stuck_step\": null,\n  \"main_blocker\": null,\n  \"suggested_fix\": null\n}\nEOF\n<env-var>=<host-path> python3 -I <host-path> --validate"
  ],
  "platform_conflicts": null,
  "claims_note": null,
  "maintained_note": null,
  "repo": "m-31/little-sister-github",
  "service_tier": null,
  "maintained": null,
  "source_pin": null,
  "operation_scope": "product operation",
  "reasoning": "low",
  "claims": [],
  "platform": "linux",
  "cost_to_try": null,
  "backend": null,
  "tool_transport": "mcp-assigned-vm",
  "hardware": null,
  "agent_interface": null,
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "date": "2026-10-18T18:42:37.036094+00:00",
  "kind": "repo",
  "resources": {
    "cpus": 2,
    "memory_mib": 4096,
    "disk_mib": 32768
  },
  "error_excerpt": null,
  "pass": true,
  "evidence_version": null,
  "source_revision": null,
  "run_id": "m-31--little-sister-github-claude-haiku-5-5-1792348806970144219",
  "last_release_at": null,
  "furthest_model": null,
  "model": "claude-haiku-5-5",
  "what_it_did": "Started the little-sister dashboard with little-sister-github registered (gunicorn wsgi:app from a deployment dir outside the checkout) and fetched its /login page (HTTP 200). Login POST and /status also answered 200 for the local user.",
  "sandbox_source": null,
  "other_run_id": null,
  "hosting": null,
  "tested_commit": null,
  "guest_setup": null,
  "mcp_context": null,
  "agent_interfaces": [],
  "setup_identity": null,
  "works": null,
  "install_s": null,
  "fix_id": null,
  "tokens_in": 519991,
  "tested_at": null,
  "test_version": "readme-80bce05978a913d9396742111125106710e3c4b0dc4098ba6143b35960c73717",
  "recovery": {
    "source": "legacy-oct16-18",
    "original_run_id": "m-31--little-sister-github-claude-haiku-5-5-1792348806970144219",
    "historical": true,
    "ledger_sha256": "c5e6a833c182c1e2aecf69d0bd0020aec63c65d98f3e933e4b32232340312736"
  },
  "transcript_url": "/transcripts/m-31--little-sister-github-claude-haiku-5-5-1792348806970144219.txt",
  "report_url": "/reports/m-31--little-sister-github-claude-haiku-5-5-1792348806970144219.json"
}
