gpt-image2-ppt-skills@1.0.0
CAUTION· install onlyPublisher claims: "Generate visually striking PPT slides via OpenAI's gpt-image-2 -- use any style in styles/<id>.md or mimic a user-supplied .pptx template; outputs high-res slide PNGs and a 16:9 .pptx. Use when the user asks to make a presentation, slides, deck, pitch deck, investor PPT, magazine-style PPT, or 做一份 PPT / 生成幻灯片 / 用 gpt-image 生成 PPT / 按这个模板生成 PPT." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-07 and scored it 77/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Privileged sudo command; Privileged sudo command; Access to sensitive file paths. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
| Linux (Arch) | `sudo pacman -S --noconfirm libreoffice-fresh` |Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.| Linux (Fedora/RHEL) | `sudo dnf install -y libreoffice` |Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.不要把本 skill 的密钥写进调用者业务项目根目录的 `.env`,也不要为了出图去读取用户项目里的通用 `.env`。环境变量建议按 agent 框架的标准方式注入:Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.| Linux (Debian/Ubuntu) | `sudo apt-get install -y libreoffice` |Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.- 脚本**不会**向上递归读取调用者项目目录的 `.env`,避免误吃业务项目密钥Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- 默认后端 `openai`,需通过 agent 配置 / 系统环境变量注入 `OPENAI_API_KEY`;standalone CLI 可用 `$GPT_IMAGE2_PPT_ENV` 或 skill 安装目录 `.env` 作为 fallback,**不要**写进调用者业务项目根目录 `.env`Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.<summary><strong>API 直连与密钥配置</strong></summary> 如果你走 API 直连模式,需要给 agent 注入环境变量。推荐使用当前 agent 框架的标准配置,而不是把密钥写进业务项目根目录 `.env`: - Claude Code:用户级 `~/.claude/settingFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct." - pip install pdf2image && sudo apt-get install -y poppler-utils"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.print_info "已备份现有 .env 到 /tmp/gpt-image2-ppt.env.bak"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# 备份用户的 .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- **本地 standalone CLI fallback**:可以设置 `GPT_IMAGE2_PPT_ENV=/path/to/private.env`,或使用 skill 安装目录下的 `.env`;这只是备用方式,不是业务项目 `.env`。Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- Pro: no OPENAI_API_KEY needed in this skill's .env; reuses codex auth.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.SKILL_ROOT / ".env",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose." Linux: sudo apt-get install -y libreoffice"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell..env is only a standalone CLI fallback.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.> **安全提示**:脚本只读取当前进程环境、平台注入的 `gpt-image2-ppt_*` 变量、显式 `GPT_IMAGE2_PPT_ENV`,以及 skill 安装目录下的 `.env` fallback。脚本**不会**向上递归读取调用者项目目录里的 `.env`,避免误吃业务项目密钥。Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Path.home() / ".codex/skills/gpt-image2-ppt-skills/.env",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# 找 .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# 本模块不调 load_dotenv(),避免 import 时无意识加载父目录 / cwd 的 .env。Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# and skill-owned .env fallback only; never walks parent project directories.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.if [ -f "$SKILL_DIR/.env" ]; thenFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.cp "$SKILL_DIR/.env" "/tmp/gpt-image2-ppt.env.bak"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.--exclude='.env' \Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Path(__file__).parent / ".env",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Path.home() / ".claude/skills/gpt-image2-ppt-skills/.env",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.This intentionally does not read CWD/.env or walk parent directories. SkillFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Path.home() / ".claude/skills/gpt-image2-ppt-skills/.env",Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose." Linux: sudo apt-get install -y libreoffice",Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
3 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim huanyuqwq: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Python subprocess execution detected≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.