{
  "run_id": "DietrichGebert--ponytail-claude-haiku-5-5-1792773245500501617",
  "date": "2026-10-23T16:40:42.445803+00:00",
  "repo": "DietrichGebert/ponytail",
  "kind": "repo",
  "source": "https://github.com/DietrichGebert/ponytail",
  "commit": "09c434ab73ca43761c5d8b0c5d341926c2fba710",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 365.71036066301167,
  "total_s": 396.94524002075195,
  "steps": [
    "cd <guest-path> && pwd && ls -la && id -u && python3 --version && cat README.md 2>/dev/null | head -200",
    "ls -la <guest-path> /inputs 2>/dev/null; ls <guest-path> 2>/dev/null",
    "cd <guest-path> && cat package.json && echo ---- && cat plugin.yaml plugin.json && echo ---- && ls scripts tests examples hooks docs && echo ---- && head -80 INSTALL.md && echo ---- && cat after-install.md && node -v; npm -v; which uv; sudo -n true && echo SUDO_OK",
    "cd <guest-path> && cat /etc/os-release | head -3; grep -rn -i \"node\" README.md INSTALL.md | grep -i -E \"version|>=|[0-9]+\\.[0-9]+|install\" | head -20; grep -rn \"engines\" package.json pi-extension/package.json 2>/dev/null; echo ----; head -30 hooks/ponytail-activate.js; echo ----; cat .github/workflows/*.yml 2>/dev/null | head -60; echo ----; cat AGENTS.md | head -30",
    "(sudo apt-get update -y >/tmp/apt-update.log 2>&1; echo apt-update rc=$?; sudo apt-get install -y ca-certificates curl gnupg >/tmp/apt-base.log 2>&1; echo base rc=$?; sudo mkdir -p /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg; echo key rc=$?; echo \"deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main\" | sudo tee /etc/apt/sources.list.d/nodesource.list >/dev/null; sudo apt-get update -y >/tmp/apt-ns.log 2>&1; echo ns-update rc=$?; sudo apt-get install -y nodejs >/tmp/apt-node.log 2>&1; echo node-install rc=$?; tail -5 /tmp/apt-node.log) 2>&1; node -v; npm -v",
    "cd <guest-path> && ls -la .coldpass && cat .coldpass/* 2>/dev/null | head -50; echo ----; tar -tzf <guest-path> | head -5; ls <guest-path> 2>&1 | head -2",
    "cd <guest-path> && git init -q && git remote add origin https://github.com/DietrichGebert/ponytail && git fetch --depth 1 origin 09c434ab73ca43761c5d8b0c5d341926c2fba710 2>&1 | tail -3; git reset --mixed FETCH_HEAD 2>&1 | tail -2; git log --oneline -1; git status --short | head -5; echo ----; sed -n 30,200p hooks/ponytail-activate.js | head -120",
    "cd <guest-path> && node scripts/check-rule-copies.js; echo \"rule-copies rc=$?\"; node --test tests/*.test.js > /tmp/node-test.log 2>&1; echo \"node-test rc=$?\"; grep -E \"^# (tests|pass|fail)\" /tmp/node-test.log; echo ----; cat hooks/claude-codex-hooks.json | head -40; echo ----; ls pi-extension; cat pi-extension/package.json | head -30",
    "cd <guest-path> && grep -n -B3 -A25 \"^not ok\" /tmp/node-test.log | head -80",
    "cd <guest-path> && python3 -m venv /tmp/venv-ponytail 2>&1 | tail -2; /tmp/venv-ponytail/bin/pip install -q pandas 2>&1 | tail -3; echo \"pip rc=$?\"; PATH=/tmp/venv-ponytail/bin:$PATH node --test tests/*.test.js > /tmp/node-test2.log 2>&1; echo \"node-test rc=$?\"; grep -E \"^# (tests|pass|fail)\" /tmp/node-test2.log",
    "cd <guest-path> && rm -rf /tmp/venv-ponytail && sudo apt-get install -y python3.12-venv >/tmp/apt-venv.log 2>&1; echo \"apt rc=$?\"; python3 -m venv /tmp/venv-ponytail && /tmp/venv-ponytail/bin/pip install -q pandas; echo \"pip rc=$?\"; PATH=/tmp/venv-ponytail/bin:$PATH node --test tests/*.test.js > /tmp/node-test2.log 2>&1; echo \"node-test rc=$?\"; grep -E \"^# (tests|pass|fail)\" /tmp/node-test2.log",
    "cd <guest-path> && export CLAUDE_CONFIG_DIR=/tmp/ponytail-claude-cfg; mkdir -p $CLAUDE_CONFIG_DIR; node hooks/ponytail-activate.js </dev/null > /tmp/act.out 2>/tmp/act.err; echo rc=$?; wc -c /tmp/act.out; head -c 1200 /tmp/act.out; echo; echo ---ERR; head -5 /tmp/act.err; echo ---; cat $CLAUDE_CONFIG_DIR/.ponytail-active 2>/dev/null; echo; grep -n \"PONYTAIL_DEFAULT_MODE\\|getDefaultMode\" hooks/ponytail-config.js | head",
    "cd <guest-path> && export CLAUDE_CONFIG_DIR=/tmp/ponytail-claude-cfg; PONYTAIL_DEFAULT_MODE=ultra node hooks/ponytail-activate.js </dev/null | head -1; echo; grep -rn -E \"setInterval|cron|--once|--now|setTimeout\\(.*loop\" hooks scripts pi-extension/index.js 2>/dev/null | head; echo ---; grep -n \"An optional \\`~/.config/ponytail/config.json\\` or \\`PONYTAIL_DEFAULT_MODE\\` env var can set the default level, but nothing is required.\" README.md; grep -n \"Startup and mode-change text shows the current mode.\" README.md",
    "cd <guest-path> && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'\n{\"kind\":\"cli\",\"argv\":[\"node\",\"hooks/ponytail-activate.js\"],\"cwd\":\"<guest-path>\",\"env\":{\"CLAUDE_CONFIG_DIR\":\"/tmp/ponytail-claude-cfg\"},\"expected_text\":\"PONYTAIL MODE ACTIVE\"}\nEOF\ncat > .coldpass/claims.json <<'EOF'\n[\n{\"kind\":\"claim\",\"claim\":\"PONYTAIL_DEFAULT_MODE sets the default level\",\"source\":\"An optional `~/.config/ponytail/config.json` or `PONYTAIL_DEFAULT_MODE` env var can set the default level, but nothing is required.\",\"input\":\"PONYTAIL_DEFAULT_MODE=ultra\",\"expected\":\"activation text reports level ultra\",\"probe_kind\":\"cli\",\"argv\":[\"node\",\"hooks/ponytail-activate.js\"],\"env\":{\"CLAUDE_CONFIG_DIR\":\"/tmp/ponytail-claude-cfg\",\"PONYTAIL_DEFAULT_MODE\":\"ultra\"},\"expected_text\":\"level: ultra\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"Startup text shows the current mode\",\"source\":\"Startup and mode-change text shows the current mode.\",\"input\":\"no PONYTAIL_DEFAULT_MODE set\",\"expected\":\"activation text reports level full (the default)\",\"probe_kind\":\"cli\",\"argv\":[\"node\",\"hooks/ponytail-activate.js\"],\"env\":{\"CLAUDE_CONFIG_DIR\":\"/tmp/ponytail-claude-cfg\"},\"expected_text\":\"level: full\",\"cwd\":\"<guest-path>\"}\n]\nEOF\ncat > .coldpass/examples.json <<'EOF'\n[\n{\"kind\":\"example\",\"claim\":\"CI rule-copy check passes\",\"source\":\".github/workflows/test.yml\",\"input\":\"repo at pinned commit\",\"expected\":\"Rule copies match AGENTS.md; 10 rule invariants present\",\"argv\":[\"node\",\"scripts/check-rule-copies.js\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"Rule copies match AGENTS.md\"},\n{\"kind\":\"example\",\"claim\":\"Examples are illustrative outputs, not runnable programs\",\"source\":\"examples/README.md\",\"reason\":\"examples/ holds markdown before/after code samples with no runnable entrypoint; the runnable offline checks are the node test suite (CI runs node --test; 144/144 passed with pandas installed in /tmp/venv-ponytail) and the rule-copy check above\"}\n]\nEOF\ncat > .coldpass/cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"Entry points inspected: hooks/*.js run only when the host fires lifecycle events (SessionStart, SubagentStart, UserPromptSubmit per hooks/claude-codex-hooks.json); scripts/ and pi-extension contain no setInterval, cron, --once, or --now. No product scheduler or loop exists, so no cycle was triggered.\",\"checks\":[]}\nEOF\nfor f in probe claims examples cycles; do python3 -m json.tool .coldpass/$f.json >/dev/null && echo \"$f ok\"; done; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay; echo \"checker rc=$?\"",
    "grep -n \"env\" <guest-path> | head -40",
    "sed -n 600,625p <guest-path>; echo ....; sed -n 800,812p <guest-path>; echo ....; sed -n 1110,1120p <guest-path>",
    "cd <guest-path> && cat > .coldpass/claims.json <<'EOF'\n[\n{\"kind\":\"claim\",\"claim\":\"PONYTAIL_DEFAULT_MODE sets the default level\",\"source\":\"An optional `~/.config/ponytail/config.json` or `PONYTAIL_DEFAULT_MODE` env var can set the default level, but nothing is required.\",\"input\":\"PONYTAIL_DEFAULT_MODE=ultra\",\"expected\":\"activation text reports level ultra\",\"probe_kind\":\"cli\",\"argv\":[\"env\",\"PONYTAIL_DEFAULT_MODE=ultra\",\"CLAUDE_CONFIG_DIR=/tmp/ponytail-claude-cfg\",\"node\",\"hooks/ponytail-activate.js\"],\"expected_text\":\"level: ultra\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"Startup text shows the current mode\",\"source\":\"Startup and mode-change text shows the current mode.\",\"input\":\"no PONYTAIL_DEFAULT_MODE set\",\"expected\":\"activation text reports level full (the default)\",\"probe_kind\":\"cli\",\"argv\":[\"env\",\"-u\",\"PONYTAIL_DEFAULT_MODE\",\"CLAUDE_CONFIG_DIR=/tmp/ponytail-claude-cfg\",\"node\",\"hooks/ponytail-activate.js\"],\"expected_text\":\"level: full\",\"cwd\":\"<guest-path>\"}\n]\nEOF\npython3 -m json.tool .coldpass/claims.json >/dev/null && echo ok; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay | python3 -c 'import json,sys; d=json.load(sys.stdin); print(\"valid:\",d.get(\"valid\")); print(\"problems:\",d.get(\"problems\")); print({k:(v.get(\"status\") if isinstance(v,dict) else v) for k,v in d.get(\"replay\",{}).items()})' ; echo \"rc=${PIPESTATUS[0]}\"",
    "cd <guest-path> && mkdir -p .coldpass && cat > .coldpass/report.json <<'EOF'\n{\"outcome\":\"working\",\"fault_owner\":null,\"operation\":\"Run the Ponytail SessionStart activation hook (hooks/ponytail-activate.js) and read back the activated level from its output, including the PONYTAIL_DEFAULT_MODE override.\",\"operation_scope\":\"Node.js 22 on Ubuntu 24.04 guest. Covers the local hook that the Claude Code/Codex/Cursor plugins run at session start. Does not exercise the slash-command skills (/ponytail-review, /ponytail-audit), which are LLM prompts and cannot be run offline, nor the Claude Code plugin install, which needs the host app.\",\"steps\":[\"git init; git remote add origin https://github.com/DietrichGebert/ponytail; git fetch --depth 1 origin 09c434ab73ca43761c5d8b0c5d341926c2fba710; git reset --mixed FETCH_HEAD\",\"Install Node 22 via NodeSource apt repo (CI uses node-version 22): sudo apt-get install -y nodejs (node v22.23.4, npm 10.9.9)\",\"python3 -m venv /tmp/venv-ponytail (after sudo apt-get install python3.12-venv); /tmp/venv-ponytail/bin/pip install pandas (CI step 'pip install pandas')\",\"node scripts/check-rule-copies.js (CI 'Check rule copies')\",\"PATH=/tmp/venv-ponytail/bin:$PATH node --test tests/*.test.js (144/144 pass)\",\"CLAUDE_CONFIG_DIR=/tmp/ponytail-claude-cfg node hooks/ponytail-activate.js (prints 'PONYTAIL MODE ACTIVE \u2014 level: full' and writes the mode flag)\",\"PONYTAIL_DEFAULT_MODE=ultra CLAUDE_CONFIG_DIR=/tmp/ponytail-claude-cfg node hooks/ponytail-activate.js (prints 'level: ultra')\"],\"deviations\":[\"Guest had no node or npm; installed Node 22 from the NodeSource apt repo (CI version) instead of the distro Node 18.\",\"First run of the offline suite had 1 failure (correctness: csv pandas one-liner) because pandas was missing; fixed by installing pandas into /tmp/venv-ponytail (python3.12-venv installed via apt first, since system pip is externally managed). Rerun: 144/144 pass.\",\"The README has no runnable install command: the documented installs are Claude Code/Codex '/plugin' slash commands and host-app steps, which cannot run in this guest. Substituted the product's own SessionStart hook entrypoint, invoked as 'node hooks/ponytail-activate.js' rather than the 'node -e require(...)' form in hooks/claude-codex-hooks.json (same file, same function).\",\"Claim checks set the variable with the coreutils 'env' wrapper in argv, because the checker's claim replay does not apply a claim's 'env' field (probe and example replay do).\",\"Hook writes its mode flag to CLAUDE_CONFIG_DIR=/tmp/ponytail-claude-cfg, a scratch directory outside the workspace.\",\"No telemetry or consent prompts were encountered. No servers were started, so none needed stopping.\"],\"stuck_step\":null,\"main_blocker\":null,\"plain_failure\":null,\"suggested_fix\":\"None required for this operation. Optional: document the Node.js 22 requirement (and that the hooks need node on PATH) next to the install steps in README.md, and note that the offline suite needs pandas for the correctness tests.\"}\nEOF\npython3 -m json.tool .coldpass/report.json >/dev/null && echo report-ok; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay | python3 -c 'import json,sys; d=json.load(sys.stdin); print(\"valid:\",d.get(\"valid\"), \"problems:\",d.get(\"problems\")); print(\"probe:\", d.get(\"replay\",{}).get(\"status\"), d.get(\"replay\",{}).get(\"details\",{}).get(\"working\") if d.get(\"replay\",{}).get(\"details\") else \"\")'; echo \"rc=${PIPESTATUS[0]}\"; ls -la .coldpass"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Run the Ponytail SessionStart activation hook (hooks/ponytail-activate.js) and read back the activated level from its output, including the PONYTAIL_DEFAULT_MODE override.",
  "suggested_fix": null,
  "tokens_in": 520067,
  "tokens_out": 14819,
  "cost_usd": 0.021574009999999998,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "node",
          "hooks/ponytail-activate.js"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "PONYTAIL MODE ACTIVE \u2014 level: full\n\n# Ponytail\n\nYou are a lazy senior developer. The best code is the code never written. You solve the whole problem with the least new code. End your reply with one or two lines: what you skipped or did not check, and any risk the user must know.\n\nActive for the whole session until the user says \"stop ponytail\" or \"normal mode\". Switch level: `/ponytail lite|full|ultra`.\n\n## Before you write\n\nRead the task and the code it touches. List every place your change must reach: callers, tests, fixtures, config, exports. Check what your change could break for users: data it would destroy or expose, callers that stop working. That is scope. Extra features are not.\n\n[excerpt truncated]",
        "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=DietrichGebert--ponytail-claude-haiku-5-5-1792773245500501617",
    "evidence_file": "/data/safety/DietrichGebert--ponytail-claude-haiku-5-5-1792773245500501617.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": 18,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "09c434ab73ca43761c5d8b0c5d341926c2fba710",
    "url": "https://github.com/DietrichGebert/ponytail"
  },
  "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": 18,
  "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/DietrichGebert/ponytail",
  "cost_to_try": "free",
  "hardware": null,
  "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": "Entry points inspected: hooks/*.js run only when the host fires lifecycle events (SessionStart, SubagentStart, UserPromptSubmit per hooks/claude-codex-hooks.json); scripts/ and pi-extension contain no setInterval, cron, --once, or --now. No product scheduler or loop exists, so no cycle was triggered.",
      "evidence": "Entry points inspected: hooks/*.js run only when the host fires lifecycle events (SessionStart, SubagentStart, UserPromptSubmit per hooks/claude-codex-hooks.json); scripts/ and pi-extension contain no setInterval, cron, --once, or --now. No product scheduler or loop exists, so no cycle was triggered.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "PONYTAIL_DEFAULT_MODE sets the default level",
      "source": "An optional `~/.config/ponytail/config.json` or `PONYTAIL_DEFAULT_MODE` env var can set the default level, but nothing is required.",
      "input": "PONYTAIL_DEFAULT_MODE=ultra",
      "expected": "activation text reports level ultra",
      "command": "env PONYTAIL_DEFAULT_MODE=ultra CLAUDE_CONFIG_DIR=/tmp/ponytail-claude-cfg node hooks/ponytail-activate.js",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: level: ultra",
      "evidence": "level: ultra\n\n# Ponytail\n\nYou are a lazy senior developer. The best code is the code never written. You solve the whole problem with the least new code. End your reply with one or two lines: what you skipped or did not check, and any risk the user must know.\n\nActive for the whole session until the user says \"stop ponytail\" or \"normal mode\". Switch level: `/ponytail lite|full|ultra`.\n\n## Before you write\n\nRead the task and the code it touches. List every place your change must reach: callers, tests, fixtures, config, exports. Check what your change could break for users: data it would destroy o",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "Startup text shows the current mode",
      "source": "Startup and mode-change text shows the current mode.",
      "input": "no PONYTAIL_DEFAULT_MODE set",
      "expected": "activation text reports level full (the default)",
      "command": "env -u PONYTAIL_DEFAULT_MODE CLAUDE_CONFIG_DIR=/tmp/ponytail-claude-cfg node hooks/ponytail-activate.js",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: level: full",
      "evidence": "level: full\n\n# Ponytail\n\nYou are a lazy senior developer. The best code is the code never written. You solve the whole problem with the least new code. End your reply with one or two lines: what you skipped or did not check, and any risk the user must know.\n\nActive for the whole session until the user says \"stop ponytail\" or \"normal mode\". Switch level: `/ponytail lite|full|ultra`.\n\n## Before you write\n\nRead the task and the code it touches. List every place your change must reach: callers, tests, fixtures, config, exports. Check what your change could break for users: data it would destroy or",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "CI rule-copy check passes",
      "source": ".github/workflows/test.yml",
      "input": "repo at pinned commit",
      "command": "node scripts/check-rule-copies.js",
      "evidence": "Rule copies match AGENTS.md; 10 rule invariants present in SKILL.md and AGENTS.md.",
      "deferred": false,
      "expected": "Rule copies match AGENTS.md; 10 rule invariants present",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Examples are illustrative outputs, not runnable programs",
      "source": "examples/README.md",
      "input": "",
      "command": "",
      "evidence": "examples/ holds markdown before/after code samples with no runnable entrypoint; the runnable offline checks are the node test suite (CI runs node --test; 144/144 passed with pandas installed in /tmp/venv-ponytail) and the rule-copy check above",
      "deferred": false,
      "expected": "documented command completes successfully",
      "verdict": "blocked",
      "outcome": "examples/ holds markdown before/after code samples with no runnable entrypoint; the runnable offline checks are the node test suite (CI runs node --test; 144/144 passed with pandas installed in /tmp/venv-ponytail) and the rule-copy check above"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "last_commit_at": "2026-10-18T01:55:14Z",
    "commits_90d": 157,
    "merged_prs_90d": 149,
    "open_issues": 42,
    "open_prs": 57,
    "reply_share": null,
    "reply_threads": 0,
    "median_reply_hours": null,
    "last_release_at": "2026-10-16T23:15:15Z",
    "archived": false,
    "verdict": "maintained",
    "note": "actively maintained: last commit 5 days ago; 157 commits and 149 merged PRs in 90 days; 42 open issues, 57 open PRs; latest release 2026-10-16"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 5 days ago; 157 commits and 149 merged PRs in 90 days; 42 open issues, 57 open PRs; latest release 2026-10-16",
  "maintained": "active",
  "maintained_note": "last commit 5 days ago; 10 open issues, 3 answered or closed",
  "last_commit_at": "2026-10-18T01:55:14Z",
  "last_release_at": "2026-10-16T23:15:15Z",
  "open_issues": 10,
  "answered_issues": 3,
  "platforms_claimed": [
    "linux"
  ],
  "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-23T16:40:42.445803+00:00",
  "tested_commit": "09c434ab73ca43761c5d8b0c5d341926c2fba710",
  "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": "DietrichGebert/ponytail",
    "source": "https://github.com/DietrichGebert/ponytail",
    "commit": "09c434ab73ca43761c5d8b0c5d341926c2fba710",
    "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": "09c434ab73ca43761c5d8b0c5d341926c2fba710",
      "url": "https://github.com/DietrichGebert/ponytail"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": "Run the Ponytail SessionStart activation hook (hooks/ponytail-activate.js) and read back the activated level from its output, including the PONYTAIL_DEFAULT_MODE override.",
    "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": "/reports/DietrichGebert--ponytail-claude-haiku-5-5-1792773245500501617.json"
}
