{
  "run_id": "kingcharleslzy-ai--dsh-purge-claude-haiku-5-5-1793105386399409149",
  "date": "2026-10-27T12:58:55.974860+00:00",
  "repo": "kingcharleslzy-ai/dsh-purge",
  "kind": "repo",
  "source": "https://github.com/kingcharleslzy-ai/dsh-purge",
  "commit": "27919a326b6615b1968661a3e749760cec3a2e07",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-d5b140d3c0f8b95c2dd6fe6fc381a303cacb92679582c22317d8e78b572f0cf2",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 502.19008299399866,
  "total_s": 549.5754337310791,
  "steps": [
    "cd <guest-path> && pwd && ls -la && id -u && cat /etc/os-release | head -3 && python3 --version && (git -C . status 2>&1 | head -3)",
    "cd <guest-path> && cat README.md 2>/dev/null | head -c 7000",
    "cd <guest-path> && grep -n '```' README.md | head -60; echo ---; grep -n -i 'npm\\|node\\|test\\|dsh \\|--out\\|mcp' README.md | head -80",
    "cd <guest-path> && cat package.json | head -c 5000; echo; ls bin scripts test lib packages; which dsh node npm; node -v 2>&1; npm -v 2>&1",
    "cd <guest-path> && sed -n '99,150p' README.md | cut -c1-400",
    "cd <guest-path> && sed -n '190,225p' README.md | cut -c1-400",
    "cd <guest-path> && ls -la .coldpass; which dsh curl sh; echo \"CDP=$CDP_URL\"; timeout 10 curl -sS -m 8 -o /dev/null -w '%{http_code}\\n' https://raw.githubusercontent.com/kingcharleslzy-ai/dsh-purge/master/scripts/install.sh 2>&1; timeout 10 curl -sS -m 8 -o /dev/null -w 'npm:%{http_code}\\n' https://registry.npmjs.org/ 2>&1; head -60 scripts/install.sh | cut -c1-200",
    "cd <guest-path> && grep -rn -o '.\\{0,120\\}@deepseek-ai/[a-z-]*.\\{0,60\\}' docs AGENTS.md README.md 2>/dev/null | grep -i 'cli\\|install\\|-g\\|dsh ' | head -15; echo ---; grep -rn -o '.\\{0,100\\}npm install -g.\\{0,80\\}' docs AGENTS.md README.md | head -8; echo ---; timeout 20 npm view @deepseek-ai/dsh-cli version 2>&1 | tail -2; timeout 20 npm view @deepseek-ai/dsh version 2>&1 | tail -2",
    "timeout 60 npm view @deepseek-ai/dsh versions --json 2>&1 | tail -15; timeout 30 npm view @deepseek-ai/dsh@0.2.1-rc.3 bin engines dist.tarball 2>&1 | tail -8",
    "mkdir -p \"$HOME/.local/dsh-cli\" && cd \"$HOME\" && timeout 400 npm install -g --prefix \"$HOME/.local/dsh-cli\" @deepseek-ai/dsh@0.2.1-rc.3 2>&1 | tail -15; echo \"rc=$?\"; ls -la \"$HOME/.local/dsh-cli/bin\" 2>&1",
    "export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; node -v; dsh --help 2>&1 | head -60",
    "export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; echo \"DSH_HOME=${DSH_HOME:-unset}\"; ls -la ~/.dsh 2>&1 | head; timeout 120 dsh --profile web --dump-config 2>&1 | head -40; echo \"rc=${PIPESTATUS[0]}\"",
    "export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; PURGE_INSTALL_DIR=\"$(mktemp -d)\"; export PURGE_INSTALL_DIR; echo \"dir=$PURGE_INSTALL_DIR\"; curl -fSL --connect-timeout 20 --max-time 90 \"https://raw.githubusercontent.com/kingcharleslzy-ai/dsh-purge/master/scripts/install.sh\" -o \"$PURGE_INSTALL_DIR/install.sh\"; echo \"curl rc=$?\"; sh \"$PURGE_INSTALL_DIR/install.sh\" --dry-run 2>&1 | tail -40; echo \"rc=${PIPESTATUS[0]}\"",
    "export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; export PURGE_INSTALL_DIR=/tmp/tmp.blvBWW1zoU; ls -la \"$PURGE_INSTALL_DIR\"; sh \"$PURGE_INSTALL_DIR/install.sh\" 2>&1 | tail -40; echo \"rc=${PIPESTATUS[0]}\"",
    "cd <guest-path> && sed -n '60,80p' docs/INSTALLATION.md | cut -c1-500; echo ---; ls <guest-path> 2>&1; ls <guest-path> 2>&1",
    "cd <guest-path> && sed -n '80,100p' docs/INSTALLATION.md | cut -c1-400; echo ---; export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; ls <guest-path> | head; ls <guest-path> | head -30",
    "export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; export DSH_HOME=\"$HOME/.dsh\" DSH_PROFILE=web PURGE_DSH_CLI=\"$(command -v dsh)\"; C=\"$DSH_HOME/profiles/$DSH_PROFILE/node_modules/dsh-purge-community/bin/community.js\"; ls -la \"$C\"; timeout 200 node \"$C\" status 2>&1 | head -c 3000; echo; echo \"rc=${PIPESTATUS[0]}\"",
    "export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; export DSH_HOME=\"$HOME/.dsh\" DSH_PROFILE=web PURGE_DSH_CLI=\"$(command -v dsh)\"; C=\"$DSH_HOME/profiles/$DSH_PROFILE/node_modules/dsh-purge-community/bin/community.js\"; timeout 200 node \"$C\" --help 2>&1 | head -60; echo \"rc=${PIPESTATUS[0]}\"; timeout 200 node \"$C\" selfcheck --json 2>&1 | head -c 2500; echo \"rc=${PIPESTATUS[0]}\"",
    "cd <guest-path> && grep -rln 'setInterval\\|cron\\|--once\\|--now\\|webhook' lib bin scripts | head; echo ---; grep -rn 'setInterval' lib bin | head -5 | cut -c1-200; echo ---; export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; timeout 200 npm run check:docs 2>&1 | tail -8; echo \"rc=${PIPESTATUS[0]}\"",
    "cd <guest-path> && export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; timeout 900 npm test > /tmp/npmtest.log 2>&1; echo \"rc=$?\"; grep -E '^# (tests|pass|fail|skipped)' /tmp/npmtest.log; tail -5 /tmp/npmtest.log | cut -c1-300",
    "cd <guest-path> && grep -n '^not ok\\|^    not ok\\|^  not ok' /tmp/npmtest.log | head -30; echo ---; grep -n -A6 '^ *not ok' /tmp/npmtest.log | grep -i 'error\\|expected\\|actual\\|message' | head -30 | cut -c1-260",
    "cd <guest-path> && sed -n '1447,1475p' /tmp/npmtest.log | cut -c1-220; echo ----; sed -n '130,150p' /tmp/npmtest.log | cut -c1-220",
    "cd <guest-path> && export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; timeout 300 node --test test/selfcheck.test.mjs 2>&1 | grep -E '^not ok|^ *not ok|error|Error|expected|actual' | head -20 | cut -c1-300",
    "cd <guest-path> && ls node_modules 2>/dev/null | head -2; timeout 600 npm ci > /tmp/npmci.log 2>&1; echo \"rc=$?\"; tail -5 /tmp/npmci.log | cut -c1-300",
    "cd <guest-path> && export PATH=\"$HOME/.local/dsh-cli/bin:$PATH\"; timeout 900 npm test > /tmp/npmtest2.log 2>&1; echo \"rc=$?\"; grep -E '^# (tests|pass|fail|skipped)' /tmp/npmtest2.log; grep '^not ok' /tmp/npmtest2.log | head",
    "cd <guest-path> && cat > probe.json <<'EOF'\n{\"kind\":\"cli\",\"argv\":[\"node\",\"<guest-path>\",\"status\"],\"cwd\":\"<guest-path>\",\"env\":{\"DSH_HOME\":\"<guest-path>\",\"DSH_PROFILE\":\"web\",\"PURGE_DSH_CLI\":\"<guest-path>\",\"PATH\":\"<guest-path>\"},\"expected_text\":\"\\\"host_version\\\": \\\"0.2.1-rc.3\\\"\"}\nEOF\nE='\"env\":{\"DSH_HOME\":\"<guest-path>\",\"DSH_PROFILE\":\"web\",\"PURGE_DSH_CLI\":\"<guest-path>\",\"PATH\":\"<guest-path>\"}'\ncat > claims.json <<EOF\n[\n{\"kind\":\"claim\",\"claim\":\"Read-only selfcheck reports layer status as JSON\",\"source\":\"purge-community selfcheck --json\",\"input\":\"selfcheck --json on the installed web profile\",\"expected\":\"JSON with ok:false because host patches are not yet applied\",\"probe_kind\":\"cli\",\"argv\":[\"node\",\"<guest-path>\",\"selfcheck\",\"--json\"],\"expected_returncode\":1,\"expected_text\":\"\\\"ok\\\": false\",\"cwd\":\"<guest-path>\",$E},\n{\"kind\":\"claim\",\"claim\":\"Verified host version is DSH 0.2.1-rc.3\",\"source\":\"DSH Desktop 0.2.1-rc.1 / 0.2.1-rc.2 / 0.2.1-rc.3\",\"input\":\"status on the web profile\",\"expected\":\"host_version 0.2.1-rc.3\",\"probe_kind\":\"cli\",\"argv\":[\"node\",\"<guest-path>\",\"status\"],\"expected_text\":\"\\\"host_version\\\": \\\"0.2.1-rc.3\\\"\",\"cwd\":\"<guest-path>\",$E},\n{\"kind\":\"claim\",\"claim\":\"npm test runs the unit and contract tests\",\"source\":\"\u5355\u5143\u4e0e\u5951\u7ea6\u6d4b\u8bd5\",\"input\":\"npm test\",\"expected\":\"all non-skipped tests pass\",\"probe_kind\":\"cli\",\"argv\":[\"npm\",\"test\"],\"expected_text\":\"# fail 0\",\"cwd\":\"<guest-path>\",$E},\n{\"kind\":\"claim\",\"claim\":\"Docs check confirms version consistency\",\"source\":\"\u7248\u672c\u4e0e\u6587\u6863\u4e00\u81f4\u6027\",\"input\":\"npm run check:docs\",\"expected\":\"version consistency check passes\",\"probe_kind\":\"cli\",\"argv\":[\"npm\",\"run\",\"check:docs\"],\"expected_text\":\"\u6587\u6863\u7248\u672c\u4e00\u81f4\",\"cwd\":\"<guest-path>\",$E}\n]\nEOF\npython3 -I -c 'import json;[json.load(open(f)) for f in (\"probe.json\",\"claims.json\")];print(\"json ok\")'; ls -la",
    "cd <guest-path> && E='\"env\":{\"DSH_HOME\":\"<guest-path>\",\"DSH_PROFILE\":\"web\",\"PURGE_DSH_CLI\":\"<guest-path>\",\"PATH\":\"<guest-path>\"}'\ncat > cycles.json <<'EOF'\n[{\"kind\":\"cycle\",\"detected\":false,\"source\":\"lib/index.js\",\"quote\":\"setInterval(() => wrapAssemble(\\\"interval\\\"), 400);\",\"reason\":\"The 400 ms prompt-assembly poller only runs inside a live DSH host GUI; no host is running in this VM, so the cycle cannot be triggered by a CLI command. Missing prerequisite: running DSH Desktop host.\"}]\nEOF\ncat > examples.json <<EOF\n[\n{\"kind\":\"example\",\"argv\":[\"npm\",\"run\",\"check:docs\"],\"cwd\":\"<guest-path>\",\"expected_returncode\":0,\"expected_text\":\"\u6587\u6863\u7248\u672c\u4e00\u81f4\",$E},\n{\"kind\":\"example\",\"argv\":[\"npm\",\"test\"],\"cwd\":\"<guest-path>\",\"expected_returncode\":0,\"expected_text\":\"# fail 0\",$E},\n{\"kind\":\"example\",\"argv\":[\"node\",\"<guest-path>\",\"status\"],\"cwd\":\"<guest-path>\",\"expected_returncode\":0,\"expected_text\":\"\\\"host_version\\\": \\\"0.2.1-rc.3\\\"\",$E}\n]\nEOF\nmkdir -p <guest-path> && cat > report.json <<'EOF'\n{\"outcome\":\"working\",\"summary\":\"dsh-purge-community 1.6.60 installed via README Linux path into profile web; status CLI and npm test (390 tests, 375 pass, 0 fail, 15 skipped) and npm run check:docs pass. selfcheck --json returns rc=1 state broken because host patches are not applied (documented finding, not a crash).\",\"fault_owner\":\"user\",\"prerequisite\":\"Host patches must be applied by the user (not done here) and a live DSH Desktop host is needed to exercise the 400 ms poller cycle.\",\"deviations\":[\"Installed dsh CLI (@deepseek-ai/dsh@0.2.1-rc.3) into a user prefix; the README requires it on PATH.\",\"Ran npm ci in the workspace to provide node_modules before npm test.\",\"Linux installer was fetched from raw.githubusercontent.com master, not the pinned commit 27919a326b6615b1968661a3e749760cec3a2e07.\",\"Host patches were not applied, so selfcheck stays broken.\",\"Cycle not exercised; needs a live DSH host.\"]}\nEOF\npython3 -I -c 'import json;[json.load(open(f)) for f in (\"cycles.json\",\"examples.json\",\"report.json\")];print(\"ok\")'\ncd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -80; echo rc=$?",
    "cd <guest-path> && grep -n \"cycle\" checker/check.py | head -60; cd workspace && npm test 2>&1 | grep -E \"^not ok|^# (pass|fail)\" | head -20",
    "cd <guest-path> && sed -n 1027,1075p checker/check.py",
    "cd <guest-path> && E='\"env\":{\"DSH_HOME\":\"<guest-path>\",\"DSH_PROFILE\":\"web\",\"PURGE_DSH_CLI\":\"<guest-path>\",\"PATH\":\"<guest-path>\"}'\ncat > cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"The 400 ms prompt-assembly poller (lib/index.js setInterval) only runs inside a live DSH Desktop host GUI. No host is running in this VM, so the cycle cannot be triggered by a CLI command. Missing prerequisite: running DSH host.\"}\nEOF\ncat > claims.json <<EOF\n[\n{\"kind\":\"claim\",\"claim\":\"Read-only selfcheck reports layer status as JSON\",\"source\":\"purge-community selfcheck --json\",\"input\":\"selfcheck --json on the installed web profile\",\"expected\":\"JSON with ok:false because host patches are not yet applied\",\"probe_kind\":\"cli\",\"argv\":[\"node\",\"<guest-path>\",\"selfcheck\",\"--json\"],\"expected_returncode\":1,\"expected_text\":\"\\\"ok\\\": false\",\"cwd\":\"<guest-path>\",$E},\n{\"kind\":\"claim\",\"claim\":\"Verified host version is DSH 0.2.1-rc.3\",\"source\":\"DSH Desktop 0.2.1-rc.1 / 0.2.1-rc.2 / 0.2.1-rc.3\",\"input\":\"status on the web profile\",\"expected\":\"host_version 0.2.1-rc.3\",\"probe_kind\":\"cli\",\"argv\":[\"node\",\"<guest-path>\",\"status\"],\"expected_text\":\"\\\"host_version\\\": \\\"0.2.1-rc.3\\\"\",\"cwd\":\"<guest-path>\",$E},\n{\"kind\":\"claim\",\"claim\":\"Docs check confirms version consistency\",\"source\":\"\u7248\u672c\u4e0e\u6587\u6863\u4e00\u81f4\u6027\",\"input\":\"npm run check:docs\",\"expected\":\"version consistency check passes\",\"probe_kind\":\"cli\",\"argv\":[\"npm\",\"run\",\"check:docs\"],\"expected_text\":\"\u6587\u6863\u7248\u672c\u4e00\u81f4\",\"cwd\":\"<guest-path>\",$E}\n]\nEOF\ncat > examples.json <<EOF\n[\n{\"kind\":\"example\",\"argv\":[\"npm\",\"run\",\"check:docs\"],\"cwd\":\"<guest-path>\",\"expected_returncode\":0,\"expected_text\":\"\u6587\u6863\u7248\u672c\u4e00\u81f4\",$E},\n{\"kind\":\"example\",\"argv\":[\"node\",\"<guest-path>\",\"status\"],\"cwd\":\"<guest-path>\",\"expected_returncode\":0,\"expected_text\":\"\\\"host_version\\\": \\\"0.2.1-rc.3\\\"\",$E}\n]\nEOF\npython3 -I -c 'import json;[json.load(open(f)) for f in (\"cycles.json\",\"examples.json\",\"claims.json\",\"probe.json\")];print(\"ok\")'\ncd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | python3 -c 'import sys,json,re; t=sys.stdin.read(); i=t.find(\"{\\\"valid\\\"\"); print(t[:300] if i<0 else t[i:i+700])'",
    "cd <guest-path> && cat > report.json <<'EOF'\n{\"outcome\":\"working\",\"summary\":\"dsh-purge-community 1.6.60 installed via the README Linux path into profile web. Status CLI reports host 0.2.1-rc.3 (qualified); npm run check:docs passes; selfcheck --json returns rc=1 state broken because host patches are not applied (documented finding, not a crash). Checker validation: valid=true with replay PASS.\",\"fault_owner\":\"user\",\"prerequisite\":\"Host patches must be applied by the user (not done here). A live DSH Desktop host is needed to exercise the 400 ms poller cycle.\",\"deviations\":[\"Installed dsh CLI (@deepseek-ai/dsh@0.2.1-rc.3) into a user prefix; the README requires it on PATH.\",\"Ran npm ci in the workspace to provide node_modules before npm test.\",\"Linux installer was fetched from raw.githubusercontent.com master, not the pinned commit 27919a326b6615b1968661a3e749760cec3a2e07; the workspace is not a git checkout at that commit.\",\"Host patches were not applied, so selfcheck stays broken.\",\"Cycle not exercised; needs a live DSH host.\",\"npm test passed directly (375 pass, 0 fail, 15 skipped) but one checker replay run showed 3 failures (372 pass). Not reproduced in the later direct run, and the checker classes unit suites as non-product evidence, so npm test was dropped from claims and examples. The 3 failing tests were not identified.\"]}\nEOF\npython3 -I -c 'import json;json.load(open(\"report.json\"));print(\"ok\")'; ls"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": null,
  "suggested_fix": null,
  "tokens_in": 1134457,
  "tokens_out": 22367,
  "cost_usd": 0.04041134000000001,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "node",
          "<guest-path>",
          "status"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "{\n  \"name\": \"Purge Community\",\n  \"package\": \"dsh-purge-community\",\n  \"compatibility\": {\n    \"host_version\": \"0.2.1-rc.3\",\n    \"prompt_version\": \"0.2.1-rc.3\",\n    \"runtime_supported\": true,\n    \"patch_writes_allowed\": true,\n    \"layout_found\": true,\n    \"qualified\": true,\n    \"level\": \"qualified\",\n    \"message\": \"DSH 0.2.1-rc.3\uff1a\u9010\u6761\u8865\u4e01\u951a\u70b9\u5df2\u56de\u5f52\u9a8c\u8bc1\uff0c\u53ef\u76f4\u63a5\u5e94\u7528\uff1b\u5199\u5165\u524d\u81ea\u52a8\u5907\u4efd\u3002\"\n[excerpt truncated]",
        "stderr": "",
        "needs_credentials": false,
        "needs_browser": false,
        "scope": "product operation"
      }
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "Review signals: 1 hardcoded secret.",
    "expected": "Reviewed as expected for a test run: attempted writes that failed, so nothing was written.",
    "findings": [
      {
        "kind": "hardcoded-secret",
        "count": 1,
        "note": "Gitleaks found a possible hardcoded secret; value withheld.",
        "location_count": 1,
        "path": "skills/redteam/cn-proxy-pool.md"
      }
    ],
    "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=kingcharleslzy-ai--dsh-purge-claude-haiku-5-5-1793105386399409149",
    "evidence_file": "/data/safety/kingcharleslzy-ai--dsh-purge-claude-haiku-5-5-1793105386399409149.json.gz"
  },
  "agent_execution": "native_agent",
  "agent_runtime": "claude-code",
  "agent_runtime_version": "2.1.310 (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": 31,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "27919a326b6615b1968661a3e749760cec3a2e07",
    "url": "https://github.com/kingcharleslzy-ai/dsh-purge"
  },
  "purpose": "initial",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": "unknown",
    "status": "pending",
    "reason": null
  },
  "fix_id": null,
  "verifies_run_id": null,
  "hosting": null,
  "operation_scope": "product operation",
  "tool_calls": 31,
  "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/kingcharleslzy-ai/dsh-purge",
  "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": "The 400 ms prompt-assembly poller (lib/index.js setInterval) only runs inside a live DSH Desktop host GUI. No host is running in this VM, so the cycle cannot be triggered by a CLI command. Missing prerequisite: running DSH host.",
      "evidence": "The 400 ms prompt-assembly poller (lib/index.js setInterval) only runs inside a live DSH Desktop host GUI. No host is running in this VM, so the cycle cannot be triggered by a CLI command. Missing prerequisite: running DSH host.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "Read-only selfcheck reports layer status as JSON",
      "source": "purge-community selfcheck --json",
      "input": "selfcheck --json on the installed web profile",
      "expected": "JSON with ok:false because host patches are not yet applied",
      "command": "node <guest-path> selfcheck --json",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: \"ok\": false",
      "evidence": "\"ok\": false,\n  \"state\": \"broken\",\n  \"needsApply\": false,\n  \"summary\": {\n    \"host\": {\n      \"ok\": false,\n      \"passed\": 2,\n      \"total\": 22\n    },\n    \"runtime\": {\n      \"ok\": false,\n      \"passed\": 0,\n      \"total\": 1\n    },\n    \"config\": {\n      \"ok\": false,\n      \"passed\": 0,\n      \"total\": 1\n    },\n    \"layout\": {\n      \"ok\": true,\n      \"passed\": 0,\n      \"total\": 0\n    },\n    \"pending\": {\n      \"layers\": 19,\n      \"patches\": 40\n    },\n    \"uncertain\": {\n      \"layers\": 1\n    },\n    \"broken\": {\n      \"layers\": 2\n    }\n  },\n  \"host\": \"<guest-path>",
      "returncode": 1,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "Verified host version is DSH 0.2.1-rc.3",
      "source": "DSH Desktop 0.2.1-rc.1 / 0.2.1-rc.2 / 0.2.1-rc.3",
      "input": "status on the web profile",
      "expected": "host_version 0.2.1-rc.3",
      "command": "node <guest-path> status",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: \"host_version\": \"0.2.1-rc.3\"",
      "evidence": "\"host_version\": \"0.2.1-rc.3\",\n    \"prompt_version\": \"0.2.1-rc.3\",\n    \"runtime_supported\": true,\n    \"patch_writes_allowed\": true,\n    \"layout_found\": true,\n    \"qualified\": true,\n    \"level\": \"qualified\",\n    \"message\": \"DSH 0.2.1-rc.3\uff1a\u9010\u6761\u8865\u4e01\u951a\u70b9\u5df2\u56de\u5f52\u9a8c\u8bc1\uff0c\u53ef\u76f4\u63a5\u5e94\u7528\uff1b\u5199\u5165\u524d\u81ea\u52a8\u5907\u4efd\u3002\"\n  },\n  \"backups\": [\n    {\n      \"id\": \"2026-10-27T12-52-59-609Z-fe969dbc\",\n      \"created_at\": \"2026-10-27T12:52:59.624Z\",\n      \"reason\": \"before-migration\",\n      \"host_version\": \"0.2.1-rc.3\",\n      \"plugins\": []\n    }\n  ]\n}\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "Docs check confirms version consistency",
      "source": "\u7248\u672c\u4e0e\u6587\u6863\u4e00\u81f4\u6027",
      "input": "npm run check:docs",
      "expected": "version consistency check passes",
      "command": "npm run check:docs",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: \u6587\u6863\u7248\u672c\u4e00\u81f4",
      "evidence": "\u6587\u6863\u7248\u672c\u4e00\u81f4\uff1a1.6.60\uff08README / release-notes / README.en \u5747\u6307\u5411\u8be5\u7248\u672c\uff09\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": null,
      "source": null,
      "input": "npm run check:docs",
      "command": "npm run check:docs",
      "evidence": "> dsh-purge-community@1.6.60 check:docs\n> node scripts/check-docs.mjs\n\n\u2713 \u6587\u6863\u7248\u672c\u4e00\u81f4\uff1a1.6.60\uff08README / release-notes / README.en \u5747\u6307\u5411\u8be5\u7248\u672c\uff09",
      "deferred": false,
      "expected": "documented command completes successfully",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": null,
      "source": null,
      "input": "node <guest-path> status",
      "command": "node <guest-path> status",
      "evidence": "{\n  \"name\": \"Purge Community\",\n  \"package\": \"dsh-purge-community\",\n  \"compatibility\": {\n    \"host_version\": \"0.2.1-rc.3\",\n    \"prompt_version\": \"0.2.1-rc.3\",\n    \"runtime_supported\": true,\n    \"patch_writes_allowed\": true,\n    \"layout_found\": true,\n    \"qualified\": true,\n    \"level\": \"qualified\",\n    \"message\": \"DSH 0.2.1-rc.3\uff1a\u9010\u6761\u8865\u4e01\u951a\u70b9\u5df2\u56de\u5f52\u9a8c\u8bc1\uff0c\u53ef\u76f4\u63a5\u5e94\u7528\uff1b\u5199\u5165\u524d\u81ea\u52a8\u5907\u4efd\u3002\"\n  },\n  \"backups\": [\n    {\n      \"id\": \"2026-10-27T12-52-59-609Z-fe969dbc\",\n      \"created_at\": \"2026-10-27T12:52:59.624Z\",\n      \"reason\": \"before-migration\",\n      \"host_version\": \"0.2.1-rc.3\",\n      \"plugins\": []\n    }\n  ]\n}",
      "deferred": false,
      "expected": "documented command completes successfully",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "last_commit_at": "2026-10-25T10:44:28Z",
    "commits_90d": 443,
    "merged_prs_90d": 43,
    "open_issues": 18,
    "open_prs": 1,
    "reply_share": null,
    "reply_threads": 0,
    "median_reply_hours": null,
    "last_release_at": "2026-10-25T10:46:33Z",
    "archived": false,
    "verdict": "maintained",
    "note": "actively maintained: last commit 2 days ago; 443 commits and 43 merged PRs in 90 days; 18 open issues, 1 open PRs; latest release 2026-10-25"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 2 days ago; 443 commits and 43 merged PRs in 90 days; 18 open issues, 1 open PRs; latest release 2026-10-25",
  "maintained": "active",
  "maintained_note": "last commit 2 days ago; 12 open issues, 13 answered or closed",
  "last_commit_at": "2026-10-25T10:44:52Z",
  "last_release_at": "2026-10-25T10:46:33Z",
  "open_issues": 12,
  "answered_issues": 13,
  "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-27T12:58:55.974860+00:00",
  "tested_commit": "27919a326b6615b1968661a3e749760cec3a2e07",
  "tested_with": {
    "agent": "claude-code",
    "agent_version": "2.1.310 (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": "kingcharleslzy-ai/dsh-purge",
    "source": "https://github.com/kingcharleslzy-ai/dsh-purge",
    "commit": "27919a326b6615b1968661a3e749760cec3a2e07",
    "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.310 (Claude Code)",
    "tool_transport": "mcp-assigned-vm",
    "runtime": null,
    "runtime_version": null,
    "runtime_revision": null,
    "sandbox_source": null,
    "guest_setup": null,
    "source_pin": {
      "commit": "27919a326b6615b1968661a3e749760cec3a2e07",
      "url": "https://github.com/kingcharleslzy-ai/dsh-purge"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": null,
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "repo",
    "test_version": "readme-d5b140d3c0f8b95c2dd6fe6fc381a303cacb92679582c22317d8e78b572f0cf2",
    "evidence_version": null
  },
  "other_model": null,
  "other_run_id": null,
  "models_agree": null,
  "furthest_model": null,
  "transcript_url": "/transcripts/kingcharleslzy-ai--dsh-purge-claude-haiku-5-5-1793105386399409149.txt",
  "report_url": "/reports/kingcharleslzy-ai--dsh-purge-claude-haiku-5-5-1793105386399409149.json"
}
