double6-ppt-cli@0.4.2
CAUTION· static onlyPublisher claims: "基于 ppt-master 与 iOfficeAI/OfficeCLI 两个开源项目,生成、套用模板、读取、检查和闭环修复原生 PPTX;“可编辑”重点指保留原生对象与稳定身份,方便 Agent 多轮定位、修改和复查。适用于从 Markdown、文本、结构化材料与本地授权图片制作演示文稿,复用常规 PPTX 模板,或质检和受限修复已有 PPTX;不负责 PDF/DOCX 内容解析、联网搜图、图片式 PPT、HTML slides、TTS 或视频。" Observed in sandbox: static analysis only — behavior not yet observed.
Coverage
Static only; nothing was run yet.The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.
Is [email protected] safe to install?
KillerSkills analysed it statically (a sandbox run is pending) on 2026-11-07 and scored it 58/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: Access to sensitive file paths; Access to sensitive file paths; Access to sensitive file paths. Summary: static analysis only — behavior not yet observed.
Behavior trace
Queued for honeypot run · static analysis onlyThis version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.
Static findings
"""Return the supported .env lookup order."""Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Path.cwd() / '.env',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.USER_ENV_FILE = USER_CONFIG_DIR / '.env'Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.proc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run(command, capture_output=True, timeout=timeout or self.timeout)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run([str(binary), "--version"], capture_output=True, text=True, timeout=15)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run([sys.executable, "-m", "venv", str(venv)], capture_output=True, text=True, timeout=180)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.write_json(run / "artifacts" / "current_pptx_profile.json", output_profile)Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.proc = subprocess.run(command, capture_output=True, text=True, timeout=600)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.PROJECT_ROOT / '.env',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.proc = subprocess.run(command + ["--version"], capture_output=True, text=True, timeout=20)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.quality = subprocess.run(quality_command, capture_output=True, text=True, timeout=300)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run([str(venv_python), "-m", "pip", "install", "-r", str(requirements)], capture_output=True, text=True, timeout=900)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.REPO_ROOT / '.env',Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.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.python3 scripts/template_fill_pptx.py apply <deck.pptx> fill_plan.json -o output.pptxFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.proc = subprocess.run([pdftoppm, "-png", "-r", "96", str(pdf), str(prefix)], capture_output=True, text=True, timeout=300)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = 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.proc = subprocess.run(command, capture_output=True, text=True, timeout=300)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.warnings.append(f"chmod skipped for {output_path}: {exc}")Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.result = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.run(command, capture_output=True, text=True, timeout=300)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.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
22 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim double6-ai: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- 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.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
- File permission modification command≈ +2 on the totalRequest the narrowest permission that works; replace wildcards with the exact paths or hosts.