ppt-generator-smb
ReviewAudited by ClawScan on May 10, 2026.
Overview
The presentation generator is mostly purpose-aligned, but it can auto-install an unpinned package and generates browser-opened HTML from unescaped content.
Use this skill only in a trusted workspace or virtual environment. Review or disable the automatic pip install, keep generated HTML content sanitized, and serve previews from a dedicated local-only output folder.
Findings (3)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Generating a PPTX may modify the Python environment and install code from the package index without a clear prior approval step.
The script installs a package at runtime if the import fails. The package is unpinned and this runtime install is not reflected in the install specification, so running the PPTX generator may fetch and execute third-party code unexpectedly.
subprocess.check_call(['pip', 'install', 'python-pptx', '-q'])
Declare python-pptx as an installation requirement, pin a known version or hash, and avoid automatic runtime installation unless the user explicitly approves it, preferably inside an isolated environment.
Opening or previewing a generated HTML deck could run unintended JavaScript embedded through slide content.
Slide titles, list items, card content, chart labels, and command-line title values are interpolated directly into HTML without escaping or sanitization. If any user-provided or web-derived content contains HTML or JavaScript, it can become executable in the generated slideshow.
items_html = ''.join(f'<li>{item}</li>' for item in items)
...
html = HTML_TEMPLATE.format(title=args.title, slides=slides_html, total=total)Escape all text inserted into HTML by default, only allow a documented safe subset of markup if needed, and treat web-search results as untrusted before including them in slides.
Files in the served output directory could be exposed beyond the intended preview if the server is reachable on the local network or if the directory contains unrelated files.
The skill instructs starting a local HTTP server to preview screenshots. This is purpose-aligned, but the command does not explicitly bind to localhost and serves whatever is in the chosen output directory.
python -m http.server 8899 --directory <output_dir>
Serve only a dedicated temporary output folder, bind the server to 127.0.0.1, and stop it after the preview is complete.
