{"data":{"skill":{"slug":"101-skills-twitter-automation","name":"twitter-automation","icon":"📦","repo":"https://github.com/101-skills/skills/tree/main/tools/social/twitter-automation/","status":"approved","author":"101-skills","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"7803a382-55bf-47cb-90df-37ecfd2db9d8","skill_id":"8de886ac-0822-4c4d-b5c1-c8a632c76954","version":2,"content_hash":"8b5ffbe8043099f1811c0735bf468894","risk_level":"high","is_blocked":false,"safe_to_publish":false,"analysis_status":"ok","agent_auto_install_policy":"confirmation_required","manual_install_policy":"allowed","summary":"The static backtick detector produced many Markdown false positives; most table entries, code fences, and documentation links are not executable code. Risk remains because belt CLI commands can post, delete, DM, follow, like, and retweet through a connected X account. No prompt injection language was found in SKILL.md.","remediation":[{"issue":"Account-changing actions can run through belt commands.","severity":"high","suggestion":"Require explicit confirmation before post, delete, DM, follow, like, or retweet actions. Show account, target, and content before execution."},{"issue":"Engagement workflows can be abused for unsolicited outreach.","severity":"high","suggestion":"Add anti-spam guidance, rate limits, and policy checks before DM, follow, like, or retweet actions."},{"issue":"External skill and CLI installation commands are unpinned.","severity":"medium","suggestion":"Pin trusted package or skill versions and document verification steps before installing belt or related skills."},{"issue":"Network and authentication boundaries are implicit.","severity":"medium","suggestion":"Document that commands use inference.sh and X integrations. Recommend test accounts or limited permissions for automation."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":7,"line_start":7},{"file":"SKILL.md","line_end":17,"line_start":17},{"file":"SKILL.md","line_end":24,"line_start":19},{"file":"SKILL.md","line_end":31,"line_start":24},{"file":"SKILL.md","line_end":32,"line_start":31},{"file":"SKILL.md","line_end":33,"line_start":32},{"file":"SKILL.md","line_end":34,"line_start":33},{"file":"SKILL.md","line_end":35,"line_start":34},{"file":"SKILL.md","line_end":36,"line_start":35},{"file":"SKILL.md","line_end":37,"line_start":36},{"file":"SKILL.md","line_end":38,"line_start":37},{"file":"SKILL.md","line_end":39,"line_start":38},{"file":"SKILL.md","line_end":45,"line_start":39},{"file":"SKILL.md","line_end":47,"line_start":45},{"file":"SKILL.md","line_end":51,"line_start":47},{"file":"SKILL.md","line_end":61,"line_start":51},{"file":"SKILL.md","line_end":65,"line_start":61},{"file":"SKILL.md","line_end":67,"line_start":65},{"file":"SKILL.md","line_end":71,"line_start":67},{"file":"SKILL.md","line_end":73,"line_start":71},{"file":"SKILL.md","line_end":77,"line_start":73},{"file":"SKILL.md","line_end":82,"line_start":77},{"file":"SKILL.md","line_end":86,"line_start":82},{"file":"SKILL.md","line_end":88,"line_start":86},{"file":"SKILL.md","line_end":92,"line_start":88},{"file":"SKILL.md","line_end":94,"line_start":92},{"file":"SKILL.md","line_end":98,"line_start":94},{"file":"SKILL.md","line_end":100,"line_start":98},{"file":"SKILL.md","line_end":104,"line_start":100},{"file":"SKILL.md","line_end":106,"line_start":104},{"file":"SKILL.md","line_end":110,"line_start":106},{"file":"SKILL.md","line_end":119,"line_start":110},{"file":"SKILL.md","line_end":123,"line_start":119},{"file":"SKILL.md","line_end":132,"line_start":123},{"file":"SKILL.md","line_end":136,"line_start":132},{"file":"SKILL.md","line_end":148,"line_start":136},{"file":"SKILL.md","line_end":150,"line_start":148}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":11,"line_start":11},{"file":"SKILL.md","line_end":13,"line_start":13},{"file":"SKILL.md","line_end":17,"line_start":17},{"file":"SKILL.md","line_end":57,"line_start":57},{"file":"SKILL.md","line_end":154,"line_start":154},{"file":"SKILL.md","line_end":155,"line_start":155},{"file":"SKILL.md","line_end":156,"line_start":156}]}],"critical_findings":[],"high_findings":[{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":82,"line_start":77}],"confidence":0.86,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The example runs belt to send a direct message from the connected account. This can be abused for unsolicited or deceptive outreach, so the account-action risk is elevated."},{"title":"Social Account Abuse Potential","locations":[{"file":"SKILL.md","line_end":38,"line_start":31},{"file":"SKILL.md","line_end":88,"line_start":75},{"file":"SKILL.md","line_end":105,"line_start":102}],"confidence":0.94,"description":"The skill documents actions that can post, delete, DM, follow, like, and retweet from a connected X account. These workflows can be abused for spam, impersonation, or unwanted account changes without approval controls.","review_kind":"security","source_category":"semantic","source_severity":"high","confidence_reasoning":"The file explicitly lists and demonstrates mutating X actions, including DMs, follows, likes, retweets, posts, and deletion. The abuse risk is contextual rather than a simple syntax pattern."}],"medium_findings":[{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":7,"line_start":7}],"confidence":0.8,"description":"> **Install the belt CLI skill:** `npx skills add belt-sh/cli`","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This line tells users to install an external CLI skill through npx, which can fetch third-party package code. The command is documented rather than automatic, so the risk is supply-chain exposure rather than direct injection."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":24,"line_start":19}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The fenced example includes belt login and a belt command that can post to the connected X account. It is not command injection, but executing it delegates account-changing action to an external CLI."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":47,"line_start":45}],"confidence":0.84,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The example runs belt to publish a tweet through the connected X account. The command is intentional documentation, but it has a real account-changing side effect if executed."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":61,"line_start":51}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The example runs belt commands to create sample input and publish media through an external service. This is a real CLI workflow with account and filesystem side effects if executed."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":67,"line_start":65}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The example runs belt to like a post from the connected account. That is an account-changing social action, so it is a real external-command risk if executed."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":73,"line_start":71}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The example runs belt to retweet a post from the connected account. That is an account-changing social action, so it is a real external-command risk if executed."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":88,"line_start":86}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The example runs belt to follow a user from the connected account. That is an account-changing social action, so it is a real external-command risk if executed."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":106,"line_start":104}],"confidence":0.85,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The example runs belt to delete a tweet from the connected account. Deleting account content is a real destructive side effect if the command is executed."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":119,"line_start":110}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The workflow runs external generation and X posting commands, writes output to a local file, and publishes media. This has network, filesystem, and account-changing side effects if executed."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":132,"line_start":123}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The workflow runs external video generation and X posting commands, writes output to a local file, and publishes media. This has network, filesystem, and account-changing side effects if executed."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":148,"line_start":136}],"confidence":0.8,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The block recommends installing additional external skills with npx from remote repositories. That creates supply-chain risk if users install unreviewed dependencies."},{"title":"Unpinned Remote Skill Installation","locations":[{"file":"SKILL.md","line_end":7,"line_start":7},{"file":"SKILL.md","line_end":148,"line_start":136}],"confidence":0.88,"description":"The skill recommends installing external skills with npx and remote repository references. Unpinned installs can expose users to supply-chain changes outside this skill report.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"The cited lines contain explicit npx skill installation commands without pinned versions or integrity verification. The risk depends on user execution, but the recommendation is clear."}],"low_findings":[{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":11,"line_start":11}],"confidence":0.7,"description":"Automate Twitter/X via [inference.sh](https://inference.sh) CLI.","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The URL documents the external inference.sh service that the CLI uses, so the skill has a real third-party network dependency. The line is not exfiltration, so severity remains low."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":13,"line_start":13}],"confidence":0.58,"description":"![Twitter/X Automation](https://cloud.inference.sh/app/files/u/4mg21r6ta37mpaz6ktzwtt8krr/01kgad3pxs","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The Markdown image references a remote cloud.inference.sh asset that may be fetched by renderers. This is low-severity external content exposure, not evidence of data exfiltration."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":17,"line_start":17}],"confidence":0.62,"description":"> Requires inference.sh CLI (`belt`). [Install instructions](https://raw.githubusercontent.com/infer","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line links to remote install instructions for the required CLI, creating a low-severity dependency on external hosted content. It is not an automatic fetch by the skill."}],"dangerous_patterns":[],"files_scanned":1,"total_lines":158,"audit_model":"codex","audited_at":"2026-07-09T11:51:35.841+00:00","created_at":"2026-07-09T23:55:49.021652+00:00","static_findings":[{"id":"external_commands:SKILL.md:7:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> **Install the belt CLI skill:** `npx skills add belt-sh/cli`","category":"external_commands","line_end":7,"severity":"medium","line_start":7},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"> Requires inference.sh CLI (`belt`). [Install instructions](https://raw.githubusercontent.com/infer","category":"external_commands","line_end":17,"severity":"medium","line_start":17},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":24,"severity":"medium","line_start":19},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":31,"severity":"medium","line_start":24},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Post Tweet | `x/post-tweet` | Post text tweets |","category":"external_commands","line_end":32,"severity":"medium","line_start":31},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Create Post | `x/post-create` | Post with media |","category":"external_commands","line_end":33,"severity":"medium","line_start":32},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Like Post | `x/post-like` | Like a tweet |","category":"external_commands","line_end":34,"severity":"medium","line_start":33},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Retweet | `x/post-retweet` | Retweet a post |","category":"external_commands","line_end":35,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Delete Post | `x/post-delete` | Delete a tweet |","category":"external_commands","line_end":36,"severity":"medium","line_start":35},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Get Post | `x/post-get` | Get tweet by ID |","category":"external_commands","line_end":37,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Send DM | `x/dm-send` | Send direct message |","category":"external_commands","line_end":38,"severity":"medium","line_start":37},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Follow User | `x/user-follow` | Follow a user |","category":"external_commands","line_end":39,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Get User | `x/user-get` | Get user profile |","category":"external_commands","line_end":45,"severity":"medium","line_start":39},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":47,"severity":"medium","line_start":45},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":51,"severity":"medium","line_start":47},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":61,"severity":"medium","line_start":51},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":65,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":67,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":71,"severity":"medium","line_start":67},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":73,"severity":"medium","line_start":71},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":77,"severity":"medium","line_start":73},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":82,"severity":"medium","line_start":77},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":86,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":88,"severity":"medium","line_start":86},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":92,"severity":"medium","line_start":88},{"id":"external_commands:SKILL.md:92:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":94,"severity":"medium","line_start":92},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":98,"severity":"medium","line_start":94},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":100,"severity":"medium","line_start":98},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":104,"severity":"medium","line_start":100},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":106,"severity":"medium","line_start":104},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":110,"severity":"medium","line_start":106},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":119,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":123,"severity":"medium","line_start":119},{"id":"external_commands:SKILL.md:123:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":132,"severity":"medium","line_start":123},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":136,"severity":"medium","line_start":132},{"id":"external_commands:SKILL.md:136:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":148,"severity":"medium","line_start":136},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":150,"severity":"medium","line_start":148},{"id":"network:SKILL.md:11:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"Automate Twitter/X via [inference.sh](https://inference.sh) CLI.","category":"network","line_end":11,"severity":"low","line_start":11},{"id":"network:SKILL.md:13:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"![Twitter/X Automation](https://cloud.inference.sh/app/files/u/4mg21r6ta37mpaz6ktzwtt8krr/01kgad3pxs","category":"network","line_end":13,"severity":"low","line_start":13},{"id":"network:SKILL.md:17:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"> Requires inference.sh CLI (`belt`). [Install instructions](https://raw.githubusercontent.com/infer","category":"network","line_end":17,"severity":"low","line_start":17},{"id":"network:SKILL.md:57:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"#   \"media_url\": \"https://your-image-url.jpg\"","category":"network","line_end":57,"severity":"low","line_start":57},{"id":"network:SKILL.md:154:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [X.com Integration](https://inference.sh/docs/integrations/x) - Setting up Twitter/X integration","category":"network","line_end":154,"severity":"low","line_start":154},{"id":"network:SKILL.md:155:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [X.com Integration Example](https://inference.sh/docs/examples/x-integration) - Complete Twitter w","category":"network","line_end":155,"severity":"low","line_start":155},{"id":"network:SKILL.md:156:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [Apps Overview](https://inference.sh/docs/apps/overview) - Understanding the app ecosystem","category":"network","line_end":156,"severity":"low","line_start":156}],"finding_verdicts":[{"id":"external_commands:SKILL.md:7:ruby-shell-backtick-execution","reason":"This line tells users to install an external CLI skill through npx, which can fetch third-party package code. The command is documented rather than automatic, so the risk is supply-chain exposure rather than direct injection.","verdict":"confirmed","severity":"medium","confidence":0.8},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"This line is a Markdown prerequisite note with an inline tool name and a link, not shell backtick execution. It does not run a command by itself.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"The fenced example includes belt login and a belt command that can post to the connected X account. It is not command injection, but executing it delegates account-changing action to an external CLI.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"This line is a Markdown table row listing a belt app ID, not executed code. No shell interpolation or automatic command execution appears here.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"This line is a Markdown table row listing a belt app ID, not executed code. No shell interpolation or automatic command execution appears here.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"This line is a Markdown table row listing a belt app ID, not executed code. No shell interpolation or automatic command execution appears here.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"This line is a Markdown table row listing a belt app ID, not executed code. No shell interpolation or automatic command execution appears here.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"This line is a Markdown table row listing a belt app ID, not executed code. No shell interpolation or automatic command execution appears here.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"This line is a Markdown table row listing a belt app ID, not executed code. No shell interpolation or automatic command execution appears here.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","reason":"This line is a Markdown table row listing a belt app ID, not executed code. No shell interpolation or automatic command execution appears here.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"This line is a Markdown table row listing a belt app ID, not executed code. No shell interpolation or automatic command execution appears here.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","reason":"This line is a Markdown table row listing a belt app ID, not executed code. No shell interpolation or automatic command execution appears here.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","reason":"The example runs belt to publish a tweet through the connected X account. The command is intentional documentation, but it has a real account-changing side effect if executed.","verdict":"confirmed","severity":"medium","confidence":0.84},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","reason":"The example runs belt commands to create sample input and publish media through an external service. This is a real CLI workflow with account and filesystem side effects if executed.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"The example runs belt to like a post from the connected account. That is an account-changing social action, so it is a real external-command risk if executed.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","reason":"The example runs belt to retweet a post from the connected account. That is an account-changing social action, so it is a real external-command risk if executed.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:73:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","reason":"The example runs belt to send a direct message from the connected account. This can be abused for unsolicited or deceptive outreach, so the account-action risk is elevated.","verdict":"confirmed","severity":"high","confidence":0.86},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"The example runs belt to follow a user from the connected account. That is an account-changing social action, so it is a real external-command risk if executed.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","reason":"This span is the closing fence around a documented command example, not executable source. It does not add a separate command injection vector.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:92:ruby-shell-backtick-execution","reason":"This example performs a documented read-only user lookup with a hardcoded app ID. I did not find shell interpolation or automatic execution on this line.","verdict":"false_positive","confidence":0.77},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","reason":"This example performs a documented read-only post lookup with a hardcoded app ID. I did not find shell interpolation or automatic execution on this line.","verdict":"false_positive","confidence":0.77},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","reason":"The example runs belt to delete a tweet from the connected account. Deleting account content is a real destructive side effect if the command is executed.","verdict":"confirmed","severity":"medium","confidence":0.85},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"The workflow runs external generation and X posting commands, writes output to a local file, and publishes media. This has network, filesystem, and account-changing side effects if executed.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:123:ruby-shell-backtick-execution","reason":"The workflow runs external video generation and X posting commands, writes output to a local file, and publishes media. This has network, filesystem, and account-changing side effects if executed.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","reason":"This is a Markdown code fence delimiter, not Ruby or shell backtick execution. It does not create a command injection path.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:136:ruby-shell-backtick-execution","reason":"The block recommends installing additional external skills with npx from remote repositories. That creates supply-chain risk if users install unreviewed dependencies.","verdict":"confirmed","severity":"medium","confidence":0.8},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","reason":"The flagged snippet is the closing fence around related-skill examples. The nearby app-store listing command is non-mutating documentation and is not automatically executed.","verdict":"false_positive","confidence":0.95},{"id":"network:SKILL.md:11:hardcoded-url","reason":"The URL documents the external inference.sh service that the CLI uses, so the skill has a real third-party network dependency. The line is not exfiltration, so severity remains low.","verdict":"confirmed","severity":"low","confidence":0.7},{"id":"network:SKILL.md:13:hardcoded-url","reason":"The Markdown image references a remote cloud.inference.sh asset that may be fetched by renderers. This is low-severity external content exposure, not evidence of data exfiltration.","verdict":"confirmed","severity":"low","confidence":0.58},{"id":"network:SKILL.md:17:hardcoded-url","reason":"The line links to remote install instructions for the required CLI, creating a low-severity dependency on external hosted content. It is not an automatic fetch by the skill.","verdict":"confirmed","severity":"low","confidence":0.62},{"id":"network:SKILL.md:57:hardcoded-url","reason":"This is an example placeholder media URL inside commented sample input. It is not a live exfiltration endpoint or a request made by the skill.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:154:hardcoded-url","reason":"This is a documentation link to the service docs, not a runtime network call. I found no evidence that the skill sends user data to this URL.","verdict":"false_positive","confidence":0.9},{"id":"network:SKILL.md:155:hardcoded-url","reason":"This is a documentation link to the service docs, not a runtime network call. I found no evidence that the skill sends user data to this URL.","verdict":"false_positive","confidence":0.9},{"id":"network:SKILL.md:156:hardcoded-url","reason":"This is a documentation link to the service docs, not a runtime network call. I found no evidence that the skill sends user data to this URL.","verdict":"false_positive","confidence":0.9}],"semantic_findings":[{"title":"Social Account Abuse Potential","severity":"high","locations":[{"file":"SKILL.md","line_end":38,"line_start":31},{"file":"SKILL.md","line_end":88,"line_start":75},{"file":"SKILL.md","line_end":105,"line_start":102}],"confidence":0.94,"description":"The skill documents actions that can post, delete, DM, follow, like, and retweet from a connected X account. These workflows can be abused for spam, impersonation, or unwanted account changes without approval controls.","confidence_reasoning":"The file explicitly lists and demonstrates mutating X actions, including DMs, follows, likes, retweets, posts, and deletion. The abuse risk is contextual rather than a simple syntax pattern."},{"title":"Unpinned Remote Skill Installation","severity":"medium","locations":[{"file":"SKILL.md","line_end":7,"line_start":7},{"file":"SKILL.md","line_end":148,"line_start":136}],"confidence":0.88,"description":"The skill recommends installing external skills with npx and remote repository references. Unpinned installs can expose users to supply-chain changes outside this skill report.","confidence_reasoning":"The cited lines contain explicit npx skill installation commands without pinned versions or integrity verification. The risk depends on user execution, but the recommendation is clear."}],"subject_marketplace_commit_sha":null,"subject_content_hash":null,"subject_tree_hash":null,"subject_plugin_path":null,"audit_payload_hash":null,"confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":null,"contentHash":null,"treeHash":null,"pluginPath":null,"auditPayloadHash":null},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"high","confirmedFindingCount":2,"capabilityReviewCount":15,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"confirmation_required","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}