{"data":{"skill":{"slug":"101-skills-ai-image-generation","name":"ai-image-generation","icon":"📦","repo":"https://github.com/101-skills/skills/tree/main/tools/image/ai-image-generation/","status":"approved","author":"101-skills","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"6d603f13-43e6-4dc6-8b2c-5c2955f49b68","skill_id":"fc181e77-8e13-4e05-9a0c-f1d948d4d4e6","version":3,"content_hash":"v2:b959ebfd1043a07c0c4378ab94ca4342cb0259f5:c2618c374f934961591fd7cb633c5e9c885447b20189b515d6230d5cc1c84961:449f5746031225f1475d095eec3642e83de960948453a7087c7eed453332f98a:db825599ebfc476e54e83f5b961f7578","risk_level":"medium","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"The skill is documentation-only, but it authorizes and instructs use of the external belt CLI. Most static backtick findings are Markdown formatting or model IDs, while command examples and install commands are real external command guidance. No prompt injection text was found, but prompts and image inputs may be sent to third-party services.","remediation":[{"issue":"Broad belt CLI permission","severity":"medium","suggestion":"Restrict allowed tools to documented belt commands, or require confirmation before login, install, or account-changing operations."},{"issue":"External model processing","severity":"medium","suggestion":"Add a clear privacy notice that prompts, uploaded images, and image URLs are sent to inference.sh and model providers."},{"issue":"Remote documentation image","severity":"low","suggestion":"Replace the remote Markdown image with a local asset or remove it to avoid automatic third-party fetches."},{"issue":"Optional external skill installation commands","severity":"medium","suggestion":"Separate related-skill installs from the main workflow and tell users to review packages before running npx skills add."}],"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.68,"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 is an explicit npx install command from a community skill. Following it can install another skill through an external package workflow, so it has supply-chain risk even though it is documentation."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":24,"line_start":19}],"confidence":0.84,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block instructs users to run belt login and belt app run against a hosted image service. The command is intentional, but it executes an external CLI and sends prompt data outside the workspace."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":52,"line_start":50}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block instructs users to run belt app store against the hosted app catalog. The command is intentional, but it relies on an external CLI and remote service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":63,"line_start":58}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for a hosted GPT-Image-2 workflow. The command sends prompt data to an external model service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":72,"line_start":67}],"confidence":0.84,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for image editing and includes a source image URL. The workflow can disclose user-provided image locations to an external service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":80,"line_start":76}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for a hosted FLUX workflow. The command sends prompt data to an external model service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":86,"line_start":84}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for a hosted FLUX Klein workflow. The command sends prompt data to an external model service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":94,"line_start":90}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for a hosted Gemini image workflow. The command sends prompt data to an external model service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":103,"line_start":98}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for a hosted Grok image workflow. The command sends prompt data to an external model service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":111,"line_start":107}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for a hosted Reve workflow. The command sends prompt data to an external model service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":119,"line_start":115}],"confidence":0.82,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for a hosted Seedream workflow. The command sends prompt data to an external model service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":125,"line_start":123}],"confidence":0.84,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for upscaling and accepts an image URL. The workflow can disclose user-provided image locations to an external service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":134,"line_start":129}],"confidence":0.84,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block runs belt app run for image stitching and includes image URLs. The workflow can disclose user-provided image locations to an external service."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":162,"line_start":138}],"confidence":0.74,"description":"```bash","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This code block lists multiple npx skills add commands for related skills. They are optional documentation, but following them can install external community skills."},{"title":"Ruby/shell backtick execution","locations":[{"file":"SKILL.md","line_end":164,"line_start":162}],"confidence":0.58,"description":"```","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"This range includes a documented belt app store command for browsing remote apps. It is a lower-confidence command risk because the static location starts on a closing fence, but the referenced command still uses the external CLI."},{"title":"Broad belt CLI Execution Permission","locations":[{"file":"SKILL.md","line_end":4,"line_start":4}],"confidence":0.86,"description":"The skill grants Bash access for any belt subcommand. A compromised or changed instruction could use belt beyond the documented image workflows.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"The allowed-tools front matter explicitly permits Bash(belt *). The risk is contextual because belt behavior depends on the installed CLI and account permissions."},{"title":"External Image Service Data Transfer","locations":[{"file":"SKILL.md","line_end":11,"line_start":11},{"file":"SKILL.md","line_end":71,"line_start":58},{"file":"SKILL.md","line_end":133,"line_start":121}],"confidence":0.88,"description":"The documented workflows send prompts and image URLs to inference.sh hosted apps. Sensitive prompts, private image URLs, or client assets may leave the user environment.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"The examples directly invoke hosted model apps and include prompt text or image URL fields. This confirms external processing, though it appears to be the intended feature rather than malicious behavior."}],"low_findings":[{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":13,"line_start":13}],"confidence":0.78,"description":"![AI Image Generation](https://cloud.inference.sh/app/files/u/4mg21r6ta37mpaz6ktzwtt8krr/01kg0v0nz7w","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"This line embeds a remote image from cloud.inference.sh. Rendering the documentation may fetch third-party content and expose viewer metadata to that host."}],"dangerous_patterns":[],"files_scanned":1,"total_lines":172,"audit_model":"codex","audited_at":"2026-07-08T13:58:41.697+00:00","created_at":"2026-07-10T12:22:22.357458+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 is an explicit npx install command from a community skill. Following it can install another skill through an external package workflow, so it has supply-chain risk even though it is documentation.","verdict":"confirmed","severity":"medium","confidence":0.68},{"id":"external_commands:SKILL.md:17:ruby-shell-backtick-execution","reason":"This line names the belt CLI and links to installation instructions, but it does not itself execute a command. The backticks are Markdown inline-code formatting.","verdict":"false_positive","confidence":0.91},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"This code block instructs users to run belt login and belt app run against a hosted image service. The command is intentional, but it executes an external CLI and sends prompt data outside the workspace.","verdict":"confirmed","severity":"medium","confidence":0.84},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:37:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:41:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:45:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"This code block instructs users to run belt app store against the hosted app catalog. The command is intentional, but it relies on an external CLI and remote service.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"This code block runs belt app run for a hosted GPT-Image-2 workflow. The command sends prompt data to an external model service.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:67:ruby-shell-backtick-execution","reason":"This code block runs belt app run for image editing and includes a source image URL. The workflow can disclose user-provided image locations to an external service.","verdict":"confirmed","severity":"medium","confidence":0.84},{"id":"external_commands:SKILL.md:72:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:76:ruby-shell-backtick-execution","reason":"This code block runs belt app run for a hosted FLUX workflow. The command sends prompt data to an external model service.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:80:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","reason":"This code block runs belt app run for a hosted FLUX Klein workflow. The command sends prompt data to an external model service.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:90:ruby-shell-backtick-execution","reason":"This code block runs belt app run for a hosted Gemini image workflow. The command sends prompt data to an external model service.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","reason":"This code block runs belt app run for a hosted Grok image workflow. The command sends prompt data to an external model service.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","reason":"This code block runs belt app run for a hosted Reve workflow. The command sends prompt data to an external model service.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","reason":"This code block runs belt app run for a hosted Seedream workflow. The command sends prompt data to an external model service.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:123:ruby-shell-backtick-execution","reason":"This code block runs belt app run for upscaling and accepts an image URL. The workflow can disclose user-provided image locations to an external service.","verdict":"confirmed","severity":"medium","confidence":0.84},{"id":"external_commands:SKILL.md:125:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","reason":"This code block runs belt app run for image stitching and includes image URLs. The workflow can disclose user-provided image locations to an external service.","verdict":"confirmed","severity":"medium","confidence":0.84},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","reason":"This finding points to Markdown formatting, a model identifier, or a fenced block boundary rather than executable Ruby or shell backtick execution. No command is executed from this specific line.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"This code block lists multiple npx skills add commands for related skills. They are optional documentation, but following them can install external community skills.","verdict":"confirmed","severity":"medium","confidence":0.74},{"id":"external_commands:SKILL.md:162:ruby-shell-backtick-execution","reason":"This range includes a documented belt app store command for browsing remote apps. It is a lower-confidence command risk because the static location starts on a closing fence, but the referenced command still uses the external CLI.","verdict":"confirmed","severity":"medium","confidence":0.58},{"id":"network:SKILL.md:11:hardcoded-url","reason":"This URL is a documentation link or placeholder example, not an automatic network request or credential transfer by the skill. No evidence shows forced fetching from this line.","verdict":"false_positive","confidence":0.9},{"id":"network:SKILL.md:13:hardcoded-url","reason":"This line embeds a remote image from cloud.inference.sh. Rendering the documentation may fetch third-party content and expose viewer metadata to that host.","verdict":"confirmed","severity":"low","confidence":0.78},{"id":"network:SKILL.md:17:hardcoded-url","reason":"This URL is a documentation link or placeholder example, not an automatic network request or credential transfer by the skill. No evidence shows forced fetching from this line.","verdict":"false_positive","confidence":0.9},{"id":"network:SKILL.md:70:hardcoded-url","reason":"This is a placeholder image URL in an example input, not a hardcoded destination controlled by the skill. It does not automatically transmit data unless a user supplies a real URL and runs the workflow.","verdict":"false_positive","confidence":0.93},{"id":"network:SKILL.md:124:hardcoded-url","reason":"This is a placeholder image URL in an example input, not a hardcoded destination controlled by the skill. It does not automatically transmit data unless a user supplies a real URL and runs the workflow.","verdict":"false_positive","confidence":0.93},{"id":"network:SKILL.md:131:hardcoded-url","reason":"This is a placeholder image URL in an example input, not a hardcoded destination controlled by the skill. It does not automatically transmit data unless a user supplies a real URL and runs the workflow.","verdict":"false_positive","confidence":0.93},{"id":"network:SKILL.md:168:hardcoded-url","reason":"This URL is a documentation link or placeholder example, not an automatic network request or credential transfer by the skill. No evidence shows forced fetching from this line.","verdict":"false_positive","confidence":0.9},{"id":"network:SKILL.md:169:hardcoded-url","reason":"This URL is a documentation link or placeholder example, not an automatic network request or credential transfer by the skill. No evidence shows forced fetching from this line.","verdict":"false_positive","confidence":0.9},{"id":"network:SKILL.md:170:hardcoded-url","reason":"This URL is a documentation link or placeholder example, not an automatic network request or credential transfer by the skill. No evidence shows forced fetching from this line.","verdict":"false_positive","confidence":0.9}],"semantic_findings":[{"title":"Broad belt CLI Execution Permission","severity":"medium","locations":[{"file":"SKILL.md","line_end":4,"line_start":4}],"confidence":0.86,"description":"The skill grants Bash access for any belt subcommand. A compromised or changed instruction could use belt beyond the documented image workflows.","confidence_reasoning":"The allowed-tools front matter explicitly permits Bash(belt *). The risk is contextual because belt behavior depends on the installed CLI and account permissions."},{"title":"External Image Service Data Transfer","severity":"medium","locations":[{"file":"SKILL.md","line_end":11,"line_start":11},{"file":"SKILL.md","line_end":71,"line_start":58},{"file":"SKILL.md","line_end":133,"line_start":121}],"confidence":0.88,"description":"The documented workflows send prompts and image URLs to inference.sh hosted apps. Sensitive prompts, private image URLs, or client assets may leave the user environment.","confidence_reasoning":"The examples directly invoke hosted model apps and include prompt text or image URL fields. This confirms external processing, though it appears to be the intended feature rather than malicious behavior."}],"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":"medium","confirmedFindingCount":2,"capabilityReviewCount":16,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}