{"id":"kud1Ev7pMiC23prshvuxGg","status":"done","kind":"skill","source":"clawhub","target":"clawhub:obd2-code-decoder","name":"obd2-code-decoder","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.330935Z","finished_at":"2026-10-26T17:22:48.061415Z","report_url":"https://detonationlabs.com/r/kud1Ev7pMiC23prshvuxGg","progress":[{"phase":"scripts","label":"baseline","status":"ok","duration":0.9,"new":[],"findings":[],"note":""},{"phase":"scripts","label":"guided:LC_MESSAGES","status":"ok","duration":1.8,"new":[],"findings":[],"note":""},{"phase":"scripts","label":"docs:P0171 P0174","status":"ok","duration":2.0,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"baseline","status":"ok","duration":4.7,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"guided:LC_MESSAGES","status":"ok","duration":8.1,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"ci-github","status":"ok","duration":6.9,"new":[],"findings":[],"note":""},{"phase":"llm","label":"baseline","status":"ok","duration":20.2,"new":[],"findings":[],"note":"8 model steps, 8 commands"}],"error":null,"report":{"engine":"detonator 0.5.1","generated":"2026-10-26T17:22:47Z","target":{"name":"obd2-code-decoder","sha256":"247ac1ea6274326e342f5c907237738efd4ef0b353487b9f24d9ff00d2549549","files":7,"scripts":["scripts/obd2_decoder.py"],"declared":{},"trigger_hints":[],"kind":"skill","source":"clawhub:obd2-code-decoder"},"verdict":"NO MALICIOUS BEHAVIOR OBSERVED","observed":{"network":[],"files_written":[],"secrets_read":[],"commands":[],"exfiltration":[]},"findings":[],"exploration":{"runs":[{"phase":"scripts","target":"scripts/obd2_decoder.py","label":"baseline","status":"ok","duration":0.911,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"scripts","target":"scripts/obd2_decoder.py","label":"guided:LC_MESSAGES","status":"ok","duration":1.783,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"scripts","target":"scripts/obd2_decoder.py","label":"docs:P0171 P0174","status":"ok","duration":1.997,"new_signatures":[],"findings":0,"note":"","commands":[],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"python3 <skill>/scripts/obd2_decoder.py P0171 P0174","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"baseline","status":"ok","duration":4.749,"new_signatures":[],"findings":0,"note":"","commands":["python3 scripts/obd2_decoder.py P0171 P0174\npython3 scripts/obd2_decoder.py P0420\npython3 scripts/obd2_decoder.py --short P0300\npython3 scripts/obd2_decoder.py --list-system evap"],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c cd skill && python3 scripts/obd2_decoder.py P0171 P0174\np...","flag":"","children":[{"kind":"proc","label":"python3 scripts/obd2_decoder.py P0171 P0174","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py P0420","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py --short P0300","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py --list-system evap","flag":"","children":[],"hot":false}],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"guided:LC_MESSAGES","status":"ok","duration":8.104,"new_signatures":[],"findings":0,"note":"","commands":["python3 scripts/obd2_decoder.py P0171 P0174\npython3 scripts/obd2_decoder.py P0420\npython3 scripts/obd2_decoder.py --short P0300\npython3 scripts/obd2_decoder.py --list-system evap"],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c cd skill && python3 scripts/obd2_decoder.py P0171 P0174\np...","flag":"","children":[{"kind":"proc","label":"python3 scripts/obd2_decoder.py P0171 P0174","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py P0420","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py --short P0300","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py --list-system evap","flag":"","children":[],"hot":false}],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"ci-github","status":"ok","duration":6.863,"new_signatures":[],"findings":0,"note":"","commands":["python3 scripts/obd2_decoder.py P0171 P0174\npython3 scripts/obd2_decoder.py P0420\npython3 scripts/obd2_decoder.py --short P0300\npython3 scripts/obd2_decoder.py --list-system evap"],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c cd skill && python3 scripts/obd2_decoder.py P0171 P0174\np...","flag":"","children":[{"kind":"proc","label":"python3 scripts/obd2_decoder.py P0171 P0174","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py P0420","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py --short P0300","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py --list-system evap","flag":"","children":[],"hot":false}],"hot":false}],"truncated":0}},{"phase":"llm","target":"SKILL.md","label":"baseline","status":"ok","duration":20.238,"new_signatures":[],"findings":0,"note":"8 model steps, 8 commands","commands":["ls -la; echo ---; ls -la skill; echo ---; ls -la skill/scripts 2>/dev/null","cd skill; cat README.md; echo ---; ls references; echo ---; head -80 scripts/obd2_decoder.py; echo ---; cat ../README.md ../package.json; ls ../src","cd skill; cat README.md; echo ---; ls references; echo ---; sed -n 80,400p scripts/obd2_decoder.py","cd skill; cat README.md; echo ---; ls references; echo ---; sed -n 1,80p scripts/obd2_decoder.py","cd skill; cat README.md; echo ---; ls references; echo ---; sed -n 1,60p scripts/obd2_decoder.py","cd skill; sed -n 60,200p scripts/obd2_decoder.py","cd skill; sed -n 200,260p scripts/obd2_decoder.py; echo ---; cat references/code-knowledge.md | head -60","cd skill; python3 scripts/obd2_decoder.py --help; echo \"=== exit $?\"; python3 scripts/obd2_decoder.py P0171 P0174 P0300"],"agent_reply":"The skill is a decoder script. Let me verify it runs, then use it on a realistic scan.","graph":{"roots":[{"kind":"proc","label":"bash -c ls -la; echo ---; ls -la skill; echo ---; ls -la skill/sc...","flag":"","children":[{"kind":"proc","label":"ls -la","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la skill","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la skill/scripts","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; cat README.md; echo ---; ls references; echo --...","flag":"","children":[{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls references","flag":"","children":[],"hot":false},{"kind":"proc","label":"head -80 scripts/obd2_decoder.py","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat ../README.md ../package.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls ../src","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; cat README.md; echo ---; ls references; echo --...","flag":"","children":[{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls references","flag":"","children":[],"hot":false},{"kind":"proc","label":"sed -n 80,400p scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; cat README.md; echo ---; ls references; echo --...","flag":"","children":[{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls references","flag":"","children":[],"hot":false},{"kind":"proc","label":"sed -n 1,80p scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; cat README.md; echo ---; ls references; echo --...","flag":"","children":[{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls references","flag":"","children":[],"hot":false},{"kind":"proc","label":"sed -n 1,60p scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; sed -n 60,200p scripts/obd2_decoder.py","flag":"","children":[{"kind":"proc","label":"sed -n 60,200p scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; sed -n 200,260p scripts/obd2_decoder.py; echo -...","flag":"","children":[{"kind":"proc","label":"sed -n 200,260p scripts/obd2_decoder.py","flag":"","children":[],"hot":false},{"kind":"proc","label":"head -60","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat references/code-knowledge.md","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; python3 scripts/obd2_decoder.py --help; echo \"=...","flag":"","children":[{"kind":"proc","label":"python3 scripts/obd2_decoder.py --help","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py P0171 P0174 P0300","flag":"","children":[],"hot":false}],"hot":false}],"truncated":0}}],"stopped":"scripts/scripts/obd2_decoder.py: coverage plateau (2 runs with no new behavior); obedient: coverage plateau (2 runs with no new behavior); llm: variants exhausted","model_usage":{"prompt_tokens":44294,"completion_tokens":576,"llm_runs":1}},"surface":{},"startup":{},"partial_scan":"","note":"Observed behavior only. A clean result does not prove a package is safe.","summary":"We ran it 7 times, with a normal setup, LC_MESSAGES set, docs:P0171 P0174 and a GitHub Actions environment. 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":"247ac1ea6274326e342f5c907237738efd4ef0b353487b9f24d9ff00d2549549","benign_hosts":[]},"coverage":{"runs":7,"phases":["llm","obedient","scripts"],"environments":["baseline","guided:LC_MESSAGES","docs:P0171 P0174","ci-github"],"tool_calls":0,"model_runs":1,"stopped":"scripts/scripts/obd2_decoder.py: coverage plateau (2 runs with no new behavior); obedient: coverage plateau (2 runs with no new behavior); llm: variants exhausted"},"tree":{"run":"llm:baseline","roots":[{"kind":"proc","label":"bash -c ls -la; echo ---; ls -la skill; echo ---; ls -la skill/sc...","flag":"","children":[{"kind":"proc","label":"ls -la","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la skill","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la skill/scripts","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; cat README.md; echo ---; ls references; echo --...","flag":"","children":[{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls references","flag":"","children":[],"hot":false},{"kind":"proc","label":"head -80 scripts/obd2_decoder.py","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat ../README.md ../package.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls ../src","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; cat README.md; echo ---; ls references; echo --...","flag":"","children":[{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls references","flag":"","children":[],"hot":false},{"kind":"proc","label":"sed -n 80,400p scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; cat README.md; echo ---; ls references; echo --...","flag":"","children":[{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls references","flag":"","children":[],"hot":false},{"kind":"proc","label":"sed -n 1,80p scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; cat README.md; echo ---; ls references; echo --...","flag":"","children":[{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls references","flag":"","children":[],"hot":false},{"kind":"proc","label":"sed -n 1,60p scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; sed -n 60,200p scripts/obd2_decoder.py","flag":"","children":[{"kind":"proc","label":"sed -n 60,200p scripts/obd2_decoder.py","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; sed -n 200,260p scripts/obd2_decoder.py; echo -...","flag":"","children":[{"kind":"proc","label":"sed -n 200,260p scripts/obd2_decoder.py","flag":"","children":[],"hot":false},{"kind":"proc","label":"head -60","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat references/code-knowledge.md","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cd skill; python3 scripts/obd2_decoder.py --help; echo \"=...","flag":"","children":[{"kind":"proc","label":"python3 scripts/obd2_decoder.py --help","flag":"","children":[],"hot":false},{"kind":"proc","label":"python3 scripts/obd2_decoder.py P0171 P0174 P0300","flag":"","children":[],"hot":false}],"hot":false}],"preview":[],"truncated":0},"flow":{"package":{"name":"obd2-code-decoder","version":"","files":7,"kind":"skill"},"install":[],"has_install":false,"run":["python3 <skill>/scripts/obd2_decoder.py","python3 <skill>/scripts/obd2_decoder.py P0171 P0174","python3 scripts/obd2_decoder.py P0171 P0174","python3 scripts/obd2_decoder.py P0420","python3 scripts/obd2_decoder.py --short P0300","python3 scripts/obd2_decoder.py --list-system evap"],"tools":[],"startup":"","partial":"","tool_calls":0,"agent_runs":1,"network":[],"secrets":[],"files":[],"has_graph":true},"confidence":""}}