Low Risk — Risk Score 15/100
Last scan:23 hr ago Rescan
15 /100
project-intro-generator
一键生成项目介绍页,支持本地编辑和长图导出
A legitimate project intro page generator that performs standard file system scanning and optional network calls for GitHub API and package registries. No malicious behavior detected.
Skill Nameproject-intro-generator
Duration48.0s
Enginepi
Safe to install
No action required. Consider documenting the GitHub API network call in SKILL.md for transparency.

Findings 5 items

Severity Finding Location
Low
GitHub API call not documented Doc Mismatch
src/github.js makes HTTPS requests to GitHub API (api.github.com) to fetch repository metadata, but this is not declared in SKILL.md or skill.json.
https://api.github.com/repos/${owner}/${repo}
→ Document network:READ access for GitHub API integration in SKILL.md
src/github.js:9
Low
Shell execution not documented Doc Mismatch
src/git.js uses child_process.execSync to run 'git clone' for remote repository support, which requires shell:WRITE. This is not declared in allowed tools.
execSync(`git clone --depth 1 ${gitUrl} ${tempDir}`)
→ Document shell:WRITE access for git clone support in SKILL.md
src/git.js:15
Low
Browser automation not documented Doc Mismatch
src/image.js uses playwright to launch a Chromium browser for screenshot generation. This uses browser:WRITE which is not declared.
playwright.chromium.launch({ headless: true })
→ Document browser:WRITE access for screenshot export feature in SKILL.md
src/image.js:11
Info
Project directory scanning is appropriate Sensitive Access
src/analyzer.js scans the provided project path for README files, package.json, and code structure. Files over 512KB are skipped. node_modules and other common ignore dirs are excluded.
if (IGNORE_DIRS.has(entry.name)) continue
→ No action needed - behavior is appropriate for the stated purpose
src/analyzer.js:50
Info
Dependencies have version constraints Supply Chain
Dependencies are declared with caret ranges (^11.2.0 for marked, ^1.58.2 for playwright). playwright is an optional dependency. No direct known vulnerabilities detected.
"marked": "^11.2.0"
→ Consider pinning exact versions for reproducible builds
package.json
ResourceDeclaredInferredStatusEvidence
Filesystem READ READ ✓ Aligned src/analyzer.js:fs.promises.readdir - directory scanning; src/utils.js:readTextF…
Filesystem NONE WRITE ✓ Aligned src/template.js:fs.promises.writeFile - writes generated HTML to output path
Network NONE READ ✗ Violation src/github.js:https.get - fetches GitHub API for repo metadata
Shell NONE WRITE ✗ Violation src/git.js:execSync - runs git clone command
Browser NONE WRITE ✗ Violation src/image.js - uses playwright to take screenshots
7 findings
🔗
Medium External URL 外部 URL
https://clawhub.ai/kunyashaw/project-intro-generator
README.md:5
🔗
Medium External URL 外部 URL
https://www.youtube.com/watch?v=6ZRcgbdZSXw
README.md:10
🔗
Medium External URL 外部 URL
https://img.youtube.com/vi/6ZRcgbdZSXw/maxresdefault.jpg
README.md:11
🔗
Medium External URL 外部 URL
https://mirrors.huaweicloud.com/repository/npm/fsevents/-/fsevents-2.3.2.tgz
package-lock.json:9
🔗
Medium External URL 外部 URL
https://mirrors.huaweicloud.com/repository/npm/marked/-/marked-11.2.0.tgz
package-lock.json:15
🔗
Medium External URL 外部 URL
https://mirrors.huaweicloud.com/repository/npm/playwright/-/playwright-1.58.2.tgz
package-lock.json:20
🔗
Medium External URL 外部 URL
https://mirrors.huaweicloud.com/repository/npm/playwright-core/-/playwright-core-1.58.2.tgz
package-lock.json:30

File Tree

16 files · 100.6 KB · 2819 lines
JavaScript 10f · 1991L Markdown 3f · 734L JSON 3f · 94L
├─ 📁 bin
│ └─ 📜 cli.js JavaScript 95L · 3.1 KB
├─ 📁 public
│ └─ 📜 html2canvas.min.js JavaScript 7L · 237 B
├─ 📁 src
│ ├─ 📜 analyzer.js JavaScript 700L · 22.7 KB
│ ├─ 📜 git.js JavaScript 33L · 809 B
│ ├─ 📜 github.js JavaScript 112L · 3.8 KB
│ ├─ 📜 image.js JavaScript 28L · 943 B
│ ├─ 📜 index.js JavaScript 59L · 2.0 KB
│ ├─ 📜 template.js JavaScript 801L · 35.9 KB
│ ├─ 📜 themes.js JavaScript 69L · 1.8 KB
│ └─ 📜 utils.js JavaScript 87L · 2.0 KB
├─ 📋 package-lock.json JSON 35L · 1.3 KB
├─ 📋 package.json JSON 36L · 697 B
├─ 📝 README.md Markdown 93L · 3.2 KB
├─ 📝 rules.md Markdown 558L · 18.8 KB
├─ 📋 skill.json JSON 23L · 605 B
└─ 📝 SKILL.md Markdown 83L · 2.7 KB

Dependencies 2 items

PackageVersionSourceKnown VulnsNotes
marked ^11.2.0 npm No Markdown parser, version range not pinned
playwright ^1.58.2 npm No Optional dependency for screenshot export, version range not pinned

Security Positives

✓ No credential harvesting - skill does not read ~/.ssh, ~/.aws, .env, or other sensitive credential paths
✓ No data exfiltration - no POST requests to external IPs, no credential theft
✓ No obfuscation - all code is readable JavaScript with no base64-encoded payloads
✓ No hidden instructions - no HTML comments with encoded commands
✓ No reverse shell - no network listeners or outbound shells
✓ Git clone input is safely used as repository URL parameter only (not injectable as arbitrary command)
✓ File reads are scoped to user-provided project directories only
✓ Appropriate directory exclusions (node_modules, .git, dist, etc.)
✓ Files over 512KB are skipped during analysis