{"data":{"skill":{"slug":"skills-shell-ai-image-generation","name":"ai-image-generation","icon":"📦","repo":"https://github.com/skills-shell/skills/tree/main/tools/image/ai-image-generation/","status":"approved","author":"skills-shell","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"6edec602-2b71-4dd5-9b2f-fe1e4790962b","skill_id":"e5d7afbc-105a-4084-9b03-4a8bf9828bda","version":4,"content_hash":"1de57f2d0c1614480a54544a5e1d80df","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"The skill is legitimate image-generation guidance, but it intentionally executes belt and npx CLI commands. Those commands call remote inference services and may send prompts, image URLs, and generated assets outside the local environment. I found no prompt-injection text or hidden data-exfiltration instructions.","remediation":[{"issue":"Unpinned CLI and skill installs","severity":"medium","suggestion":"Pin trusted install sources or versions for belt-related skill installation examples."},{"issue":"Remote inference data exposure","severity":"medium","suggestion":"Add a privacy note explaining that prompts, image URLs, and outputs are sent to inference.sh and model providers."},{"issue":"Placeholder external image URLs","severity":"low","suggestion":"Tell users to avoid private images unless they accept the provider data handling terms."}],"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":40,"line_start":39},{"file":"SKILL.md","line_end":41,"line_start":40},{"file":"SKILL.md","line_end":42,"line_start":41},{"file":"SKILL.md","line_end":43,"line_start":42},{"file":"SKILL.md","line_end":44,"line_start":43},{"file":"SKILL.md","line_end":45,"line_start":44},{"file":"SKILL.md","line_end":46,"line_start":45},{"file":"SKILL.md","line_end":50,"line_start":46},{"file":"SKILL.md","line_end":52,"line_start":50},{"file":"SKILL.md","line_end":58,"line_start":52},{"file":"SKILL.md","line_end":63,"line_start":58},{"file":"SKILL.md","line_end":67,"line_start":63},{"file":"SKILL.md","line_end":72,"line_start":67},{"file":"SKILL.md","line_end":76,"line_start":72},{"file":"SKILL.md","line_end":80,"line_start":76},{"file":"SKILL.md","line_end":84,"line_start":80},{"file":"SKILL.md","line_end":86,"line_start":84},{"file":"SKILL.md","line_end":90,"line_start":86},{"file":"SKILL.md","line_end":94,"line_start":90},{"file":"SKILL.md","line_end":98,"line_start":94},{"file":"SKILL.md","line_end":103,"line_start":98},{"file":"SKILL.md","line_end":107,"line_start":103},{"file":"SKILL.md","line_end":111,"line_start":107},{"file":"SKILL.md","line_end":115,"line_start":111},{"file":"SKILL.md","line_end":119,"line_start":115},{"file":"SKILL.md","line_end":123,"line_start":119},{"file":"SKILL.md","line_end":125,"line_start":123},{"file":"SKILL.md","line_end":129,"line_start":125},{"file":"SKILL.md","line_end":134,"line_start":129},{"file":"SKILL.md","line_end":138,"line_start":134},{"file":"SKILL.md","line_end":162,"line_start":138},{"file":"SKILL.md","line_end":164,"line_start":162}]},{"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":70,"line_start":70},{"file":"SKILL.md","line_end":124,"line_start":124},{"file":"SKILL.md","line_end":131,"line_start":131},{"file":"SKILL.md","line_end":168,"line_start":168},{"file":"SKILL.md","line_end":169,"line_start":169},{"file":"SKILL.md","line_end":170,"line_start":170}]}],"critical_findings":[],"high_findings":[],"medium_findings":[{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":7,"line_start":7}],"confidence":0.78,"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 instructs users to run npx to install another CLI skill, which can execute third-party installer code. The behavior is visible and intentional, but it is real supply-chain command execution."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":24,"line_start":19}],"confidence":0.86,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The quick start runs belt login and belt app run, which execute an external CLI and send prompt data to inference.sh. This is expected for the skill, but it is a real command-execution and network boundary."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":52,"line_start":50}],"confidence":0.8,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The fenced example runs belt app store, which invokes the external CLI to query remote image apps. It is intended functionality, but still depends on command execution."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":63,"line_start":58}],"confidence":0.86,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The example runs belt app run openai/gpt-image-2 with a prompt, sending generation data to a remote service through the CLI."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":72,"line_start":67}],"confidence":0.87,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The editing example runs belt app run and submits an image URL to a remote model provider. This is intended but exposes user-provided image references outside the local environment."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":80,"line_start":76}],"confidence":0.85,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The FLUX example runs belt app run with prompt content, sending generation data to a remote service through the CLI."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":86,"line_start":84}],"confidence":0.85,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The fast generation example runs belt app run with prompt content, sending generation data to a remote service through the CLI."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":94,"line_start":90}],"confidence":0.85,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The Gemini example runs belt app run with prompt content, sending generation data to a remote service through the CLI."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":103,"line_start":98}],"confidence":0.85,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The Grok example runs belt app run with prompt content, sending generation data to a remote service through the CLI."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":111,"line_start":107}],"confidence":0.85,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The Reve example runs belt app run with prompt content, sending generation data to a remote service through the CLI."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":119,"line_start":115}],"confidence":0.85,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The Seedream example runs belt app run with prompt content, sending generation data to a remote service through the CLI."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":125,"line_start":123}],"confidence":0.87,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The upscaling example runs belt app run with an external image URL, causing remote processing of a user image reference."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":134,"line_start":129}],"confidence":0.87,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The stitching example runs belt app run with external image URLs, causing remote processing of user-provided image references."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":162,"line_start":138}],"confidence":0.8,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The related skills block instructs npx skills add commands from a community source, creating supply-chain installation risk if run blindly."}],"low_findings":[{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":11,"line_start":11}],"confidence":0.78,"description":"Generate images with 50+ AI models via [inference.sh](https://inference.sh) CLI.","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The link documents that the skill depends on inference.sh, a remote service used by the belt CLI. This is expected but confirms outbound network reliance."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":13,"line_start":13}],"confidence":0.82,"description":"![AI Image Generation](https://cloud.inference.sh/app/files/u/4mg21r6ta37mpaz6ktzwtt8krr/01kg0v0nz7w","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The Markdown image embeds content from cloud.inference.sh, which can trigger remote loading when rendered and can change outside the package."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":17,"line_start":17}],"confidence":0.76,"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 install link points to raw.githubusercontent.com for setup instructions, introducing an external supply-chain dependency for users following the skill."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":70,"line_start":70}],"confidence":0.8,"description":"\"images\": [\"https://your-image.jpg\"]","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The example asks users to submit an image URL for editing, which sends external image references to a remote model provider."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":124,"line_start":124}],"confidence":0.81,"description":"belt app run falai/topaz-image-upscaler --input '{\"image_url\": \"https://...\"}'","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The upscaling example uses an image URL parameter, which sends a user image reference to a remote provider for processing."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":131,"line_start":131}],"confidence":0.81,"description":"\"images\": [\"https://img1.jpg\", \"https://img2.jpg\"],","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The stitching example uses multiple image URLs, which sends user-provided image references to a remote provider for processing."}],"dangerous_patterns":[],"files_scanned":1,"total_lines":172,"audit_model":"codex","audited_at":"2026-07-07T05:53:15.051+00:00","created_at":"2026-07-07T06:24:28.57797+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":"| **GPT-Image-2** | `openai/gpt-image-2` | Text-to-image, editing, inpainting |","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":"| FLUX Dev LoRA | `falai/flux-dev-lora` | High quality with custom styles |","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":"| FLUX.2 Klein LoRA | `falai/flux-2-klein-lora` | Fast with LoRA support (4B/9B) |","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":"| **P-Image** | `pruna/p-image` | Fast, economical, multiple aspects |","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":"| **P-Image-LoRA** | `pruna/p-image-lora` | Fast with preset LoRA styles |","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":"| **P-Image-Edit** | `pruna/p-image-edit` | Fast image editing |","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":"| Gemini 3 Pro | `google/gemini-3-pro-image-preview` | Google's latest |","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":"| Gemini 2.5 Flash | `google/gemini-2-5-flash-image` | Fast Google model |","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":"| Grok Imagine | `xai/grok-imagine-image` | xAI's model, multiple aspects |","category":"external_commands","line_end":40,"severity":"medium","line_start":39},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Seedream 4.5 | `bytedance/seedream-4-5` | 2K-4K cinematic quality |","category":"external_commands","line_end":41,"severity":"medium","line_start":40},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Seedream 4.0 | `bytedance/seedream-4-0` | High quality 2K-4K |","category":"external_commands","line_end":42,"severity":"medium","line_start":41},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Seedream 3.0 | `bytedance/seedream-3-0-t2i` | Accurate text rendering |","category":"external_commands","line_end":43,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Reve | `falai/reve` | Natural language editing, text rendering |","category":"external_commands","line_end":44,"severity":"medium","line_start":43},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| ImagineArt 1.5 Pro | `falai/imagine-art-1-5-pro-preview` | Ultra-high-fidelity 4K |","category":"external_commands","line_end":45,"severity":"medium","line_start":44},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| FLUX Klein 4B | `pruna/flux-klein-4b` | Ultra-cheap ($0.0001/image) |","category":"external_commands","line_end":46,"severity":"medium","line_start":45},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Topaz Upscaler | `falai/topaz-image-upscaler` | Professional upscaling |","category":"external_commands","line_end":50,"severity":"medium","line_start":46},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":52,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":58,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":63,"severity":"medium","line_start":58},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":67,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":72,"severity":"medium","line_start":67},{"id":"external_commands:SKILL.md:72:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":76,"severity":"medium","line_start":72},{"id":"external_commands:SKILL.md:76:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":80,"severity":"medium","line_start":76},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":84,"severity":"medium","line_start":80},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":86,"severity":"medium","line_start":84},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":90,"severity":"medium","line_start":86},{"id":"external_commands:SKILL.md:90:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":94,"severity":"medium","line_start":90},{"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":103,"severity":"medium","line_start":98},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":107,"severity":"medium","line_start":103},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":111,"severity":"medium","line_start":107},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":115,"severity":"medium","line_start":111},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":119,"severity":"medium","line_start":115},{"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":125,"severity":"medium","line_start":123},{"id":"external_commands:SKILL.md:125:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":129,"severity":"medium","line_start":125},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":134,"severity":"medium","line_start":129},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":138,"severity":"medium","line_start":134},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":162,"severity":"medium","line_start":138},{"id":"external_commands:SKILL.md:162:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":164,"severity":"medium","line_start":162},{"id":"network:SKILL.md:11:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"Generate images with 50+ AI models 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":"![AI Image Generation](https://cloud.inference.sh/app/files/u/4mg21r6ta37mpaz6ktzwtt8krr/01kg0v0nz7w","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:70:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"\"images\": [\"https://your-image.jpg\"]","category":"network","line_end":70,"severity":"low","line_start":70},{"id":"network:SKILL.md:124:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"belt app run falai/topaz-image-upscaler --input '{\"image_url\": \"https://...\"}'","category":"network","line_end":124,"severity":"low","line_start":124},{"id":"network:SKILL.md:131:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"\"images\": [\"https://img1.jpg\", \"https://img2.jpg\"],","category":"network","line_end":131,"severity":"low","line_start":131},{"id":"network:SKILL.md:168:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [Running Apps](https://inference.sh/docs/apps/running) - How to run apps via CLI","category":"network","line_end":168,"severity":"low","line_start":168},{"id":"network:SKILL.md:169:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [Image Generation Example](https://inference.sh/docs/examples/image-generation) - Complete image g","category":"network","line_end":169,"severity":"low","line_start":169},{"id":"network:SKILL.md:170: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":170,"severity":"low","line_start":170}],"finding_verdicts":[{"id":"external_commands:SKILL.md:7:ruby-shell-backtick-execution","reason":"This line instructs users to run npx to install another CLI skill, which can execute third-party installer code. The behavior is visible and intentional, but it is real supply-chain command execution.","verdict":"confirmed","severity":"medium","confidence":0.78},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"The backticked word is the CLI name in prose, not a command invocation; the separate URL finding covers the install link.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"The quick start runs belt login and belt app run, which execute an external CLI and send prompt data to inference.sh. This is expected for the skill, but it is a real command-execution and network boundary.","verdict":"confirmed","severity":"medium","confidence":0.86},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"The backticked value is a model or app identifier shown in a Markdown table, not shell syntax or Ruby command execution.","verdict":"false_positive","confidence":0.93},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"The fenced example runs belt app store, which invokes the external CLI to query remote image apps. It is intended functionality, but still depends on command execution.","verdict":"confirmed","severity":"medium","confidence":0.8},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"The example runs belt app run openai/gpt-image-2 with a prompt, sending generation data to a remote service through the CLI.","verdict":"confirmed","severity":"medium","confidence":0.86},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","reason":"The editing example runs belt app run and submits an image URL to a remote model provider. This is intended but exposes user-provided image references outside the local environment.","verdict":"confirmed","severity":"medium","confidence":0.87},{"id":"external_commands:SKILL.md:72:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:76:ruby-shell-backtick-execution","reason":"The FLUX example runs belt app run with prompt content, sending generation data to a remote service through the CLI.","verdict":"confirmed","severity":"medium","confidence":0.85},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","reason":"The fast generation example runs belt app run with prompt content, sending generation data to a remote service through the CLI.","verdict":"confirmed","severity":"medium","confidence":0.85},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:90:ruby-shell-backtick-execution","reason":"The Gemini example runs belt app run with prompt content, sending generation data to a remote service through the CLI.","verdict":"confirmed","severity":"medium","confidence":0.85},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","reason":"The Grok example runs belt app run with prompt content, sending generation data to a remote service through the CLI.","verdict":"confirmed","severity":"medium","confidence":0.85},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","reason":"The Reve example runs belt app run with prompt content, sending generation data to a remote service through the CLI.","verdict":"confirmed","severity":"medium","confidence":0.85},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","reason":"The Seedream example runs belt app run with prompt content, sending generation data to a remote service through the CLI.","verdict":"confirmed","severity":"medium","confidence":0.85},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:123:ruby-shell-backtick-execution","reason":"The upscaling example runs belt app run with an external image URL, causing remote processing of a user image reference.","verdict":"confirmed","severity":"medium","confidence":0.87},{"id":"external_commands:SKILL.md:125:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","reason":"The stitching example runs belt app run with external image URLs, causing remote processing of user-provided image references.","verdict":"confirmed","severity":"medium","confidence":0.87},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","reason":"This finding is only the Markdown code-fence delimiter, not an executable statement. The actual command risk is covered by the adjacent opening-fence finding.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"The related skills block instructs npx skills add commands from a community source, creating supply-chain installation risk if run blindly.","verdict":"confirmed","severity":"medium","confidence":0.8},{"id":"external_commands:SKILL.md:162:ruby-shell-backtick-execution","reason":"This line is only a Markdown code-fence delimiter after the related-skill examples. The command examples are already covered by the line 138 finding.","verdict":"false_positive","confidence":0.9},{"id":"network:SKILL.md:11:hardcoded-url","reason":"The link documents that the skill depends on inference.sh, a remote service used by the belt CLI. This is expected but confirms outbound network reliance.","verdict":"confirmed","severity":"low","confidence":0.78},{"id":"network:SKILL.md:13:hardcoded-url","reason":"The Markdown image embeds content from cloud.inference.sh, which can trigger remote loading when rendered and can change outside the package.","verdict":"confirmed","severity":"low","confidence":0.82},{"id":"network:SKILL.md:17:hardcoded-url","reason":"The install link points to raw.githubusercontent.com for setup instructions, introducing an external supply-chain dependency for users following the skill.","verdict":"confirmed","severity":"low","confidence":0.76},{"id":"network:SKILL.md:70:hardcoded-url","reason":"The example asks users to submit an image URL for editing, which sends external image references to a remote model provider.","verdict":"confirmed","severity":"low","confidence":0.8},{"id":"network:SKILL.md:124:hardcoded-url","reason":"The upscaling example uses an image URL parameter, which sends a user image reference to a remote provider for processing.","verdict":"confirmed","severity":"low","confidence":0.81},{"id":"network:SKILL.md:131:hardcoded-url","reason":"The stitching example uses multiple image URLs, which sends user-provided image references to a remote provider for processing.","verdict":"confirmed","severity":"low","confidence":0.81},{"id":"network:SKILL.md:168:hardcoded-url","reason":"This is a documentation hyperlink only; it does not cause execution or data transfer unless a user chooses to open it.","verdict":"false_positive","confidence":0.86},{"id":"network:SKILL.md:169:hardcoded-url","reason":"This is a documentation hyperlink only; it does not cause execution or data transfer unless a user chooses to open it.","verdict":"false_positive","confidence":0.86},{"id":"network:SKILL.md:170:hardcoded-url","reason":"This is a documentation hyperlink only; it does not cause execution or data transfer unless a user chooses to open it.","verdict":"false_positive","confidence":0.86}],"semantic_findings":[],"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":"safe","confirmedFindingCount":0,"capabilityReviewCount":20,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}