generate-image
Verdict safe, but 3 findings (3 medium), mainly data exfiltration, unauthorized tool use. Most recent scan 2026-10-21.
Second scanner: NVIDIA SkillSpector
The two scanners disagree: Cisco found nothing and SkillSpector says do not install. One of them has a blind spot here; read the skill before trusting either. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Generates or edits images with AI models through the OpenRouter Image API (Gemini, Seedream, Recraft, GPT-Image, Riverflow). Use for photos, illustrations, artwork, concept art, visual assets, logos, and image editing or compositing from reference images. For flowcharts, circuits, pathways, and other technical diagrams, use the scientific-schematics skill instead.
- Package
- 3 files, 64 KB
- SKILL.md
- 2352 words, 12+ sections
- Code
- Python (1)
- Allowed tools
ReadWriteEditBash- License
- MIT
- Compatibility
- Requires Python 3.9+ and network access to openrouter.ai. The bundled script uses only the standard library. Image generation requires the OPENROUTER_API_KEY credential and bills per request; listing models, inspecting a model, and --dry-run do not. Targets the OpenRouter Image API (POST /api/v1/images) documentation and public discovery reviewed on 2026-09-30.
SKILL.md covers: Generate Image · When to use · API key · Quick start · Generate · Edit an existing image · Choosing a model · Parameter support varies by model · Writing the prompt · Editing and reference images · Single-image edit · Composite several references
Findings
MEDIUM Code makes network requests Unauthorized Tool Usestatic
Skill code makes network requests. While not controlled by allowed-tools, network access should be documented and justified in the skill description.
SKILL.md
MEDIUM Outbound network request primitives that can transmit data externally Data Exfiltrationstatic
Pattern detected: urllib.request.Request(
scripts/generate_image.py:194
req = urllib.request.Request(url, data=data, headers=headers)MEDIUM Outbound network request primitives that can transmit data externally Data Exfiltrationstatic
Pattern detected: urllib.request.urlopen(
scripts/generate_image.py:196
with urllib.request.urlopen(req, timeout=timeout) as resp:What is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 17 KB |
references/models.md | doc | 15 KB |
scripts/generate_image.py | script | 32 KB |
External hosts referenced
openrouter.ai arxiv.org doi.org export.arxiv.org
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Environment variables referenced
OPENROUTER_API_KEY
Package contents recorded 2026-10-22 at commit 593377bb0487. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Bytecode analyzer.
- Pipeline analyzer.
- Correlation analyzer.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://github.com/K-Dense-AI/scientific-agent-skills
- Raw scan result: skills-generate-image-scan.json
- Badge for your README:
 - Request a re-scan