{
  "run_id": "nailulgh--antigravity-obsidian-memory-claude-haiku-5-5-1792798186577105843",
  "date": "2026-10-23T23:31:21.384342+00:00",
  "repo": "nailulgh/antigravity-obsidian-memory",
  "kind": "repo",
  "source": "https://github.com/nailulgh/antigravity-obsidian-memory",
  "commit": "c14e7dd7722aff8ddc43f2547a43ccaefe6c1ac5",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 72.98622150393203,
  "total_s": 94.8072030544281,
  "steps": [
    "cd <guest-path> && pwd && ls -la && id -u && cat /etc/os-release | head -3 && python3 --version && git --version 2>&1; ls /inputs 2>&1; ls <guest-path> 2>&1",
    "cd <guest-path> && cat README.md 2>/dev/null | head -300; echo ---; find . -maxdepth 2 -not -path './.git*' | head -100",
    "cd <guest-path> && cat setup.sh; echo ---PLUGIN; cat plugin.json; echo ---; find templates rules .agents -type f | head -50; echo; ls -la .coldpass",
    "mkdir -p /tmp/vault-test && cd /tmp/vault-test && export NODE_USE_ENV_PROXY=1 && curl -fsSL --max-time 60 https://raw.githubusercontent.com/nailulgh/antigravity-obsidian-memory/main/setup.sh | bash; echo \"exit=$?\"",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1 && ./setup.sh /tmp/vault-test; echo \"exit=$?\"; echo ---; find /tmp/vault-test -type f | sort; echo ---; cat ~/.gemini/config/skills/save-memory/SKILL.md | head -5; head -3 ~/.gemini/GEMINI.md",
    "cd <guest-path> && echo HOME=$HOME && bash ./setup.sh /tmp/vault-test; echo \"exit=$?\"; echo ---; find /tmp/vault-test -type f | sort; echo ---; head -3 ~/.gemini/config/skills/save-memory/SKILL.md; head -3 ~/.gemini/GEMINI.md",
    "cat /tmp/vault-test/Atlas/AI_Memory/00_MEMORY_ROUTER.md; echo ---; head -12 /tmp/vault-test/GEMINI.md; echo ---; wc -l /tmp/vault-test/Atlas/AI_Memory/00_MEMORY_ROUTER.md; echo ---; grep -n \"Vault/Atlas/AI_Memory/\" <guest-path>; grep -n \"1-Click Installer\" <guest-path>; grep -n \"Token-Efficient\" <guest-path>",
    "cd <guest-path> && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'\n{\"kind\":\"cli\",\"argv\":[\"bash\",\"setup.sh\",\"/tmp/vault-probe\"],\"cwd\":\"<guest-path>\",\"expected_text\":\"Starter Atlas/AI_Memory structure installed.\"}\nEOF\ncat > .coldpass/claims.json <<'EOF'\n[{\"kind\":\"claim\",\"claim\":\"The installer sets up the Atlas/AI_Memory folder structure inside an Obsidian vault\",\"source\":\"Vault/Atlas/AI_Memory/\",\"input\":\"/tmp/vault-claim-1\",\"expected\":\"Starter Atlas/AI_Memory structure installed.\",\"probe_kind\":\"cli\",\"argv\":[\"bash\",\"setup.sh\",\"/tmp/vault-claim-1\"],\"expected_text\":\"Starter Atlas/AI_Memory structure installed.\",\"cwd\":\"<guest-path>\"}]\nEOF\ncat > .coldpass/examples.json <<'EOF'\n[{\"kind\":\"example\",\"claim\":\"Run the documented one-click installer against a vault path\",\"source\":\"setup.sh usage line / README.md Option 2\",\"input\":\"/tmp/vault-example-1\",\"expected\":\"Installer reports completion\",\"argv\":[\"bash\",\"setup.sh\",\"/tmp/vault-example-1\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"Installation Complete\"},\n{\"kind\":\"example\",\"claim\":\"Project test suite\",\"source\":\"README.md\",\"reason\":\"Inspected README.md, setup.sh, setup.ps1, plugin.json, templates/, rules/, .agents/skills/. No test suite, test command, or example tests exist. The /save-memory skill is an agent procedure run by an AI agent, not a runnable CLI, so it was not executed.\"}]\nEOF\ncat > .coldpass/cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"Inspected README.md, setup.sh, setup.ps1, plugin.json, rules/GEMINI.md and .agents/skills/save-memory/SKILL.md. There is no cron, scheduler, loop, webhook, --once or --now entry point. The only trigger is the agent-run /save-memory skill, which is a prompt-driven procedure and not a product cycle that can be triggered from the shell.\",\"checks\":[]}\nEOF\nfor f in probe claims examples cycles; do python3 -I -c \"import json,sys;json.load(open(sys.argv[1]));print('ok',sys.argv[1])\" .coldpass/$f.json; done",
    "cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay; echo \"exit=$?\"",
    "cd <guest-path> && cat > .coldpass/report.json <<'EOF'\n{\"outcome\":\"working\",\"fault_owner\":\"repo\",\"operation\":\"Install the Antigravity Obsidian Memory starter structure into an Obsidian vault with setup.sh, which copies the Atlas/AI_Memory templates, GEMINI.md rule, and /save-memory skill\",\"operation_scope\":\"Linux Ubuntu 24.04 guest, bash, Python 3.12.3 for the checker. The product is a shell installer and Markdown templates; no server, MCP, CLI runtime, or browser is involved. The /save-memory skill is an agent-run procedure and was not executed. Installs wrote to the guest HOME (<guest-path>) and to throwaway vault folders under /tmp.\",\"steps\":[\"curl -fsSL https://raw.githubusercontent.com/nailulgh/antigravity-obsidian-memory/main/setup.sh | bash (run from /tmp/vault-test, README Option 2 macOS/Linux)\",\"bash ./setup.sh /tmp/vault-test (run from the checkout, using the usage line in setup.sh: ./setup.sh [/path/to/obsidian/vault])\",\"bash setup.sh /tmp/vault-probe (probe, replayed by checker: PASS)\",\"<env-var>=<guest-path> python3 -I <guest-path> --validate --replay\"],\"deviations\":[\"README one-liner 'curl -fsSL .../setup.sh | bash' fails: when setup.sh is read from stdin, SCRIPT_DIR resolves to the current directory, so it reports 'Error: Template directory not found at /tmp/vault-test/templates/Atlas/AI_Memory' and exits 1. Substituted: ran the same setup.sh from the source checkout with the vault path as argument, which the script's own usage line documents.\",\"./setup.sh failed with 'Permission denied' because the checkout file is not executable; substituted 'bash ./setup.sh <vault>'. No file modes were changed in the source.\",\"git init / remote / fetch pin not performed: no documented command needed Git metadata (setup.sh does not use git).\",\" README claims the starter router is 'Token-Efficient Router (< 40 lines)'. The installed 00_MEMORY_ROUTER.md is 50 lines, so this promise is not met by the shipped template.\",\"agy plugin install (README Option 1) not run: the agy CLI is not available in this guest.\"],\"stuck_step\":null,\"main_blocker\":null,\"plain_failure\":\"The one-line install command in the README does not work when piped from curl: it stops with 'Template directory not found'. Running the same installer from a downloaded copy of the repository works and sets up the memory folders, the global rule and the save-memory skill.\",\"suggested_fix\":\"Make setup.sh locate its templates when run from stdin, for example by downloading the repository or the templates first, or by having the README direct users to clone the repo and run ./setup.sh <vault>. Also make the router template fit the documented under-40-line limit, or update the README's limit to match the 50-line template. Add the executable bit to setup.sh in the repository.\"}\nEOF\npython3 -I -c \"import json;d=json.load(open('.coldpass/report.json'));print(d['outcome'],d['fault_owner'])\"; <env-var>=<guest-path> python3 -I <guest-path> --validate --replay | python3 -c \"import json,sys;d=json.load(sys.stdin);print('valid',d['valid'],d['problems'],d['replay']['status'])\"",
    "cd <guest-path> && sed -i 's/\"expected_text\":\"Starter Atlas\\/AI_Memory structure installed.\"/\"expected_text\":\"Installation Complete!\"/' .coldpass/probe.json && sed -i 's/\"expected\":\"Starter Atlas\\/AI_Memory structure installed.\",\"probe_kind\"/\"expected\":\"Installer reports completion\",\"probe_kind\"/; s/\"expected_text\":\"Starter Atlas\\/AI_Memory structure installed.\",\"cwd\"/\"expected_text\":\"Installation Complete!\",\"cwd\"/' .coldpass/claims.json && cat .coldpass/probe.json .coldpass/claims.json && python3 -I -c \"import json;[json.load(open('.coldpass/'+f)) for f in ['probe.json','claims.json']];print('json ok')\" && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay | python3 -c \"import json,sys;d=json.load(sys.stdin);print('valid',d['valid'],d['problems'],'replay',d['replay']['status']);print([c['verdict'] for c in d['replay']['details']['claims']],[e['verdict'] for e in d['replay']['details']['example_checks']])\"",
    "cd <guest-path> && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay | python3 -c \"import json,sys;d=json.load(sys.stdin);print('valid',d['valid'],d['problems'],'replay',d['replay']['status'])\"; ls -la .coldpass"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Install the Antigravity Obsidian Memory starter structure into an Obsidian vault with setup.sh, which copies the Atlas/AI_Memory templates, GEMINI.md rule, and /save-memory skill",
  "suggested_fix": null,
  "tokens_in": 232488,
  "tokens_out": 11796,
  "cost_usd": 0.01373827,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "bash",
          "setup.sh",
          "/tmp/vault-probe"
        ],
        "kind": "cli",
        "returncode": 0,
        "stdout": "==========================================================\n  \ud83e\udde0 Antigravity Obsidian Memory: Quick Installer\n==========================================================\n\ud83d\udcc1 Target Vault: /tmp/vault-probe\n\u2139\ufe0f Folder Atlas/AI_Memory already exists. Skipping starter copy.\n\u2705 Global Skill '/save-memory' installed.\n\u2705 Global Rule ~/.gemini/GEMINI.md updated.\n==========================================================\n\ud83c\udf89 Installation Complete! Use '/save-memory' to retain session state.\n==========================================================",
        "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=nailulgh--antigravity-obsidian-memory-claude-haiku-5-5-1792798186577105843",
    "evidence_file": "/data/safety/nailulgh--antigravity-obsidian-memory-claude-haiku-5-5-1792798186577105843.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": 12,
  "native_bundle": null,
  "architecture": null,
  "backend": "hyperv",
  "platform_details": {
    "backend": "hyperv",
    "os": "linux"
  },
  "platform_conflicts": null,
  "sandbox_source": null,
  "source_pin": {
    "commit": "c14e7dd7722aff8ddc43f2547a43ccaefe6c1ac5",
    "url": "https://github.com/nailulgh/antigravity-obsidian-memory"
  },
  "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": 12,
  "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/nailulgh/antigravity-obsidian-memory",
  "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": "Inspected README.md, setup.sh, setup.ps1, plugin.json, rules/GEMINI.md and .agents/skills/save-memory/SKILL.md. There is no cron, scheduler, loop, webhook, --once or --now entry point. The only trigger is the agent-run /save-memory skill, which is a prompt-driven procedure and not a product cycle that can be triggered from the shell.",
      "evidence": "Inspected README.md, setup.sh, setup.ps1, plugin.json, rules/GEMINI.md and .agents/skills/save-memory/SKILL.md. There is no cron, scheduler, loop, webhook, --once or --now entry point. The only trigger is the agent-run /save-memory skill, which is a prompt-driven procedure and not a product cycle that can be triggered from the shell.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "The installer sets up the Atlas/AI_Memory folder structure inside an Obsidian vault",
      "source": "Vault/Atlas/AI_Memory/",
      "input": "/tmp/vault-claim-1",
      "expected": "Installer reports completion",
      "command": "bash setup.sh /tmp/vault-claim-1",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: Installation Complete!",
      "evidence": "Installation Complete! Use '/save-memory' to retain session state.\n==========================================================\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "Run the documented one-click installer against a vault path",
      "source": "setup.sh usage line / README.md Option 2",
      "input": "/tmp/vault-example-1",
      "command": "bash setup.sh /tmp/vault-example-1",
      "evidence": "==========================================================\n  \ud83e\udde0 Antigravity Obsidian Memory: Quick Installer\n==========================================================\n\ud83d\udcc1 Target Vault: /tmp/vault-example-1\n\u2139\ufe0f Folder Atlas/AI_Memory already exists. Skipping starter copy.\n\u2705 Global Skill '/save-memory' installed.\n\u2705 Global Rule ~/.gemini/GEMINI.md updated.\n==========================================================\n\ud83c\udf89 Installation Complete! Use '/save-memory' to retain session state.\n==========================================================",
      "deferred": false,
      "expected": "Installer reports completion",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "Project test suite",
      "source": "README.md",
      "input": "",
      "command": "",
      "evidence": "Inspected README.md, setup.sh, setup.ps1, plugin.json, templates/, rules/, .agents/skills/. No test suite, test command, or example tests exist. The /save-memory skill is an agent procedure run by an AI agent, not a runnable CLI, so it was not executed.",
      "deferred": false,
      "expected": "documented command completes successfully",
      "verdict": "blocked",
      "outcome": "Inspected README.md, setup.sh, setup.ps1, plugin.json, templates/, rules/, .agents/skills/. No test suite, test command, or example tests exist. The /save-memory skill is an agent procedure run by an AI agent, not a runnable CLI, so it was not executed."
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "last_commit_at": "2026-10-14T13:07:19Z",
    "commits_90d": 3,
    "merged_prs_90d": 0,
    "open_issues": 0,
    "open_prs": 0,
    "reply_share": null,
    "reply_threads": 0,
    "median_reply_hours": null,
    "last_release_at": "2026-10-20T04:04:42Z",
    "archived": false,
    "verdict": "maintained",
    "note": "actively maintained: last commit 9 days ago; 3 commits and 0 merged PRs in 90 days; 0 open issues, 0 open PRs; latest release 2026-10-20"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 9 days ago; 3 commits and 0 merged PRs in 90 days; 0 open issues, 0 open PRs; latest release 2026-10-20",
  "maintained": "active",
  "maintained_note": "last commit 9 days ago",
  "last_commit_at": "2026-10-14T13:11:30Z",
  "last_release_at": "2026-10-20T04:04:42Z",
  "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-23T23:31:21.384342+00:00",
  "tested_commit": "c14e7dd7722aff8ddc43f2547a43ccaefe6c1ac5",
  "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": "nailulgh/antigravity-obsidian-memory",
    "source": "https://github.com/nailulgh/antigravity-obsidian-memory",
    "commit": "c14e7dd7722aff8ddc43f2547a43ccaefe6c1ac5",
    "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": "c14e7dd7722aff8ddc43f2547a43ccaefe6c1ac5",
      "url": "https://github.com/nailulgh/antigravity-obsidian-memory"
    },
    "platform_details": {
      "os": "linux",
      "backend": "hyperv"
    },
    "platform_conflicts": null,
    "reasoning": "low",
    "service_tier": null,
    "resources": {
      "cpus": 2,
      "memory_mib": 4096,
      "disk_mib": 32768
    },
    "operation": "Install the Antigravity Obsidian Memory starter structure into an Obsidian vault with setup.sh, which copies the Atlas/AI_Memory templates, GEMINI.md rule, and /save-memory skill",
    "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/nailulgh--antigravity-obsidian-memory-claude-haiku-5-5-1792798186577105843.json"
}
