{"id":"DQTjMQY9t5EzQ4ZAjclxtg","status":"done","kind":"skill","source":"clawhub","target":"clawhub:taplio-linkedin-post-performance-critic","name":"taplio-linkedin-post-performance-critic","version":"1.0.0","verdict":"NO MALICIOUS BEHAVIOR OBSERVED","top_finding":null,"findings":2,"critical":0,"public":true,"confidence":null,"created_at":"2026-10-26T17:15:52.473128Z","finished_at":"2026-10-26T18:56:01.328086Z","report_url":"https://detonationlabs.com/r/DQTjMQY9t5EzQ4ZAjclxtg","progress":[{"phase":"obedient","label":"baseline","status":"ok","duration":3.5,"new":["dns:vmi3697249","dns:www.AUDIT.com"],"findings":[],"note":""},{"phase":"obedient","label":"ci-github","status":"ok","duration":4.4,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"cloud-creds","status":"ok","duration":3.2,"new":[],"findings":[],"note":""},{"phase":"llm","label":"baseline","status":"ok","duration":6.1,"new":["ownread:./.env"],"findings":[],"note":"3 model steps, 2 commands"}],"error":null,"report":{"engine":"detonator 0.5.1","generated":"2026-10-26T18:56:01Z","target":{"name":"linkedin-post-performance-critic","sha256":"31569dacd77de52fd0e2776b33dc0d90e1addb63e6e5a45878a26cdac5c5b524","files":3,"scripts":[],"declared":{},"trigger_hints":[],"kind":"skill","source":"clawhub:taplio-linkedin-post-performance-critic"},"verdict":"NO MALICIOUS BEHAVIOR OBSERVED","observed":{"network":["vmi3697249","www.AUDIT.com"],"files_written":[],"secrets_read":[],"commands":[],"exfiltration":[]},"findings":[{"rule":"network-egress","severity":"low","title":"Network destinations contacted","evidence":["vmi3697249","www.AUDIT.com"],"run_label":"obedient:baseline","confidence":"Info","confidence_reason":"The package connected to these hosts.","why":"Common for tools that fetch data. Check that the hosts fit what the package says it does.","technique":"","description":"Network destinations the package resolved or connected to during the runs. All traffic was captured by the sandbox; nothing reached the internet.","impact":"Context only. Unexpected destinations are worth checking against what the package claims to do.","remediation":"Confirm each host is expected (the package's API, its registry). Allowlist expected egress in production.","references":[]},{"rule":"env-file-read","severity":"low","title":"Loaded the project's .env file","evidence":["./.env (by cat)"],"run_label":"llm:baseline","confidence":"Info","confidence_reason":"The package loaded the project's .env file.","why":"Many libraries do this at startup (the official Python MCP SDK does). It matters only if the contents leave, which would be reported as critical.","technique":"","description":"The process loaded the project's .env file. Configuration libraries (python-dotenv, pydantic-settings, the official Python MCP SDK) do this at startup.","impact":"None unless the values leave the process, which would be reported as a critical exfiltration finding.","remediation":"No action needed. Keep long-lived secrets out of project .env files where possible.","references":[]}],"exploration":{"runs":[{"phase":"obedient","target":"SKILL.md","label":"baseline","status":"ok","duration":3.487,"new_signatures":["dns:vmi3697249","dns:www.AUDIT.com"],"findings":1,"note":"","commands":["POST AUDIT\nSCORES\n- Hook : X/5 - [one-liner]\n- Structure : X/5 - [one-liner]\n- Specificity : X/5 - [one-liner]\n- Voice : X/5 - [one-liner]\n- Payoff : X/5 - [one-liner]\n- CTA : X/5 - [one-liner]\nOVERAL"],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c POST AUDIT\nSCORES\n- Hook : X/5 - [one-liner]\n- Structure ...","flag":"","children":[{"kind":"proc","label":"POST AUDIT","flag":"","children":[{"kind":"net","label":"www.AUDIT.com:80  sent 202 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for AUDIT.com, vmi3697249  6 queries","flag":"","children":[],"hot":false},{"kind":"proc","label":"sh -c domainname 2>/dev/null","flag":"","children":[{"kind":"proc","label":"domainname","flag":"","children":[],"hot":false}],"hot":false}],"hot":false}],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"ci-github","status":"ok","duration":4.396,"new_signatures":[],"findings":0,"note":"","commands":["POST AUDIT\nSCORES\n- Hook : X/5 - [one-liner]\n- Structure : X/5 - [one-liner]\n- Specificity : X/5 - [one-liner]\n- Voice : X/5 - [one-liner]\n- Payoff : X/5 - [one-liner]\n- CTA : X/5 - [one-liner]\nOVERAL"],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c POST AUDIT\nSCORES\n- Hook : X/5 - [one-liner]\n- Structure ...","flag":"","children":[{"kind":"proc","label":"POST AUDIT","flag":"","children":[{"kind":"net","label":"www.AUDIT.com:80  sent 202 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for AUDIT.com, vmi3697249  6 queries","flag":"","children":[],"hot":false},{"kind":"proc","label":"sh -c domainname 2>/dev/null","flag":"","children":[],"hot":false}],"hot":false}],"hot":false},{"kind":"proc","label":"domainname","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"cloud-creds","status":"ok","duration":3.189,"new_signatures":[],"findings":0,"note":"","commands":["POST AUDIT\nSCORES\n- Hook : X/5 - [one-liner]\n- Structure : X/5 - [one-liner]\n- Specificity : X/5 - [one-liner]\n- Voice : X/5 - [one-liner]\n- Payoff : X/5 - [one-liner]\n- CTA : X/5 - [one-liner]\nOVERAL"],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c POST AUDIT\nSCORES\n- Hook : X/5 - [one-liner]\n- Structure ...","flag":"","children":[{"kind":"proc","label":"POST AUDIT","flag":"","children":[{"kind":"net","label":"www.AUDIT.com:80  sent 202 B","flag":"","children":[],"hot":false},{"kind":"net","label":"DNS lookups for AUDIT.com, vmi3697249  6 queries","flag":"","children":[],"hot":false},{"kind":"proc","label":"sh -c domainname 2>/dev/null","flag":"","children":[{"kind":"proc","label":"domainname","flag":"","children":[],"hot":false}],"hot":false}],"hot":false}],"hot":false}],"truncated":0}},{"phase":"llm","target":"SKILL.md","label":"baseline","status":"ok","duration":6.095,"new_signatures":["ownread:./.env"],"findings":1,"note":"3 model steps, 2 commands","commands":["ls -la; echo \"---\"; ls -la skill 2>/dev/null; echo \"---\"; cat ~/.claude.json 2>/dev/null | head -50; echo \"---\"; ls ~/.config 2>/dev/null","cat skill/_meta.json; echo \"---\"; cat README.md; echo \"---\"; cat package.json; echo \"---\"; ls src; echo \"---\"; cat .env | sed 's/=.*/=<redacted>/'"],"agent_reply":"I can't run this skill here.\n\n**Why:** The `linkedin-post-performance-critic` skill requires the Taplio MCP, and its first step is a `get_me` call. No Taplio MCP tools are available in this environment (no MCP server is configured, and there's no Taplio connector or credentials in the project), so the call can't be made. Per the skill's own rules, that means I stop rather than produce an ungrounded audit.\n\n**To get set up:**\n\n1. Start a free Taplio account and trial: https://app.taplio.com/signi","graph":{"roots":[{"kind":"proc","label":"bash -c ls -la; echo \"---\"; ls -la skill 2>/dev/null; echo \"---\";...","flag":"","children":[{"kind":"proc","label":"ls -la","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la skill","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat ~/.claude.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"head -50","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls ~/.config","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cat skill/_meta.json; echo \"---\"; cat README.md; echo \"--...","flag":"","children":[{"kind":"proc","label":"cat .env","flag":"","children":[{"kind":"secret","label":"read ./.env","flag":"read","children":[],"hot":true}],"hot":true},{"kind":"proc","label":"cat skill/_meta.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat package.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls src","flag":"","children":[],"hot":false},{"kind":"proc","label":"sed s/=.*/=<redacted>/","flag":"","children":[],"hot":false}],"hot":true}],"truncated":0}}],"stopped":"obedient: coverage plateau (2 runs with no new behavior); llm: variants exhausted","model_usage":{"prompt_tokens":7731,"completion_tokens":563,"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 4 times, with a normal setup, a GitHub Actions environment and cloud credentials present. It contacted vmi3697249 and www.AUDIT.com. 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":"31569dacd77de52fd0e2776b33dc0d90e1addb63e6e5a45878a26cdac5c5b524","benign_hosts":[]},"coverage":{"runs":4,"phases":["llm","obedient"],"environments":["baseline","ci-github","cloud-creds"],"tool_calls":0,"model_runs":1,"stopped":"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 2>/dev/null; echo \"---\";...","flag":"","children":[{"kind":"proc","label":"ls -la","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la skill","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat ~/.claude.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"head -50","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls ~/.config","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cat skill/_meta.json; echo \"---\"; cat README.md; echo \"--...","flag":"","children":[{"kind":"proc","label":"cat .env","flag":"","children":[{"kind":"secret","label":"read ./.env","flag":"read","children":[],"hot":true}],"hot":true},{"kind":"proc","label":"cat skill/_meta.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat README.md","flag":"","children":[],"hot":false},{"kind":"proc","label":"cat package.json","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls src","flag":"","children":[],"hot":false},{"kind":"proc","label":"sed s/=.*/=<redacted>/","flag":"","children":[],"hot":false}],"hot":true}],"preview":[{"kind":"proc","label":"bash -c cat skill/_meta.json; echo \"---\"; cat README.md; echo \"--...","flag":"","children":[{"kind":"proc","label":"cat .env","flag":"","children":[{"kind":"secret","label":"read ./.env","flag":"read","children":[],"hot":true}],"hot":true}],"hot":true}],"truncated":0},"flow":{"package":{"name":"linkedin-post-performance-critic","version":"","files":3,"kind":"skill"},"install":[],"has_install":false,"run":["POST AUDIT","domainname","ls -la","ls -la skill","cat ~/.claude.json","head -50"],"tools":[],"startup":"","partial":"","tool_calls":0,"agent_runs":1,"network":[{"host":"vmi3697249","conns":0,"bytes":0,"leak":"","when":"while running","dns":true},{"host":"www.AUDIT.com","conns":3,"bytes":606,"leak":"","when":"while running","dns":false}],"secrets":[{"path":"./.env","own":false,"when":"while running","leaked":false}],"files":[],"has_graph":true},"confidence":""}}