{"id":"6PFyDyb32Dur3vfLhW47ng","status":"done","kind":"skill","source":"clawhub","target":"clawhub:dataify-ai-web-extract","name":"dataify-ai-web-extract","version":"1.0.0","verdict":"NO MALICIOUS BEHAVIOR OBSERVED","top_finding":null,"findings":0,"critical":0,"public":true,"confidence":null,"created_at":"2026-10-26T17:15:52.499288Z","finished_at":"2026-10-26T19:08:21.939797Z","report_url":"https://detonationlabs.com/r/6PFyDyb32Dur3vfLhW47ng","progress":[{"phase":"scripts","label":"baseline","status":"ok","duration":1.9,"new":[],"findings":[],"note":""},{"phase":"scripts","label":"ci-github","status":"ok","duration":1.6,"new":[],"findings":[],"note":""},{"phase":"scripts","label":"production","status":"ok","duration":2.3,"new":[],"findings":[],"note":""},{"phase":"scripts","label":"baseline","status":"ok","duration":1.4,"new":[],"findings":[],"note":""},{"phase":"scripts","label":"guided:LC_MESSAGES","status":"ok","duration":1.5,"new":[],"findings":[],"note":""},{"phase":"scripts","label":"docs:--url","status":"ok","duration":1.4,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"baseline","status":"ok","duration":3.1,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"guided:AI_WEB_API_BASE_URL,DATAIFY_API_TOKEN,LC_MESSAGES","status":"ok","duration":3.4,"new":[],"findings":[],"note":""}],"error":null,"report":{"engine":"detonator 0.5.1","generated":"2026-10-26T19:08:20Z","target":{"name":"ai-web-extract","sha256":"65b9035ed751a21f6b5f7b00e207508064a9bce0130f968fbe40e1d03c7f79ed","files":8,"scripts":["scripts/ai_web_client.py","scripts/extract.py"],"declared":{},"trigger_hints":["production","token"],"kind":"skill","source":"clawhub:dataify-ai-web-extract"},"verdict":"NO MALICIOUS BEHAVIOR OBSERVED","observed":{"network":[],"files_written":[],"secrets_read":[],"commands":[],"exfiltration":[]},"findings":[],"exploration":{"runs":[{"phase":"scripts","target":"scripts/ai_web_client.py","label":"baseline","status":"ok","duration":1.855,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/ai_web_client.py","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"scripts","target":"scripts/ai_web_client.py","label":"ci-github","status":"ok","duration":1.633,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/ai_web_client.py","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"scripts","target":"scripts/ai_web_client.py","label":"production","status":"ok","duration":2.324,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/ai_web_client.py","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"scripts","target":"scripts/extract.py","label":"baseline","status":"ok","duration":1.436,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/extract.py","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"scripts","target":"scripts/extract.py","label":"guided:LC_MESSAGES","status":"ok","duration":1.47,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/extract.py","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"scripts","target":"scripts/extract.py","label":"docs:--url","status":"ok","duration":1.394,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/extract.py --url","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"baseline","status":"ok","duration":3.104,"new_signatures":[],"findings":0,"note":"","commands":["python3 scripts/extract.py --url \"https://example.com/article\" --format markdown --dry-run\npython3 scripts/extract.py --url \"https://example.com/article\" --format markdown --format links"],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c cd skill && python3 scripts/extract.py --url \"https://exa...","flag":"","children":[{"kind":"proc","label":"python3 scripts/extract.py --url https://example.com/article --format markdown","flag":"","children":[],"hot":false,"count":2}],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"guided:AI_WEB_API_BASE_URL,DATAIFY_API_TOKEN,LC_MESSAGES","status":"ok","duration":3.414,"new_signatures":[],"findings":0,"note":"","commands":["python3 scripts/extract.py --url \"https://example.com/article\" --format markdown --dry-run\npython3 scripts/extract.py --url \"https://example.com/article\" --format markdown --format links"],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c cd skill && python3 scripts/extract.py --url \"https://exa...","flag":"","children":[{"kind":"proc","label":"python3 scripts/extract.py --url https://example.com/article --format markdown","flag":"","children":[],"hot":false,"count":2}],"hot":false}],"truncated":0}}],"stopped":"scripts/scripts/ai_web_client.py: coverage plateau (2 runs with no new behavior); scripts/scripts/extract.py: coverage plateau (2 runs with no new behavior); obedient: run budget spent; llm: run budget spent","model_usage":{"prompt_tokens":0,"completion_tokens":0,"llm_runs":0}},"surface":{},"startup":{},"partial_scan":"","note":"Observed behavior only. A clean result does not prove a package is safe.","summary":"We ran it 8 times, with a normal setup, a GitHub Actions environment, a production environment, LC_MESSAGES set and docs:--url. It made no network connections. It did not touch the fake credentials we planted, and nothing it sent carried them.","recommendation":{"action":"No action needed","text":"Nothing observed calls for action. This is evidence, not a guarantee."},"iocs":{"hosts":[],"ips":[],"sha256":"65b9035ed751a21f6b5f7b00e207508064a9bce0130f968fbe40e1d03c7f79ed","benign_hosts":[]},"coverage":{"runs":8,"phases":["obedient","scripts"],"environments":["baseline","ci-github","production","guided:LC_MESSAGES","docs:--url","guided:AI_WEB_API_BASE_URL,DATAIFY_API_TOKEN,LC_MESSAGES"],"tool_calls":0,"model_runs":0,"stopped":"scripts/scripts/ai_web_client.py: coverage plateau (2 runs with no new behavior); scripts/scripts/extract.py: coverage plateau (2 runs with no new behavior); obedient: run budget spent; llm: run budget spent"},"tree":{"run":"scripts:baseline","roots":[{"kind":"proc","label":"python3 <skill>/scripts/ai_web_client.py","flag":"","children":[],"hot":false}],"preview":[],"truncated":0},"flow":{"package":{"name":"ai-web-extract","version":"","files":8,"kind":"skill"},"install":[],"has_install":false,"run":["python3 <skill>/scripts/ai_web_client.py","python3 <skill>/scripts/extract.py","python3 <skill>/scripts/extract.py --url","python3 scripts/extract.py --url https://example.com/article --format markdown"],"tools":[],"startup":"","partial":"","tool_calls":0,"agent_runs":0,"network":[],"secrets":[],"files":[],"has_graph":true},"confidence":""}}