{
  "run_id": "TayHCode--channelrecap-claude-haiku-5-5-1792725136010795309",
  "date": "2026-10-23T03:18:45.659003+00:00",
  "repo": "TayHCode/channelrecap",
  "kind": "repo",
  "source": "https://github.com/TayHCode/channelrecap",
  "commit": "195952ed2df6fd43931291c3b6f09611e35e34eb",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 354.92386797908694,
  "total_s": 389.64818835258484,
  "steps": [
    "cd <guest-path> && pwd && ls -la && id -u && python3 --version && cat README.md 2>/dev/null | head -200",
    "cd <guest-path> && git status 2>&1 | head -3; ls -la <guest-path> ; ls /inputs 2>&1",
    "cd <guest-path> && sed -n 200,400p README.md; echo ----; ls scripts examples examples/* docs .coldpass; cat scripts/check_python.py | head -60",
    "cd <guest-path> && (git init -q 2>&1; git remote add origin https://github.com/TayHCode/channelrecap 2>&1; timeout 120 git fetch --depth 1 origin 195952ed2df6fd43931291c3b6f09611e35e34eb 2>&1 | tail -3; git reset --mixed FETCH_HEAD 2>&1 | tail -2; git log --oneline -1 2>&1); python3 scripts/check_python.py; echo \"rc=$?\"; python3 -m venv .venv 2>&1 | tail -3; echo \"venv rc=${PIPESTATUS[0]}\"",
    "cd <guest-path> && rm -rf .venv && sudo -n apt-get update -qq 2>&1 | tail -2; sudo -n DEBIAN_FRONTEND=noninteractive apt-get install -y -qq python3.12-venv 2>&1 | tail -3; python3 scripts/check_python.py && python3 -m venv .venv && . .venv/bin/activate && python -m pip --version && python -m pip install . 2>&1 | tail -3 && channelrecap --version",
    "cd <guest-path> && . .venv/bin/activate && test ! -e demo-library && channelrecap run --manifest examples/demo/videos.csv --out demo-library; echo \"rc=$?\"; channelrecap check-citations examples/demo/analysis-example.md --out demo-library; echo \"rc=$?\"; head -4 demo-library/summary.md",
    "cd <guest-path> && grep -rniE \"cron|schedul|--once|--now|webhook|while True|loop|daemon|watch\" src docs README.md | head -30; echo ----; . .venv/bin/activate && python -m pip install -q ruff mypy build 2>&1 | tail -2; python -m unittest discover -s tests -q 2>&1 | tail -4; echo \"unittest rc=${PIPESTATUS[0]}\"; python -m compileall -q src tests scripts; echo \"compile rc=$?\"; ruff check src scripts tests 2>&1 | tail -2; echo \"ruff rc=${PIPESTATUS[0]}\"; mypy --ignore-missing-imports src 2>&1 | tail -2",
    "cd <guest-path> && . .venv/bin/activate && python -m build 2>&1 | tail -2; echo \"build rc=${PIPESTATUS[0]}\"; ls dist; mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'\n{\"kind\":\"cli\",\"argv\":[\"<guest-path>\",\"run\",\"--manifest\",\"examples/demo/videos.csv\",\"--out\",\"probe-library\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"done=3 cached=0 failed=0 prepared=3\"}\nEOF\ncat > .coldpass/claims.json <<'EOF'\n[\n {\"kind\":\"claim\",\"claim\":\"Demo run builds a library from the three invented episodes\",\"source\":\"The three invented coffee episodes use local captions:\",\"input\":\"examples/demo/videos.csv\",\"expected\":\"three videos done and prepared\",\"probe_kind\":\"cli\",\"argv\":[\"<guest-path>\",\"run\",\"--manifest\",\"examples/demo/videos.csv\",\"--out\",\"claim-run-library\"],\"expected_text\":\"done=3 cached=0 failed=0 prepared=3\",\"cwd\":\"<guest-path>\"},\n {\"kind\":\"claim\",\"claim\":\"Example analysis has ten checked citations\",\"source\":\"is handwritten and has ten checked citations.\",\"input\":\"examples/demo/analysis-example.md against demo-library\",\"expected\":\"all ten citations ok\",\"probe_kind\":\"cli\",\"argv\":[\"<guest-path>\",\"check-citations\",\"examples/demo/analysis-example.md\",\"--out\",\"demo-library\"],\"expected_text\":\"citations ok=10\",\"cwd\":\"<guest-path>\"}\n]\nEOF\ncat > .coldpass/cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"Inspected README.md, src and docs for cron, scheduling, loops, webhooks, --once and --now; none exist. channelrecap is a one-shot CLI: each run/check-citations invocation processes once and exits.\",\"checks\":[]}\nEOF\ncat > .coldpass/examples.json <<'EOF'\n[\n {\"kind\":\"example\",\"claim\":\"Repository unit tests pass\",\"source\":\"README.md Tests section\",\"input\":\"python -m unittest discover -s tests -q\",\"expected\":\"exit 0\",\"argv\":[\"<guest-path>\",\"-m\",\"unittest\",\"discover\",\"-s\",\"tests\",\"-q\"],\"cwd\":\"<guest-path>\"},\n {\"kind\":\"example\",\"claim\":\"Sources compile\",\"source\":\"README.md Tests section\",\"input\":\"python -m compileall -q src tests scripts\",\"expected\":\"exit 0\",\"argv\":[\"<guest-path>\",\"-m\",\"compileall\",\"-q\",\"src\",\"tests\",\"scripts\"],\"cwd\":\"<guest-path>\"},\n {\"kind\":\"example\",\"claim\":\"Ruff lint passes\",\"source\":\"README.md Tests section\",\"input\":\"ruff check src scripts tests\",\"expected\":\"All checks passed!\",\"argv\":[\"<guest-path>\",\"check\",\"src\",\"scripts\",\"tests\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"All checks passed!\"},\n {\"kind\":\"example\",\"claim\":\"Mypy type check passes\",\"source\":\"README.md Tests section\",\"input\":\"mypy --ignore-missing-imports src\",\"expected\":\"no issues\",\"argv\":[\"<guest-path>\",\"--ignore-missing-imports\",\"src\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"Success: no issues found in 18 source files\"}\n]\nEOF\nfor f in probe claims cycles examples; do python3 -I -c \"import json,sys;json.load(open('.coldpass/$f.json'));print('$f ok')\"; done; ls -la .coldpass",
    "cd <guest-path> && COLDPASS_WORKSPACE=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -60; echo \"rc=${PIPESTATUS[0]}\"",
    "cd <guest-path> && grep -n -iE \"checker-|suffix|uuid|rewrite|--out|output\" check.py | head -60",
    "cd <guest-path> && . .venv/bin/activate && channelrecap check-citations --help | head -20; test ! -e channelrecap-library && channelrecap run --manifest examples/demo/videos.csv; echo \"run rc=$?\"; channelrecap check-citations examples/demo/analysis-example.md; echo \"cc rc=$?\"",
    "cd <guest-path> && python3 -I - <<'EOF'\nimport json\np='.coldpass/claims.json'\nc=json.load(open(p))\nc[1]['input']='examples/demo/analysis-example.md against the default channelrecap-library built by run'\nc[1]['argv']=['<guest-path>','check-citations','examples/demo/analysis-example.md']\njson.dump(c,open(p,'w'),indent=1,ensure_ascii=False)\nEOF\nrm -rf demo-library && COLDPASS_WORKSPACE=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo \"rc=$?\"; python3 -I -c \"\nimport json,sys\nd=json.load(open('<guest-path>')) if False else None\n\" ; tail -c 1500 <guest-path>",
    "cd <guest-path> && python3 -I -c \"\nimport json,re\ns=open('<guest-path>').read()\no=json.loads(json.loads(s)['stdout'])\nprint('valid=',o.get('valid'),'problems=',o.get('problems'),'replay=',o['replay']['status'],o['replay']['details'].get('working'))\nfor c in o['replay']['details']['claims']: print(c['verdict'],c['outcome'])\n\"",
    "cd <guest-path> && COLDPASS_WORKSPACE=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2><guest-path>; echo \"rc=$?\"; python3 -I -c \"\nimport json\no=json.load(open('<guest-path>'))\nprint('valid=',o.get('valid'),'problems=',o.get('problems'),'replay=',o['replay']['status'],o['replay']['details'].get('working'))\nfor c in o['replay']['details']['claims']: print(c['verdict'],c['outcome'])\nprint('probe', o['replay']['details']['returncode'], o['replay']['details']['stdout'][:200])\n\"; cat <guest-path> | tail -3",
    "cd <guest-path> && python3 -I - <<'EOF'\nimport json\nr={\n \"outcome\":\"working\",\n \"fault_owner\":None,\n \"operation\":\"Build the README demo library from the three invented coffee episodes with `channelrecap run`, then verify the example analysis citations with `channelrecap check-citations`.\",\n \"operation_scope\":\"Local CPU, caption-only demo (no ffmpeg, speech model or network needed). Python 3.12.3 in a venv at <guest-path> Not tested: real hosted-site downloads, media transcription, GPU, long videos, large libraries.\",\n \"steps\":[\n  \"git init; git remote add origin https://github.com/TayHCode/channelrecap; git fetch --depth 1 origin 195952ed2df6fd43931291c3b6f09611e35e34eb; git reset --mixed FETCH_HEAD\",\n  \"python3 scripts/check_python.py  (exit 3: ensurepip missing)\",\n  \"sudo -n apt-get update; sudo -n apt-get install -y python3.12-venv\",\n  \"python3 scripts/check_python.py  -> Python 3.12.3: ok\",\n  \"python3 -m venv .venv; . .venv/bin/activate; python -m pip install .\",\n  \"channelrecap --version  -> channelrecap 0.1.0\",\n  \"channelrecap run --manifest examples/demo/videos.csv --out demo-library  -> done=3 cached=0 failed=0 prepared=3, exit 0\",\n  \"channelrecap check-citations examples/demo/analysis-example.md --out demo-library  -> citations ok=10, exit 0\",\n  \"python -m unittest discover -s tests -q  -> Ran 151 tests, OK (skipped=3)\",\n  \"python -m compileall -q src tests scripts  -> exit 0\",\n  \"python -m pip install ruff mypy build; ruff check src scripts tests -> All checks passed!\",\n  \"mypy --ignore-missing-imports src -> Success: no issues found in 18 source files\",\n  \"python -m build  -> built sdist and wheel\",\n  \"COLDPASS_WORKSPACE=<guest-path> python3 -I <guest-path> --validate --replay -> valid, no problems, replay PASS\"\n ],\n \"deviations\":[\n  \"scripts/check_python.py exited 3 because ensurepip was missing from python3 (Ubuntu 24.04). Install attempted: sudo -n apt-get install -y python3.12-venv (after sudo -n apt-get update). Succeeded; then the README venv route was used unchanged.\",\n  \"A first `python3 -m venv .venv` failed with ensurepip missing and left a partial .venv, which was removed with rm -rf .venv before the apt install.\",\n  \"The /inputs/coldpass-preflight.py path named in the task does not exist in this guest; the checker at <guest-path> was run with the same flags instead.\",\n  \"The checker rewrites every --out path to a fresh suffixed path during replay, so a `check-citations --out demo-library` claim failed with 'Cannot read library.json'. The claim was changed to use the README's documented default output folder: `channelrecap run` without --out writes channelrecap-library, and check-citations without --out reads it. That folder is a fixture I created by hand, left in the workspace; the replay reads it without rewriting. My manual demo-library folder was removed.\",\n  \"The README's uv route was not needed. Dev tools (ruff, mypy, build) were installed into the venv with python -m pip install, as the README Tests section directs.\",\n  \"Git metadata was set up at the pin as the task instructed; git reset --mixed only changed the index, the source tree is the pinned snapshot.\"\n ],\n \"stuck_step\":None,\n \"main_blocker\":None,\n \"plain_failure\":None,\n \"suggested_fix\":\"None needed for the tested path. Optional: the README could state that python3-venv (python3.12-venv on Ubuntu 24.04) must be installed before the venv step, since scripts/check_python.py already detects this.\"\n}\nimport os\nos.makedirs('.coldpass',exist_ok=True)\njson.dump(r,open('.coldpass/report.json','w'),indent=2,ensure_ascii=False)\nprint(open('.coldpass/report.json').read()[:300])\nEOF\nCOLDPASS_WORKSPACE=<guest-path> python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo \"final rc=$?\"; python3 -I -c \"\nimport json;o=json.load(open('<guest-path>'));print('valid=',o.get('valid'),'problems=',o.get('problems'),o['replay']['status'])\" 2>&1 | tail -2; ls <guest-path>; ls <guest-path> | head -40"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Build the README demo library from the three invented coffee episodes with `channelrecap run`, then verify the example analysis citations with `channelrecap check-citations`.",
  "suggested_fix": null,
  "tokens_in": 392318,
  "tokens_out": 16263,
  "cost_usd": 0.01941171,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "<guest-path>",
          "run",
          "--manifest",
          "examples/demo/videos.csv",
          "--out",
          "probe-library-checker-2e4a71f1ea134175adf4063237075200"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "done=3 cached=0 failed=0 prepared=3 out=probe-library-checker-2e4a71f1ea134175adf4063237075200",
        "stderr": "",
        "needs_credentials": false,
        "needs_browser": false,
        "scope": "product operation"
      }
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "No problems traced to this repository code in these checks.",
    "findings": [],
    "context": [],
    "limitations": [
      "A short run cannot establish that code is safe.",
      "Connections show IP addresses; proxies can hide the final hostname.",
      "Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing."
    ],
    "static": {
      "dependency_note": "OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check."
    },
    "evidence_url": "/safety/?run=TayHCode--channelrecap-claude-haiku-5-5-1792725136010795309",
    "evidence_file": "/data/safety/TayHCode--channelrecap-claude-haiku-5-5-1792725136010795309.json.gz"
  },
  "agent_execution": "native_agent",
  "agent_runtime": "claude-code",
  "agent_runtime_version": "2.1.300 (Claude Code)",
  "tool_transport": "mcp-assigned-vm",
  "platform": "linux",
  "reasoning": "low",
  "service_tier": null,
  "resources": {
    "cpus": 2,
    "memory_mib": 4096,
    "disk_mib": 32768
  },
  "native_tool_calls": 15,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "195952ed2df6fd43931291c3b6f09611e35e34eb",
    "url": "https://github.com/TayHCode/channelrecap"
  },
  "purpose": "initial",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": null,
    "status": "resolved",
    "reason": null
  },
  "fix_id": null,
  "verifies_run_id": null,
  "hosting": null,
  "operation_scope": "product operation",
  "tool_calls": 15,
  "guest_setup": null,
  "runtime": null,
  "runtime_version": null,
  "runtime_revision": null,
  "source_revision": null,
  "evidence_version": null,
  "failure_origin": null,
  "evidence_strength": "readme_checked",
  "works": "yes",
  "install_s": null,
  "first_use_s": null,
  "mcp": "none",
  "needs": [],
  "needs_which": null,
  "agent_interface": [
    "cli"
  ],
  "license": "MIT",
  "repo_url": "https://github.com/TayHCode/channelrecap",
  "cost_to_try": "free",
  "hardware": "GPU",
  "what_failed": null,
  "local_or_hosted": "local",
  "cycle_checks": [
    {
      "kind": "cycle",
      "claim": "Scheduled or looping main behavior",
      "source": "repository entry points",
      "input": "source inspection",
      "expected": "identify the product trigger",
      "verdict": "yes",
      "outcome": "Inspected README.md, src and docs for cron, scheduling, loops, webhooks, --once and --now; none exist. channelrecap is a one-shot CLI: each run/check-citations invocation processes once and exits.",
      "evidence": "Inspected README.md, src and docs for cron, scheduling, loops, webhooks, --once and --now; none exist. channelrecap is a one-shot CLI: each run/check-citations invocation processes once and exits.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "Demo run builds a library from the three invented episodes",
      "source": "The three invented coffee episodes use local captions:",
      "input": "examples/demo/videos.csv",
      "expected": "three videos done and prepared",
      "command": "<guest-path> run --manifest examples/demo/videos.csv --out claim-run-library-checker-cf1b2350704f450d88b87101b3d55632",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: done=3 cached=0 failed=0 prepared=3",
      "evidence": "done=3 cached=0 failed=0 prepared=3 out=claim-run-library-checker-cf1b2350704f450d88b87101b3d55632\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "Example analysis has ten checked citations",
      "source": "is handwritten and has ten checked citations.",
      "input": "examples/demo/analysis-example.md against the default channelrecap-library built by run",
      "expected": "all ten citations ok",
      "command": "<guest-path> check-citations examples/demo/analysis-example.md",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: citations ok=10",
      "evidence": "citations ok=10 wrong-time=0 not-found=0 too-short=0 unknown-video=0 malformed=0\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "Repository unit tests pass",
      "source": "README.md Tests section",
      "input": "python -m unittest discover -s tests -q",
      "command": "<guest-path> -m unittest discover -s tests -q",
      "evidence": "s; transcript retained.\nReminder: channelrecap is for your own videos. See the README section \"For your own videos\".\ntoo few words detected (fewer than 20) in a-sample-talk-31b74ff4: excluded from rates and trends; transcript retained.\ntoo few words detected (fewer than 20) in a-sample-talk-2e0e5983: excluded from rates and trends; transcript retained.\ndone=3 cached=0 failed=0 prepared=3 out=<guest-path>\nwarning: unknown columns ignored: series, speaker\n----------------------------------------------------------------------\nRan 151 tests in 27.139s\n\nOK (skipped=3)",
      "deferred": false,
      "expected": "exit 0",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Sources compile",
      "source": "README.md Tests section",
      "input": "python -m compileall -q src tests scripts",
      "command": "<guest-path> -m compileall -q src tests scripts",
      "evidence": "",
      "deferred": false,
      "expected": "exit 0",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully with no output"
    },
    {
      "kind": "example",
      "claim": "Ruff lint passes",
      "source": "README.md Tests section",
      "input": "ruff check src scripts tests",
      "command": "<guest-path> check src scripts tests",
      "evidence": "All checks passed!",
      "deferred": false,
      "expected": "All checks passed!",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Mypy type check passes",
      "source": "README.md Tests section",
      "input": "mypy --ignore-missing-imports src",
      "command": "<guest-path> --ignore-missing-imports src",
      "evidence": "Success: no issues found in 18 source files",
      "deferred": false,
      "expected": "no issues",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "last_commit_at": "2026-10-15T17:34:20Z",
    "commits_90d": 4,
    "merged_prs_90d": 2,
    "open_issues": 0,
    "open_prs": 0,
    "reply_share": null,
    "reply_threads": 0,
    "median_reply_hours": null,
    "last_release_at": null,
    "archived": false,
    "verdict": "maintained",
    "note": "actively maintained: last commit 7 days ago; 4 commits and 2 merged PRs in 90 days; 0 open issues, 0 open PRs; no releases"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 7 days ago; 4 commits and 2 merged PRs in 90 days; 0 open issues, 0 open PRs; no releases",
  "maintained": "active",
  "maintained_note": "last commit 7 days ago",
  "last_commit_at": "2026-10-15T17:43:39Z",
  "last_release_at": null,
  "open_issues": null,
  "answered_issues": null,
  "platforms_claimed": [
    "linux",
    "mac",
    "windows"
  ],
  "topic": "agent-harness",
  "agent_interfaces": [
    {
      "interface": "cli",
      "evidence": "independent checker",
      "observed": true,
      "operation_checked": true
    }
  ],
  "agent_interfaces_note": "README metadata is a discovery hint, not pinned documentation proof. Observed interfaces were exercised in this run. An empty list means unknown.",
  "mcp_context": null,
  "tested_at": "2026-10-23T03:18:45.659003+00:00",
  "tested_commit": "195952ed2df6fd43931291c3b6f09611e35e34eb",
  "tested_with": {
    "agent": "claude-code",
    "agent_version": "2.1.300 (Claude Code)",
    "model": "claude-haiku-5-5",
    "model_route": "claude-haiku-5-5",
    "reasoning": "low",
    "os": "linux",
    "backend": "hyperv",
    "transport": "mcp-assigned-vm"
  },
  "setup_identity": {
    "repo": "TayHCode/channelrecap",
    "source": "https://github.com/TayHCode/channelrecap",
    "commit": "195952ed2df6fd43931291c3b6f09611e35e34eb",
    "source_revision": null,
    "os": "linux",
    "architecture": null,
    "backend": "hyperv",
    "model": "claude-haiku-5-5",
    "model_version": "claude-haiku-5-5",
    "agent_execution": "native_agent",
    "agent_runtime": "claude-code",
    "agent_runtime_version": "2.1.300 (Claude Code)",
    "tool_transport": "mcp-assigned-vm",
    "runtime": null,
    "runtime_version": null,
    "runtime_revision": null,
    "sandbox_source": null,
    "guest_setup": null,
    "source_pin": {
      "commit": "195952ed2df6fd43931291c3b6f09611e35e34eb",
      "url": "https://github.com/TayHCode/channelrecap"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": "Build the README demo library from the three invented coffee episodes with `channelrecap run`, then verify the example analysis citations with `channelrecap check-citations`.",
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "repo",
    "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
    "evidence_version": null
  },
  "other_model": null,
  "other_run_id": null,
  "models_agree": null,
  "furthest_model": null,
  "transcript_url": null,
  "report_url": null
}
