{
  "run_id": "LeulAria--Aria-Icons-claude-haiku-5-5-1792812099601236203",
  "date": "2026-10-24T03:53:12.751093+00:00",
  "repo": "LeulAria/Aria-Icons",
  "kind": "mcp",
  "source": "https://github.com/LeulAria/Aria-Icons",
  "commit": "c1d22bdca5a83921f435a52f2832320538236a62",
  "model": "claude-haiku-5-5",
  "model_version": "claude-haiku-5-5",
  "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
  "pass": true,
  "outcome": "pass",
  "time_to_working_s": 1274.289153915015,
  "total_s": 1893.1498403549194,
  "steps": [
    "cd <guest-path> && pwd && ls -la && git status 2>&1 | head -3; id -u; python3 --version; cat /etc/os-release | head -2; ls /inputs 2>&1",
    "cd <guest-path> && cat README.md 2>/dev/null | head -200; ls -la <guest-path> 2>&1",
    "cd <guest-path> && sed -n 200,400p README.md; echo ----; ls -la .coldpass; echo ----; which node npm bun bunx uv npx 2>&1; node --version 2>&1; npm --version 2>&1; bun --version 2>&1; cat package.json; grep -n '\"engines\"' -A3 packages/cli/package.json",
    "cd <guest-path> && cat .github/workflows/*.yml 2>/dev/null | head -80; echo ----; cat packages/cli/README.md | head -120; echo; cat bunfig.toml; cat Makefile | head -60",
    "cd <guest-path> && git init -q && git remote add origin https://github.com/LeulAria/Aria-Icons && timeout 170 git fetch --depth 1 origin c1d22bdca5a83921f435a52f2832320538236a62 2>&1 | tail -5; git reset --mixed FETCH_HEAD 2>&1 | tail -2; git log --oneline -1 2>&1; git status --short | head",
    "sudo -n true && echo SUDO_OK; env | grep -i proxy; (timeout 20 curl -sI https://registry.npmjs.org/aria-icons | head -1); (timeout 20 curl -sI https://github.com | head -1); apt-cache policy nodejs 2>/dev/null | head -3",
    "(sudo apt-get update -qq 2>&1 | tail -3); apt-cache policy nodejs npm 2>/dev/null | head -8",
    "sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq nodejs npm >/tmp/apt.log 2>&1; echo apt=$?; node --version; npm --version; export NODE_USE_ENV_PROXY=1; sudo npm install -g bun@1.2.21 2>&1 | tail -3; bun --version",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1 && timeout 900 bun install 2>&1 | tail -15; echo rc=${PIPESTATUS[0]}",
    "cd <guest-path> && git status --short | head; export NODE_USE_ENV_PROXY=1; timeout 600 bun run cli:test 2>&1 | tail -25; echo rc=${PIPESTATUS[0]}",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1; timeout 120 bun run cli:dev -- search house 2>&1 | head -20; echo rc=${PIPESTATUS[0]}; echo ----; timeout 120 bun run cli:dev -- get lucide:house 2>&1 | head -12; echo rc=${PIPESTATUS[0]}; echo ----; timeout 120 bun run cli:dev -- doctor 2>&1 | head -20; echo rc=${PIPESTATUS[0]}",
    "cd <guest-path> && ls src; grep -rn \"registerTool\\|name: \\\"\" src/mcp*.ts src/*mcp* 2>/dev/null | head -30; grep -rln \"StdioServerTransport\" src | head",
    "cd <guest-path> && grep -n \"name\\|Tool\\|description\" src/server.ts | head -60",
    "cd <guest-path> && sed -n 28,40p src/server.ts; sed -n 69,80p src/server.ts; sed -n 160,170p src/server.ts",
    "cd <guest-path> && node -e 'const p=require(\"./package.json\");console.log(JSON.stringify({bin:p.bin,main:p.main,scripts:p.scripts,files:p.files},null,1))'; cd <guest-path> && export NODE_USE_ENV_PROXY=1 && timeout 300 bun run cli:build 2>&1 | tail -8; echo rc=${PIPESTATUS[0]}; ls packages/cli/dist 2>&1; git status --short",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1; ( printf '%s\\n' '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"t\",\"version\":\"1\"}}}' '{\"jsonrpc\":\"2.0\",\"method\":\"notifications/initialized\"}' '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/call\",\"params\":{\"name\":\"get_icon\",\"arguments\":{\"icon_id\":\"lucide:house\"}}}'; sleep 8 ) | timeout 30 node packages/cli/dist/index.js mcp 2>/tmp/mcp.err | cut -c1-400; echo rc=$?; head -c 500 /tmp/mcp.err",
    "cd <guest-path> && mkdir -p <guest-path> && cd <guest-path> && export NODE_USE_ENV_PROXY=1; timeout 120 node packages/cli/dist/index.js add house --framework vue --out-dir <guest-path> 2>&1 | head -20; echo rc=${PIPESTATUS[0]}; find <guest-path> -type f | head; cat <guest-path> 2>/dev/null | head -c 600",
    "cd <guest-path> && find . -path ./node_modules -prune -o -name 'house.vue' -print 2>/dev/null; find <guest-path> -print; echo ---; cat tmp/coldpass/outputs/icons-vue/house.vue 2>/dev/null | head -c 400",
    "cd <guest-path> && rm -rf ./tmp && rmdir <guest-path> 2>/dev/null; mkdir -p .coldpass && export NODE_USE_ENV_PROXY=1 && timeout 120 node packages/cli/dist/index.js add house --framework vue --out-dir .coldpass/manual-vue-icons 2>&1 | head -3; echo rc=${PIPESTATUS[0]}; cat .coldpass/manual-vue-icons/house.vue | head -c 200; echo; git status --short",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1 && timeout 600 bun run fetch:thesvg 2>&1 | tail -6; echo rc=${PIPESTATUS[0]}; timeout 900 bun run fetch:iconify -- --all > /tmp/iconify.log 2>&1; echo iconify_rc=$?; tail -5 /tmp/iconify.log",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1 && timeout 900 bun run generate-icons 2>&1 | tail -6; echo rc=${PIPESTATUS[0]}; cd <guest-path> && git status --short | head -20",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1 && (nohup bun run dev:web > /tmp/devweb.log 2>&1 &) ; for i in $(seq 1 60); do sleep 3; if curl -s -o /dev/null -w '%{http_code}' http://localhost:3001/ 2>/dev/null | grep -q 200; then echo ready_after=$((i*3))s; break; fi; done; tail -5 /tmp/devweb.log; curl -s \"http://localhost:3001/api/v1/search?q=house\" | head -c 600; echo; curl -s \"http://localhost:3001/api/v1/icon?id=lucide:house\" | head -c 300",
    "cat /tmp/devweb.log | head -60; echo; cd <guest-path> && cat package.json | head -30",
    "export NODE_USE_ENV_PROXY=1; sudo npm install -g node@22 2>&1 | tail -3; which -a node; node --version; /usr/local/bin/node --version",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1 && (nohup bun run dev:web > /tmp/devweb.log 2>&1 &) ; for i in $(seq 1 60); do sleep 3; c=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:3001/ 2>/dev/null); if [ \"$c\" = 200 ]; then echo ready_after=$((i*3))s; break; fi; done; echo code=$c; tail -4 /tmp/devweb.log; curl -s \"http://localhost:3001/api/v1/search?q=house\" | head -c 500; echo; curl -s \"http://localhost:3001/api/v1/icon?id=lucide:house\" | head -c 300",
    "grep -n \"Error\\|error\" /tmp/devweb.log | grep -v \"report this error\" | head -15; echo; grep -n \"ENOENT\\|Cannot\\|Failed\" /tmp/devweb.log | head -10",
    "pkill -f \"next dev\" ; pkill -f \"turbo -F web dev\"; pkill -f \"dev:web\"; sleep 3; (curl -s -o /dev/null -w '%{http_code}\\n' http://localhost:3001/ || true); pgrep -fa \"next|turbo\" | head -5; echo stopped",
    "for p in $(pgrep -f \"next-server|next dev|turbo\" 2>/dev/null); do ps -o pid=,args= -p $p; done | grep -v \"pgrep\" | head; (curl -s -o /dev/null -w '%{http_code}\\n' --max-time 5 http://localhost:3001/api/v1/collections || echo down)",
    "cd <guest-path> && export NODE_USE_ENV_PROXY=1; timeout 300 bun run check-types 2>&1 | tail -8; echo rc=${PIPESTATUS[0]}; echo ----; grep -rn \"setInterval\\|cron\\|schedule\\|--once\\|--now\\|webhook\\|watch(\" packages/cli/src apps/web/src 2>/dev/null | grep -v test | head; echo ----; grep -n \"| \\`get <id>\\`\\|Icon ids: \\|bun run cli:dev -- search house\\|| \\`add <names\\|cli:test\" README.md",
    "cd <guest-path> && git checkout -- bun.lock apps/web/icons/iconify/collections.json && rm -rf .coldpass/manual-vue-icons && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'\n{\"kind\":\"mcp\",\"argv\":[\"node\",\"packages/cli/dist/index.js\",\"mcp\"],\"cwd\":\"<guest-path>\",\"tool\":\"get_icon\",\"arguments\":{\"icon_id\":\"lucide:house\"},\"expected_text\":\"lucide-icons\"}\nEOF\ncat > .coldpass/claims.json <<'EOF'\n[\n{\"kind\":\"claim\",\"claim\":\"Icon ids use collection:name, and get_icon returns the icon from its set\",\"source\":\"Icon ids: `collection:name` (`lucide:house`, `tabler:arrow-up`, `thesvg:github`).\",\"input\":\"lucide:house\",\"expected\":\"icon from set lucide-icons\",\"probe_kind\":\"mcp\",\"argv\":[\"node\",\"packages/cli/dist/index.js\",\"mcp\"],\"tool\":\"get_icon\",\"arguments\":{\"icon_id\":\"lucide:house\"},\"expected_text\":\"lucide-icons\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"get prints SVG for an icon id\",\"source\":\"| `get <id>` | Print SVG or framework source |\",\"input\":\"lucide:house\",\"expected\":\"SVG markup\",\"probe_kind\":\"cli\",\"argv\":[\"bun\",\"run\",\"cli:dev\",\"--\",\"get\",\"lucide:house\"],\"expected_text\":\"<svg\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"search finds icons by query\",\"source\":\"bun run cli:dev -- search house\",\"input\":\"house\",\"expected\":\"lucide:house listed among matches\",\"probe_kind\":\"cli\",\"argv\":[\"bun\",\"run\",\"cli:dev\",\"--\",\"search\",\"house\"],\"expected_text\":\"lucide:house\",\"cwd\":\"<guest-path>\"},\n{\"kind\":\"claim\",\"claim\":\"add writes icon files into the repo\",\"source\":\"| `add <names\u2026>` | Write icon files into the repo |\",\"input\":\"house --framework vue --out-dir .coldpass/claim-add-vue\",\"expected\":\"house.vue is written\",\"probe_kind\":\"cli\",\"argv\":[\"node\",\"packages/cli/dist/index.js\",\"add\",\"house\",\"--framework\",\"vue\",\"--out-dir\",\".coldpass/claim-add-vue\"],\"expected_text\":\"house.vue\",\"cwd\":\"<guest-path>\"}\n]\nEOF\ncat > .coldpass/examples.json <<'EOF'\n[\n{\"kind\":\"example\",\"claim\":\"CLI test suite passes\",\"source\":\"README.md Run, build, version, publish (bun run cli:test)\",\"input\":\"none\",\"expected\":\"all CLI tests pass\",\"argv\":[\"bun\",\"run\",\"cli:test\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"12 pass\"},\n{\"kind\":\"example\",\"claim\":\"CLI bundle builds\",\"source\":\"README.md Run, build, version, publish (bun run cli:build)\",\"input\":\"none\",\"expected\":\"dist/index.js bundle written\",\"argv\":[\"bun\",\"run\",\"cli:build\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"index.js\"},\n{\"kind\":\"example\",\"claim\":\"type checks pass\",\"source\":\"README.md Run, build, version, publish (bun run check-types)\",\"input\":\"none\",\"expected\":\"type check task succeeds\",\"argv\":[\"bun\",\"run\",\"check-types\"],\"cwd\":\"<guest-path>\",\"env\":{},\"expected_text\":\"1 successful\"}\n]\nEOF\ncat > .coldpass/cycles.json <<'EOF'\n{\"detected\":false,\"reason\":\"Inspected README.md, packages/cli/src and apps/web/src for cron, scheduling, loops, webhooks, --once and --now. The CLI and MCP server are one-shot request/response processes; the only setInterval is a UI animation in apps/web/src/components/morph-playground.tsx. CI release workflow schedules are not product cycles.\",\"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> && export NODE_USE_ENV_PROXY=1 && <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay 2>&1 | tail -60; echo rc=${PIPESTATUS[0]}",
    "cd <guest-path> && cat > .coldpass/report.json <<'EOF'\n{\"outcome\":\"working\",\"fault_owner\":null,\"operation\":\"Run the aria-icons CLI and its stdio MCP server from the pinned source, search and fetch an icon (get_icon returns lucide:house SVG with set lucide-icons), write an icon file with add, and call the local website /api/v1 search API.\",\"operation_scope\":\"Pinned commit c1d22bd on Ubuntu 24.04 (x86_64) with sudo. Requires Node >=18 for the CLI and Node >=20.9 for the website, Bun 1.2.21, and network access to the aria-icons API, GitHub and the Iconify/theSVG icon sources. The CLI operations run against the live production API. The homepage at localhost:3001 was not verified because it returns HTTP 500 (see deviations). No browser was used.\",\"steps\":[\"git init; git remote add origin https://github.com/LeulAria/Aria-Icons; git fetch --depth 1 origin c1d22bdca5a83921f435a52f2832320538236a62; git reset --mixed FETCH_HEAD\",\"sudo apt-get install -y nodejs npm (Node 18.19.1)\",\"sudo npm install -g bun@1.2.21\",\"bun install\",\"bun run cli:test (12 pass)\",\"bun run cli:dev -- search house\",\"bun run cli:dev -- get lucide:house\",\"bun run cli:dev -- doctor\",\"bun run cli:build\",\"node packages/cli/dist/index.js mcp (JSON-RPC tools/call get_icon lucide:house)\",\"node packages/cli/dist/index.js add house --framework vue --out-dir .coldpass/manual-vue-icons\",\"bun run check-types\",\"cd apps/web && bun run fetch:thesvg && bun run fetch:iconify -- --all && bun run generate-icons\",\"sudo npm install -g node@22 (Node 22.23.4 for Next.js)\",\"bun run dev:web; curl http://localhost:3001/api/v1/search?q=house and /api/v1/icon?id=lucide:house\",\"stopped the dev server\"],\"deviations\":[\"Ubuntu nodejs 18.19.1 is below Next.js 16's required Node 20.9; installed Node 22.23.4 via sudo npm install -g node@22 (NODE_USE_ENV_PROXY=1) for the website step, and used Node 18 for the CLI.\",\"The README gives no bun installer; installed bun@1.2.21 (the packageManager pin) with sudo npm install -g bun@1.2.21 rather than curl|sh from bun.sh.\",\"bun install rewrote bun.lock; restored it with git checkout to keep the pinned tree clean. node_modules and generated files are untracked.\",\"Iconify fetch rewrote tracked file apps/web/icons/iconify/collections.json; restored with git checkout. Generated icon JSON and icons-meta files are untracked and kept.\",\"Website homepage http://localhost:3001 returns HTTP 500 under bun run dev:web: Turbopack panics with 'Failed to write app endpoint /(browse)/page' (panic logs written to /tmp/next-panic-*.log). The /api/v1/search and /api/v1/icon routes work. Not fixed (product source must not be edited); the browser page is not verified.\",\"aria-icons add with an absolute --out-dir (/tmp/...) wrote the file under the current directory (tmp/coldpass/outputs/icons-vue/house.vue) instead. Used a relative --out-dir under .coldpass instead and removed the stray workspace/tmp directory I created.\",\"Not run: npx -y aria-icons@latest setup and curl install.sh from the CLI README, because they write editor MCP configuration into the user's home and need consent. The MCP probe runs the built source bin instead of the npm package.\",\"bun run cli:dev prints a '$ bun run ...' echo line to stdout, so the MCP probe uses the built dist/index.js bin for a clean stdio stream.\",\"Turbo printed a telemetry notice on first run; I did not change telemetry settings.\"],\"stuck_step\":null,\"main_blocker\":null,\"plain_failure\":null,\"suggested_fix\":\"Fix the Turbopack panic on the /(browse) route in the Next.js dev server (or document the Next/Turbopack version needed) and make aria-icons add treat absolute --out-dir paths as absolute. Document that the website needs Node 20.9+ and the CLI needs Node 18+.\"}\nEOF\npython3 -I -c \"import json;d=json.load(open('.coldpass/report.json'));print(d['outcome'],d['fault_owner'])\"; ls -la .coldpass; <env-var>=<guest-path> timeout 900 python3 -I <guest-path> --validate --replay 2>&1 | python3 -I -c \"import sys,json;t=sys.stdin.read();print(t[:300]);d=json.loads(t[:t.rfind('}')+1]) if t.strip().startswith('{') else None;print('VALID', d and d.get('valid'), d and d.get('problems'), d and d.get('replay',{}).get('status'))\" ; git status --short"
  ],
  "stuck_step": null,
  "error_excerpt": null,
  "what_it_did": "Run the aria-icons CLI and its stdio MCP server from the pinned source, search and fetch an icon (get_icon returns lucide:house SVG with set lucide-icons), write an icon file with add, and call the local website /api/v1 search API.",
  "suggested_fix": null,
  "tokens_in": 913366,
  "tokens_out": 23237,
  "cost_usd": 0.03157216000000001,
  "usage_complete": true,
  "checks": [
    {
      "check": "operation",
      "status": "PASS",
      "details": {
        "working": true,
        "argv": [
          "node",
          "packages/cli/dist/index.js",
          "mcp"
        ],
        "kind": "mcp",
        "serverInfo": {
          "name": "aria-icons",
          "version": "0.1.2"
        },
        "tools": [
          "search_icons",
          "get_icon",
          "get_icon_svg",
          "get_icon_component",
          "get_icons",
          "list_collections",
          "find_similar_icons",
          "find_equivalent_icon",
          "recommend_icons",
          "get_recent_icons",
          "add_icon_to_project",
          "scan_project_icons",
          "list_icons",
          "doctor_project_icons",
          "suggest_icon_set"
        ],
        "tool_schema_bytes": 6350,
        "tool_result": {
          "content": [
            {
              "type": "text",
              "text": "# lucide:house\n\n**Set:** lucide-icons  **Style:** line\n\n## SVG\n\n```svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"/><path d=\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/></svg>\n```\n\n## React\n\n```tsx\n// lucide:house\nimport type { SVGProps } from \"react\";\n\nexport function House(props: SVGProps<SVGSVGElement>) {\n  return (\n    <svg {...props} xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n    <path d=\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"/>\n    <path d=\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/>\n  </svg>\n  );\n}\n\n```\n\n## Vue\n\n```vue\n<!-- lucide:house -->\n<template>\n  <svg v-bind=\"$attrs\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n    <path d=\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"/>\n    <path d=\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/>\n  </svg>\n</template>\n\n```"
            }
          ],
          "isError": false
        },
        "tool_result_checked": true,
        "scope": "product operation"
      }
    }
  ],
  "safety": {
    "version": "z2x-1",
    "rules_version": "z2x-1",
    "summary": "Review signals: 1 connection review, 1 download and execute, 172 hardcoded secret, 123 known vulnerability, 1 outside write, 1 sensitive read. 8 static matches retained as context.",
    "expected": "Reviewed as expected for a test run: read only test files inside the test workspace or its temporary folders; resolver address lookups that send no data; the Bun runtime wrote its own trace marker.",
    "findings": [
      {
        "kind": "connection-review",
        "count": 1,
        "note": "Repository processes attempted these non-loopback connections; proxies can hide the final hostname.",
        "location_count": 32,
        "process_count": 34
      },
      {
        "kind": "download-and-execute",
        "count": 1,
        "note": "Source contains download and execute; review its purpose.",
        "location_count": 1,
        "path": "apps/web/public/install.sh"
      },
      {
        "kind": "hardcoded-secret",
        "count": 172,
        "note": "Gitleaks found a possible hardcoded secret; value withheld.",
        "location_count": 2
      },
      {
        "kind": "known-vulnerability",
        "count": 123,
        "note": "OSV reports a known vulnerability in this dependency version.",
        "location_count": 24
      },
      {
        "kind": "outside-write",
        "count": 1,
        "note": "Repository processes attempted these writes outside documented output/cache paths.",
        "location_count": 241,
        "process_count": 5
      },
      {
        "kind": "sensitive-read",
        "count": 1,
        "note": "A repository process attempted to read this sensitive path.",
        "location_count": 1,
        "path": "<guest-path>",
        "process_count": 1,
        "processes": [
          {
            "created_in_run": false,
            "executable": "/usr/local/bin/bun",
            "owner": "repo",
            "path": "<guest-path>",
            "pid": "8193",
            "source": "<guest-path>",
            "succeeded": false,
            "syscall": "openat",
            "trace": "9.trace"
          }
        ]
      }
    ],
    "context": [
      {
        "kind": "hardcoded-secret",
        "count": 6,
        "note": "Gitleaks found a possible hardcoded secret; value withheld.",
        "location_count": 6
      }
    ],
    "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=LeulAria--Aria-Icons-claude-haiku-5-5-1792812099601236203",
    "evidence_file": "/data/safety/LeulAria--Aria-Icons-claude-haiku-5-5-1792812099601236203.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": "c1d22bdca5a83921f435a52f2832320538236a62",
    "url": "https://github.com/LeulAria/Aria-Icons"
  },
  "purpose": "test_rerun",
  "profile": {
    "model": "claude-haiku-5-5",
    "reasoning": "low"
  },
  "fault": {
    "owner": null,
    "status": "resolved",
    "reason": null
  },
  "fix_id": null,
  "verifies_run_id": "LeulAria--Aria-Icons-claude-haiku-5-5-1792804374694939063",
  "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": "local",
  "needs": [],
  "needs_which": null,
  "agent_interface": [
    "mcp"
  ],
  "license": "MIT",
  "repo_url": "https://github.com/LeulAria/Aria-Icons",
  "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, packages/cli/src and apps/web/src for cron, scheduling, loops, webhooks, --once and --now. The CLI and MCP server are one-shot request/response processes; the only setInterval is a UI animation in apps/web/src/components/morph-playground.tsx. CI release workflow schedules are not product cycles.",
      "evidence": "Inspected README.md, packages/cli/src and apps/web/src for cron, scheduling, loops, webhooks, --once and --now. The CLI and MCP server are one-shot request/response processes; the only setInterval is a UI animation in apps/web/src/components/morph-playground.tsx. CI release workflow schedules are not product cycles.",
      "command": ""
    }
  ],
  "claims": [
    {
      "kind": "claim",
      "claim": "Icon ids use collection:name, and get_icon returns the icon from its set",
      "source": "Icon ids: `collection:name` (`lucide:house`, `tabler:arrow-up`, `thesvg:github`).",
      "input": "{\"tool\": \"get_icon\", \"arguments\": {\"icon_id\": \"lucide:house\"}}",
      "expected": "icon from set lucide-icons",
      "command": "node packages/cli/dist/index.js mcp tools/call {\"tool\": \"get_icon\", \"arguments\": {\"icon_id\": \"lucide:house\"}}",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: lucide-icons",
      "evidence": "lucide-icons  **Style:** line\\n\\n## SVG\\n\\n```svg\\n<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\\\"/><path d=\\\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\\\"/></svg>\\n```\\n\\n## React\\n\\n```tsx\\n// lucide:house\\nimport type { SVGProps } from \\\"react\\\";\\n\\nexport function House(props: SVGProps<SVGSVGElement>) {\\n  return (\\n    <svg {...p",
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "get prints SVG for an icon id",
      "source": "| `get <id>` | Print SVG or framework source |",
      "input": "lucide:house",
      "expected": "SVG markup",
      "command": "bun run cli:dev -- get lucide:house",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: <svg",
      "evidence": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"/><path d=\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"/></svg>\n$ bun run --cwd packages/cli dev get lucide:house\n$ bun run src/index.ts get lucide:house\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "search finds icons by query",
      "source": "bun run cli:dev -- search house",
      "input": "house",
      "expected": "lucide:house listed among matches",
      "command": "bun run cli:dev -- search house",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: lucide:house",
      "evidence": "lucide:house\n  bubbles:house\n  atlas-icons:house\n  famfamfam-silk:house\n  game-icon-pack:house\n  koobiq-icons:house\n  next-icons:house\n  lawnicons:house\n  msr-icons:house\n  semantic-ui-icons:house\n  brightlayer-icons:house\n  moving-icons:house\n  themeisle-icons:house\n  olicons:house\n  small-n-flat:house\n  aksel-icons:house\n  mulberry-symbols:house\n  qgis-icons:house\n  reicon-glass:house\n  iconimate:house\n  mx-icons:house\n  albybarber-bettercons:house\n  andrsrxn-icons:house\n  luceviasicons-luceviasicons:house\n  lyderhansen-splunk-icon-library:house\n  udir-design-icons:house\n  cfpb-cfpb-design-s",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    },
    {
      "kind": "claim",
      "claim": "add writes icon files into the repo",
      "source": "| `add <names\u2026>` | Write icon files into the repo |",
      "input": "house --framework vue --out-dir .coldpass/claim-add-vue",
      "expected": "house.vue is written",
      "command": "node packages/cli/dist/index.js add house --framework vue --out-dir .coldpass/claim-add-vue",
      "verdict": "yes",
      "outcome": "Real input produced the expected result: house.vue",
      "evidence": "house.vue  lucide:house\n\nImport\n  import { House } from \"./.coldpass/claim-add-vue\"\n\nUsage\n  <House />\n",
      "returncode": 0,
      "source_checked": true,
      "source_file": "README.md"
    }
  ],
  "claims_note": null,
  "example_checks": [
    {
      "kind": "example",
      "claim": "CLI test suite passes",
      "source": "README.md Run, build, version, publish (bun run cli:test)",
      "input": "none",
      "command": "bun run cli:test",
      "evidence": "s [5.00ms]\n(pass) writeIconFile barrel > force overwrites an existing file [5.00ms]\n\nsrc/agents.test.ts:\n(pass) getAgentConfigs > returns array of agent configs [1.00ms]\n(pass) getAgentConfigs > includes expected agents [1.00ms]\n(pass) getAgentConfigs > each config has required properties [1.00ms]\n(pass) getAgentConfigs > cursor config path is correct [1.00ms]\n(pass) getMcpServerConfig > stdio config uses npx aria-icons\n(pass) getMcpServerConfig > http config uses a url\n(pass) getOpenCodeMcpConfig > local command array\n\n 12 pass\n 0 fail\n 57 expect() calls\nRan 12 tests across 3 files. [77.00ms]",
      "deferred": false,
      "expected": "all CLI tests pass",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "CLI bundle builds",
      "source": "README.md Run, build, version, publish (bun run cli:build)",
      "input": "none",
      "command": "bun run cli:build",
      "evidence": "Bundled 271 modules in 255ms\n\n  index.js  0.55 MB  (entry point)\n\n$ bun run --cwd packages/cli build\n$ bun build ./src/index.ts --outdir dist --target node --minify --banner:'#!/usr/bin/env node' && chmod +x dist/index.js",
      "deferred": false,
      "expected": "dist/index.js bundle written",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    },
    {
      "kind": "example",
      "claim": "type checks pass",
      "source": "README.md Run, build, version, publish (bun run check-types)",
      "input": "none",
      "command": "bun run check-types",
      "evidence": "ath is correct [2.00ms]\naria-icons:check-types: (pass) getMcpServerConfig > stdio config uses npx aria-icons [1.00ms]\naria-icons:check-types: (pass) getMcpServerConfig > http config uses a url\naria-icons:check-types: (pass) getOpenCodeMcpConfig > local command array [1.00ms]\naria-icons:check-types: \naria-icons:check-types:  12 pass\naria-icons:check-types:  0 fail\naria-icons:check-types:  57 expect() calls\naria-icons:check-types: Ran 12 tests across 3 files. [186.00ms]\n\n Tasks:    1 successful, 1 total\nCached:    1 cached, 1 total\n  Time:    461ms >>> FULL TURBO\n\n$ turbo check-types\nturbo 2.6.3",
      "deferred": false,
      "expected": "type check task succeeds",
      "returncode": 0,
      "verdict": "yes",
      "outcome": "command completed successfully"
    }
  ],
  "does_what_it_says": "yes",
  "maintenance": {
    "archived": false,
    "commits_90d": 68,
    "last_commit_at": "2026-10-17T09:20:06Z",
    "last_release_at": "2026-08-29T12:57:55Z",
    "median_reply_hours": 48.5,
    "merged_prs_90d": 9,
    "note": "actively maintained: last commit 6 days ago; 68 commits and 9 merged PRs in 90 days; 0 open issues, 5 open PRs; 2 of 2 recent threads got a maintainer reply, median first reply 48.5h; latest release 2026-08-29",
    "open_issues": 0,
    "open_prs": 5,
    "reply_share": 1.0,
    "reply_threads": 2,
    "verdict": "maintained"
  },
  "maintenance_verdict": "maintained",
  "maintenance_note": "actively maintained: last commit 6 days ago; 68 commits and 9 merged PRs in 90 days; 0 open issues, 5 open PRs; 2 of 2 recent threads got a maintainer reply, median first reply 48.5h; latest release 2026-08-29",
  "maintained": "active",
  "maintained_note": "last commit 6 days ago; 0 open issues, 2 answered or closed",
  "last_commit_at": "2026-10-17T09:20:06Z",
  "last_release_at": "2026-08-29T12:57:55Z",
  "open_issues": 0,
  "answered_issues": 2,
  "platforms_claimed": [
    "linux"
  ],
  "topic": "mcp-server",
  "agent_interfaces": [
    {
      "interface": "mcp",
      "evidence": "independent checker",
      "observed": true,
      "operation_checked": true
    },
    {
      "interface": "cli",
      "evidence": "README metadata",
      "observed": false,
      "operation_checked": false
    }
  ],
  "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": {
    "tool_count": 15,
    "schema_bytes": 6350,
    "tokens_approx": 1588,
    "estimate_method": "ceil(compact UTF-8 tools/list JSON bytes / 4)",
    "scope": "returned tools/list page only; excludes client framing and tool results"
  },
  "tested_at": "2026-10-24T03:53:12.751093+00:00",
  "tested_commit": "c1d22bdca5a83921f435a52f2832320538236a62",
  "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": "LeulAria/Aria-Icons",
    "source": "https://github.com/LeulAria/Aria-Icons",
    "commit": "c1d22bdca5a83921f435a52f2832320538236a62",
    "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": "c1d22bdca5a83921f435a52f2832320538236a62",
      "url": "https://github.com/LeulAria/Aria-Icons"
    },
    "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 aria-icons CLI and its stdio MCP server from the pinned source, search and fetch an icon (get_icon returns lucide:house SVG with set lucide-icons), write an icon file with add, and call the local website /api/v1 search API.",
    "operation_scope": "product operation",
    "hosting": null,
    "kind": "mcp",
    "test_version": "readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9",
    "evidence_version": null
  },
  "transcript_url": null,
  "report_url": "/reports/LeulAria--Aria-Icons-claude-haiku-5-5-1792812099601236203.json"
}
