{
  "run_id": "TayHCode--pstack-factory-claude-haiku-5-5-1792728031974189296",
  "date": "2026-10-23T05:15:30.575574+00:00",
  "repo": "TayHCode/pstack-factory",
  "kind": "repo",
  "source": "https://github.com/TayHCode/pstack-factory",
  "commit": "515d20342d52b0bf82e6828237595586d9a694db",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 4334.126483514905,
  "total_s": 4498.601352453232,
  "steps": [
    "cd <guest-path> && pwd && ls -la && git status 2>&1 | head -3; id -u; python3 --version; cat /etc/os-release | head -3; echo; cat README.md 2>/dev/null | head -200",
    "ls <guest-path> /inputs 2>&1; ls -la <guest-path>",
    "cd <guest-path> && which git && git --version; python3 -m venv --help >/dev/null 2>&1 && echo venv_ok || echo venv_missing; python3 -m pip --version 2>&1 | head -1; cat pyproject.toml; ls pstack loop tests | head -80",
    "cd <guest-path> && git init -q && git remote add origin https://github.com/TayHCode/pstack-factory && timeout 120 git fetch --depth 1 origin 515d20342d52b0bf82e6828237595586d9a694db 2>&1 | tail -5; echo \"rc=$?\"; git reset --mixed FETCH_HEAD 2>&1 | tail -2; git log --oneline -1 2>&1; git status --short | head -5",
    "cd <guest-path> && python3 -m venv <guest-path> 2>&1 | tail -3; ls <guest-path> 2>/dev/null | head -20",
    "rm -rf <guest-path> && sudo -n apt-get update -qq 2>&1 | tail -2; sudo -n DEBIAN_FRONTEND=noninteractive apt-get install -y -qq python3-venv python3-pip 2>&1 | tail -3; cd <guest-path> && python3 -m venv <guest-path> && <guest-path> --version && <guest-path> -m pip --version",
    "cd <guest-path> && export PATH=<guest-path> && python -m pip install . \"pytest>=9,<10\" 2>&1 | tail -4 && python pstack/install_native.py 2>&1 | tail -5; echo \"rc=$?\"",
    "cd <guest-path> && export PATH=<guest-path> && python3 pstack/budget.py show 2>&1 | head -30; echo \"--- lookup\"; python3 pstack/catalog.py lookup architect 2>&1 | head -20; echo \"--- integrity\"; python3 pstack/check_integrity.py 2>&1 | tail -5; echo \"rc=$?\"; echo \"--- installation\"; python3 pstack/check_installation.py 2>&1 | tail -5; echo \"rc=$?\"",
    "cd <guest-path> && export PATH=<guest-path> && timeout 900 flock /tmp/factory-pstack-tests.lock python3 -m pytest -q 2>&1 | tail -15; echo \"rc=${PIPESTATUS[0]}\"",
    "mkdir -p <guest-path> && cd <guest-path> && export PATH=<guest-path> && nohup sh -c 'flock /tmp/factory-pstack-tests.lock python3 -m pytest -q -rf > <guest-path> 2>&1; echo EXIT=$? >> <guest-path>' >/dev/null 2>&1 &\necho started",
    "cd <guest-path> && cat .coldpass/* 2>/dev/null | head -5; ls -la .coldpass; echo ---; grep -n -i \"cli\\|--out\\|doctor\\|evidence\" README.md loop/README.md | head -30; echo; sed -n 1,80p loop/README.md",
    "wc -l <guest-path>; grep -n \"def \\|argv\\|kind\\|cycles\\|expected_file\" <guest-path> | head -120",
    "cd <guest-path> && sed -n 325,347p checker/check.py; echo ....; sed -n 657,668p checker/check.py; echo ....; grep -n \"cycles\\|examples.json\\|claims.json\\|probe.json\\|report.json\\|'--validate'\\|--replay\" checker/check.py | head -60; echo; tail -3 logs/pytest.log 2>/dev/null",
    "cd <guest-path> && grep -n \"UNIT_SUITE =\\|PARTIAL_CHECKS =\\|INTERPRETER =\\|INLINE_CODE =\" checker/check.py; sed -n 960,1010p checker/check.py; sed -n 747,770p checker/check.py",
    "sleep 240; tail -c 1500 <guest-path>",
    "sleep 600; tail -c 2000 <guest-path>; echo; pgrep -fa pytest | head -3",
    "cd <guest-path> && <guest-path> pstack/fresh_toy.py --out .scratch/fresh-toy-1 --plan 2>&1 | head -60; echo \"rc=${PIPESTATUS[0]}\"; ls -la .scratch 2>&1",
    "for i in $(seq 1 50); do grep -q EXIT= <guest-path> 2>/dev/null && break; sleep 20; done; tail -c 3000 <guest-path> | tail -40",
    "for i in $(seq 1 85); do grep -q EXIT= <guest-path> 2>/dev/null && break; sleep 10; done; tail -c 1200 <guest-path>",
    "for i in $(seq 1 85); do grep -q EXIT= <guest-path> 2>/dev/null && break; sleep 10; done; tail -c 2500 <guest-path>",
    "cd <guest-path> && git log --oneline -3; git status --short | head; echo ---; grep -n \"Error\\|assert\\|FAILED\\|def test_source_commit\" <guest-path> | head -30",
    "cd <guest-path> && sed -n 120,145p tests/pstack/test_update_workflow.py; sed -n 47,52p <guest-path> | cut -c1-400",
    "cd <guest-path> && ls -d .scratch/fresh-toy-1 2>&1; timeout 1500 <guest-path> pstack/fresh_toy.py --out .scratch/fresh-toy-1 > <guest-path> 2>&1; echo \"rc=$?\"; tail -c 3000 <guest-path>",
    "cd <guest-path> && sed -n 930,958p checker/check.py; sed -n 1228,1250p checker/check.py",
    "cd <guest-path> && grep -n \"def claim_verdict\" -A 22 checker/check.py | head -40; grep -n \"def probe(\" -A 12 checker/check.py | head -30",
    "cd <guest-path> && grep -rn -i \"cron\\|schedule\\|--once\\|--now\\|while True\\|webhook\\|sleep(\" --include=*.py --include=*.md loop pstack factory 2>/dev/null | grep -v \"upstream/\" | head -20; echo ---; wc -c pstack/*.recipe.json pstack/recipe.json; echo ---; sed -n 1,12p loop/README.md | head -3; grep -n \"factory_verify.py run\\|fresh_toy\" -r docs/*.md | head -5",
    "cd <guest-path> && sed -n 1,20p factory/hooks.py; echo ...; sed -n 50,80p factory/hooks.py; echo ---; grep -rn -i \"hook\" README.md docs/SETUP.md | head -5",
    "cd <guest-path> && rm -rf .scratch/fresh-toy-1 && mkdir -p .coldpass && PY=<guest-path> && cat > .coldpass/probe.json <<EOF\n{\"kind\":\"cli\",\"argv\":[\"$PY\",\"pstack/fresh_toy.py\",\"--out\",\".scratch/probe-fresh-toy\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"PASS: tested source\"}\nEOF\ncat > .coldpass/claims.json <<EOF\n[\n{\"kind\":\"claim\",\"claim\":\"Catalog lookup returns the architect skill entry\",\"source\":\"python3 pstack/catalog.py lookup architect\",\"input\":\"architect\",\"expected\":\"skill/architect entry\",\"probe_kind\":\"cli\",\"argv\":[\"$PY\",\"pstack/catalog.py\",\"lookup\",\"architect\"],\"expected_text\":\"\\\"piece\\\": \\\"skill/architect\\\"\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"Fresh toy plan lists the rehearsal steps without writing\",\"source\":\"The first command prints the plan without writing.\",\"input\":\"--plan\",\"expected\":\"plan lists create disposable toy fixture\",\"probe_kind\":\"cli\",\"argv\":[\"$PY\",\"pstack/fresh_toy.py\",\"--out\",\".scratch/claim-plan-out\",\"--plan\"],\"expected_text\":\"create disposable toy fixture\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"Fresh toy rehearsal runs and passes end to end\",\"source\":\"python3 pstack/fresh_toy.py --out .scratch/fresh-toy-1\",\"input\":\"--out .scratch/claim-fresh-toy-run\",\"expected\":\"rehearsal prints PASS for tested source\",\"probe_kind\":\"cli\",\"argv\":[\"$PY\",\"pstack/fresh_toy.py\",\"--out\",\".scratch/claim-fresh-toy-run\"],\"expected_text\":\"PASS: tested source\",\"cwd\":\"<guest-path>\"}\n]\nEOF\ncat > .coldpass/examples.json <<EOF\n[{\"kind\":\"example\",\"claim\":\"Documented dry-run of the fresh toy rehearsal prints its plan\",\"source\":\"README.md: Fresh toy rehearsal (python3 pstack/fresh_toy.py --out .scratch/fresh-toy-1 --plan)\",\"input\":\"--plan\",\"expected\":\"prints the four planned steps\",\"argv\":[\"$PY\",\"pstack/fresh_toy.py\",\"--out\",\".scratch/example-plan-out\",\"--plan\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"create disposable toy fixture\"}]\nEOF\ncat > .coldpass/cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"Entry points inspected: README documents only one-shot CLI commands (catalog lookup, budget show, fresh_toy.py, factory_verify.py run, check_evidence.py). No README-documented cron, schedule, loop, webhook, --once or --now trigger exists. factory/hooks.py has an event-triggered after-change runner with a while loop, but the README does not document it and it is not a scheduled product cycle, so no cycle was triggered.\"\n,\"checks\":[]}\nEOF\nfor f in probe claims examples cycles; do <guest-path> -m json.tool .coldpass/$f.json >/dev/null && echo \"$f ok\"; done",
    "cd <guest-path> && COLDPASS_WORKSPACE=<guest-path> timeout 1500 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo \"rc=$?\"; head -c 6000 <guest-path>",
    "cd <guest-path> && python3 -c \"\nimport json,sys\nd=json.load(open('<guest-path>'))\nprint('valid',d['valid'],'problems',d['problems'])\nr=d.get('replay',{})\nprint('replay',r.get('status'))\nfor k in ('claims','example_checks','cycle_checks'):\n  for c in r.get('details',{}).get(k,[]) or []: print(k, c.get('verdict'), c.get('outcome','')[:110])\n\" 2>&1 | head -30; tail -c 300 <guest-path>",
    "cd <guest-path> && mkdir -p .coldpass && cat > <guest-path> <<'EOF'\nimport json\nreport = {\n \"outcome\": \"working\",\n \"fault_owner\": \"repo\",\n \"operation\": \"Run pstack Factory's README-documented local workflow: install the package, install native skill links, look up a catalog entry, and run the fresh synthetic toy rehearsal (python3 pstack/fresh_toy.py --out ...), which builds a toy fixture, runs behavior checks, and validates sealed evidence.\",\n \"operation_scope\": \"Local only, no network or model calls. Ubuntu 24.04, Python 3.12.3 in a venv at <guest-path> (python3-venv installed via sudo apt-get; system Python had no pip). Git 2.43.0. pytest 9.1.1. Source pinned to commit 515d20342d52b0bf82e6828237595586d9a694db via git init/remote/fetch --depth 1/reset --mixed.\",\n \"steps\": [\n  \"git init; git remote add origin https://github.com/TayHCode/pstack-factory; git fetch --depth 1 origin 515d20342d52b0bf82e6828237595586d9a694db; git reset --mixed FETCH_HEAD\",\n  \"sudo -n apt-get install -y python3-venv python3-pip; python3 -m venv <guest-path>\",\n  \"python -m pip install . \\\"pytest>=9,<10\\\"  (inside venv)\",\n  \"python pstack/install_native.py  -> PASS: five repository-local native skill links installed\",\n  \"python3 pstack/budget.py show\",\n  \"python3 pstack/catalog.py lookup architect\",\n  \"python3 pstack/check_integrity.py -> PASS: 169 upstream files match the manifest\",\n  \"python3 pstack/check_installation.py -> PASS\",\n  \"flock /tmp/factory-pstack-tests.lock python3 -m pytest -q  -> 1512 passed, 4 skipped, 501 subtests passed, 1 failed\",\n  \"python3 pstack/fresh_toy.py --out .scratch/fresh-toy-1 --plan\",\n  \"python3 pstack/fresh_toy.py --out .scratch/fresh-toy-1  -> PASS fresh-synthetic-toy 1/1; PASS: tested source\"\n ],\n \"deviations\": [\n  \"System python3 had no pip and ensurepip was missing; installed python3-venv and python3-pip with sudo apt-get and used a venv instead of a bare system pip install.\",\n  \"Used the absolute venv python (<guest-path>) for probe/claim argv instead of bare python3 so replay uses the same interpreter.\",\n  \"pytest full suite took about 53 minutes and exceeded the 900s tool timeout on the first attempt; reran in background with a log file.\",\n  \"Full pytest run: 1 failed test: tests/pstack/test_update_workflow.py::test_source_commit_precedes_real_runner_and_durable_evidence_is_pushed. The assertion (bundle recipe.json bytes == repo pstack/recipe.json bytes) failed at byte index 88 (a check argv differs). Not hand-edited; reported as a repo test failure. The README's own fresh toy rehearsal passed.\",\n  \"The test suite created commits in its own temporary repositories; the workspace HEAD stayed at 515d203.\",\n  \"Did not run the README's 'Verify a committed extraction' recipe (factory_verify.py run pstack/extraction.recipe.json) because it re-runs the full suite and needs a clean worktree; not run.\",\n  \"Cycle: no scheduler, loop, webhook, --once or --now trigger is documented in the README; factory/hooks.py is an undocumented after-change event runner, so no cycle was triggered (detected:false).\"\n ],\n \"stuck_step\": None,\n \"main_blocker\": None,\n \"plain_failure\": None,\n \"suggested_fix\": \"Investigate the recipe.json byte mismatch in tests/pstack/test_update_workflow.py (test_source_commit_precedes_real_runner_and_durable_evidence_is_pushed); the documented install, catalog lookup and fresh toy rehearsal already pass without it.\"\n}\nwith open('<guest-path>','w',encoding='utf-8') as f:\n    json.dump(report,f,indent=2,ensure_ascii=False); f.write('\\n')\nprint('written')\nEOF\n<guest-path> -I <guest-path> && <guest-path> -I -m json.tool .coldpass/report.json >/dev/null && echo json_ok; COLDPASS_WORKSPACE=<guest-path> timeout 1500 python3 -I <guest-path> --validate --replay > <guest-path> 2>&1; echo \"rc=$?\"; python3 -c \"import json;d=json.load(open('<guest-path>'));print('valid',d['valid'],d['problems'],'replay',d['replay']['status'])\"",
    "cd <guest-path> && ls -la .coldpass; ls report.json 2>&1 | tail -1; pgrep -fa \"pytest|fresh_toy|serve\" | grep -v pgrep | head -3; echo done"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Run pstack Factory's README-documented local workflow: install the package, install native skill links, look up a catalog entry, and run the fresh synthetic toy rehearsal (python3 pstack/fresh_toy.py --out ...), which builds a toy fixture, runs behavior checks, and validates sealed evidence.",
  "suggested_fix": null,
  "tokens_in": 884434,
  "tokens_out": 19639,
  "cost_usd": 0.0286125,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "<guest-path>",
          "pstack/fresh_toy.py",
          "--out",
          ".scratch/probe-fresh-toy-checker-d5a8d4919aaa48a6a711bfed2512d6fb"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "PASS  fresh-synthetic-toy  1/1\nPASS: tested source 9404a93e768f16965c22deb0db3e25a318bacfb4; current committed inputs and retained artifacts match\n{\n  \"version\": 1,\n  \"outcome\": \"PASS\",\n  \"source_policy\": \"command-boundaries\",\n  \"steps\": [\n    {\n      \"id\": \"behavior\",\n      \"action\": \"drive\",\n      \"expected\": {\n        \"exit\": 0,\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, 1 outside write.",
    "findings": [
      {
        "kind": "hardcoded-secret",
        "count": 1,
        "note": "Gitleaks found a possible hardcoded secret; value withheld.",
        "location_count": 1,
        "path": "pstack/manifest.json"
      },
      {
        "kind": "outside-write",
        "count": 1,
        "note": "Repository processes attempted these writes outside documented output/cache paths.",
        "location_count": 1,
        "path": "/etc",
        "process_count": 2
      }
    ],
    "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--pstack-factory-claude-haiku-5-5-1792728031974189296",
    "evidence_file": "/data/safety/TayHCode--pstack-factory-claude-haiku-5-5-1792728031974189296.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": 32,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "515d20342d52b0bf82e6828237595586d9a694db",
    "url": "https://github.com/TayHCode/pstack-factory"
  },
  "purpose": "initial",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": "repo",
    "status": "diagnosed",
    "reason": null
  },
  "fix_id": null,
  "verifies_run_id": null,
  "hosting": null,
  "operation_scope": "product operation",
  "tool_calls": 32,
  "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/pstack-factory",
  "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: README documents only one-shot CLI commands (catalog lookup, budget show, fresh_toy.py, factory_verify.py run, check_evidence.py). No README-documented cron, schedule, loop, webhook, --once or --now trigger exists. factory/hooks.py has an event-triggered after-change runner with a while loop, but the README does not document it and it is not a scheduled product cycle, so no cycle was triggered.",
      "evidence": "Entry points inspected: README documents only one-shot CLI commands (catalog lookup, budget show, fresh_toy.py, factory_verify.py run, check_evidence.py). No README-documented cron, schedule, loop, webhook, --once or --now trigger exists. factory/hooks.py has an event-triggered after-change runner with a while loop, but the README does not document it and it is not a scheduled product cycle, so no cycle was triggered.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "Catalog lookup returns the architect skill entry",
      "source": "python3 pstack/catalog.py lookup architect",
      "input": "architect",
      "expected": "skill/architect entry",
      "command": "<guest-path> pstack/catalog.py lookup architect",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: \"piece\": \"skill/architect\"",
      "evidence": "\"piece\": \"skill/architect\",\n  \"decision\": \"SKILL\",\n  \"reason\": \"Choosing data types, ownership and module boundaries needs design judgment.\",\n  \"effort\": \"M\",\n  \"notes\": \"Both read the same guidance; replace Cursor Task/control calls through the overlay.\",\n  \"paths\": [\n    \"pstack/upstream/skills/architect/SKILL.md\"\n  ],\n  \"enabled\": true,\n  \"activation\": \"on-demand\"\n}\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "Fresh toy plan lists the rehearsal steps without writing",
      "source": "The first command prints the plan without writing.",
      "input": "--plan",
      "expected": "plan lists create disposable toy fixture",
      "command": "<guest-path> pstack/fresh_toy.py --out .scratch/claim-plan-out-checker-28be23b03ec5434b9dc404409c4d078b --plan",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: create disposable toy fixture",
      "evidence": "create disposable toy fixture\",\n    \"commit fixture locally\",\n    \"run generic and product verification\",\n    \"check sealed evidence\"\n  ],\n  \"external_effects\": [],\n  \"owner_approval\": false\n}\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "Fresh toy rehearsal runs and passes end to end",
      "source": "python3 pstack/fresh_toy.py --out .scratch/fresh-toy-1",
      "input": "--out .scratch/claim-fresh-toy-run",
      "expected": "rehearsal prints PASS for tested source",
      "command": "<guest-path> pstack/fresh_toy.py --out .scratch/claim-fresh-toy-run-checker-9eca6de259974e9e85fdbe802c90b925",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: PASS: tested source",
      "evidence": "PASS: tested source b5c8a50b0fdbcb5b3521be78b7e6f2b34b415bf1; current committed inputs and retained artifacts match\n{\n  \"version\": 1,\n  \"outcome\": \"PASS\",\n  \"source_policy\": \"command-boundaries\",\n  \"steps\": [\n    {\n      \"id\": \"behavior\",\n      \"action\": \"drive\",\n      \"expected\": {\n        \"exit\": 0,\n        \"stdout_contains\": [\n          \"FRESH_TOY PASS\"\n        ]\n      },\n      \"actual\": {\n        \"exit\": 0,\n        \"stdout_contains\": {\n          \"FRESH_TOY PASS\": true\n        },\n        \"stderr_contains\": {}\n      },\n      \"outcome\": \"PASS\",\n      \"artifacts_at_exit\": {\n        \"behavior.o",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "Documented dry-run of the fresh toy rehearsal prints its plan",
      "source": "README.md: Fresh toy rehearsal (python3 pstack/fresh_toy.py --out .scratch/fresh-toy-1 --plan)",
      "input": "--plan",
      "command": "<guest-path> pstack/fresh_toy.py --out .scratch/example-plan-out-checker-dda75d9bea2b464f9c9b533ea6146772 --plan",
      "evidence": "{\n  \"provenance\": \"SYNTHETIC_LOCAL_ONLY; no provider dispatch\",\n  \"output\": \"<guest-path>\",\n  \"steps\": [\n    \"create disposable toy fixture\",\n    \"commit fixture locally\",\n    \"run generic and product verification\",\n    \"check sealed evidence\"\n  ],\n  \"external_effects\": [],\n  \"owner_approval\": false\n}",
      "deferred": false,
      "expected": "prints the four planned steps",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "last_commit_at": "2026-10-15T23:46:58Z",
    "commits_90d": 1,
    "merged_prs_90d": 0,
    "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; 1 commits and 0 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; 1 commits and 0 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-16T00:31:59Z",
  "last_release_at": null,
  "open_issues": null,
  "answered_issues": null,
  "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-23T05:15:30.575574+00:00",
  "tested_commit": "515d20342d52b0bf82e6828237595586d9a694db",
  "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/pstack-factory",
    "source": "https://github.com/TayHCode/pstack-factory",
    "commit": "515d20342d52b0bf82e6828237595586d9a694db",
    "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": "515d20342d52b0bf82e6828237595586d9a694db",
      "url": "https://github.com/TayHCode/pstack-factory"
    },
    "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 pstack Factory's README-documented local workflow: install the package, install native skill links, look up a catalog entry, and run the fresh synthetic toy rehearsal (python3 pstack/fresh_toy.py --out ...), which builds a toy fixture, runs behavior checks, and validates sealed evidence.",
    "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
}
