{"id":"h8_cRFmey1ZTaTZ8xqiV_A","status":"done","kind":"skill","source":"clawhub","target":"clawhub:taplio-linkedin-post-writer","name":"taplio-linkedin-post-writer","version":"1.0.0","verdict":"NO MALICIOUS BEHAVIOR OBSERVED","top_finding":null,"findings":1,"critical":0,"public":true,"confidence":null,"created_at":"2026-10-26T17:15:52.471906Z","finished_at":"2026-10-26T18:55:33.611421Z","report_url":"https://detonationlabs.com/r/h8_cRFmey1ZTaTZ8xqiV_A","progress":[{"phase":"obedient","label":"baseline","status":"ok","duration":0.4,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"ci-github","status":"ok","duration":0.5,"new":[],"findings":[],"note":""},{"phase":"obedient","label":"production","status":"ok","duration":0.5,"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:55:33Z","target":{"name":"linkedin-post-writer","sha256":"8a981fe46118b0926dd79aa24493f0d05defde36f9e45ce321a0af1dcaabf399","files":3,"scripts":[],"declared":{},"trigger_hints":["release","schedule"],"kind":"skill","source":"clawhub:taplio-linkedin-post-writer"},"verdict":"NO MALICIOUS BEHAVIOR OBSERVED","observed":{"network":[],"files_written":[],"secrets_read":[],"commands":[],"exfiltration":[]},"findings":[{"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":0.396,"new_signatures":[],"findings":0,"note":"","commands":["VARIANT 1 - [format name]\n[hook line 1]\n[hook line 2]\n[body, 80 to 200 words, short lines]\n[CTA]\n---\nVARIANT 2 - ...\nVARIANT 3 - ..."],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c VARIANT 1 - [format name]\n[hook line 1]\n[hook line 2]\n[bo...","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"ci-github","status":"ok","duration":0.504,"new_signatures":[],"findings":0,"note":"","commands":["VARIANT 1 - [format name]\n[hook line 1]\n[hook line 2]\n[body, 80 to 200 words, short lines]\n[CTA]\n---\nVARIANT 2 - ...\nVARIANT 3 - ..."],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c VARIANT 1 - [format name]\n[hook line 1]\n[hook line 2]\n[bo...","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"obedient","target":"SKILL.md","label":"production","status":"ok","duration":0.452,"new_signatures":[],"findings":0,"note":"","commands":["VARIANT 1 - [format name]\n[hook line 1]\n[hook line 2]\n[body, 80 to 200 words, short lines]\n[CTA]\n---\nVARIANT 2 - ...\nVARIANT 3 - ..."],"agent_reply":"","graph":{"roots":[{"kind":"proc","label":"bash -c VARIANT 1 - [format name]\n[hook line 1]\n[hook line 2]\n[bo...","flag":"","children":[],"hot":false}],"truncated":0}},{"phase":"llm","target":"SKILL.md","label":"baseline","status":"ok","duration":6.11,"new_signatures":["ownread:./.env"],"findings":1,"note":"3 model steps, 2 commands","commands":["ls -la; ls -la skill 2>/dev/null","cat skill/_meta.json; echo ---; cat skill/skill-card.md; 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\nThe skill requires the Taplio MCP, and its own instructions say to stop immediately if that MCP isn't connected. In this environment there are no Taplio tools available (no `get_me`, `search_inspiration`, `create_draft`, `schedule_draft`), and no MCP client to connect one to. So per the skill, I'm not asking questions or generating post variants.\n\nTo use it, connect Taplio first:\n\n1. Start a free Taplio account and trial: https://app.taplio.com/signin?utm_source=CLI","graph":{"roots":[{"kind":"proc","label":"bash -c ls -la; ls -la skill 2>/dev/null","flag":"","children":[{"kind":"proc","label":"ls -la","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la skill","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cat skill/_meta.json; echo ---; cat skill/skill-card.md; ...","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 skill/skill-card.md","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":7829,"completion_tokens":514,"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 a production 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":"8a981fe46118b0926dd79aa24493f0d05defde36f9e45ce321a0af1dcaabf399","benign_hosts":[]},"coverage":{"runs":4,"phases":["llm","obedient"],"environments":["baseline","ci-github","production"],"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; ls -la skill 2>/dev/null","flag":"","children":[{"kind":"proc","label":"ls -la","flag":"","children":[],"hot":false},{"kind":"proc","label":"ls -la skill","flag":"","children":[],"hot":false}],"hot":false},{"kind":"proc","label":"bash -c cat skill/_meta.json; echo ---; cat skill/skill-card.md; ...","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 skill/skill-card.md","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 skill/skill-card.md; ...","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-writer","version":"","files":3,"kind":"skill"},"install":[],"has_install":false,"run":["ls -la","ls -la skill","cat .env","cat skill/_meta.json","cat skill/skill-card.md","cat README.md"],"tools":[],"startup":"","partial":"","tool_calls":0,"agent_runs":1,"network":[],"secrets":[{"path":"./.env","own":false,"when":"while running","leaked":false}],"files":[],"has_graph":true},"confidence":""}}