preflight

https://skills.sh/leonxlnx/taste-skill/design-taste-frontend-v1

taste-skill

Risky

Score 64 / 100 · 38 files read · 0 critical, 0 high, 4 medium, 4 low findings

Report e56ab67fb17dfccc · first scanned 2026-10-28 · scanned 24× · keyed to the exact package contents, so this link always shows this version

Subscores

credentials94
exfiltration92
execution92
injection100
obfuscation98
files84

100 is clean. Deductions come only from the cited findings below.

Findings

mediumCode contacts api.openverse.org, which the documentation never mentions
(package) · line 1 · rule M3
api.openverse.org
mediumWrites files under the user home directory
scripts/draw.mjs · line 22 · rule M5
ort { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs'; import { dirname, join, resolve } from 'node:path'; imp
mediumWrites files under the user home directory
scripts/lib/app-draw.mjs · line 13 · rule M5
ort { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs'; import { dirname, join, resolve } from 'node:path'; imp
mediumCan run shell commands from code
scripts/lib/cdp.mjs · line 4 · rule M1
wnSync } from 'node:child_process'; import { existsSync, mkdtempSync, rmSync, writeFileSync, readFileSync, readdirSync } from 'nod
lowUnusually large file in the package (0.8 MB) — bulk can hide a payload; we did not parse it
library/sites.json · line 1 · rule L3
0.8 MB
lowReads named environment variables (normal for API keys; listed in the permission summary)
scripts/draw.mjs · line 111 · rule L1
-- const userHist = process.env.TASTE_SKILL_HISTORY || join(homedir(), '.taste-skill', 'history.json'); const readHist = () => { f
lowReads named environment variables (normal for API keys; listed in the permission summary)
scripts/lib/app-draw.mjs · line 46 · rule L1
]; const userHist = process.env.TASTE_SKILL_HISTORY || join(homedir(), '.taste-skill', 'history.json'); const readHist = () => { t
lowReads named environment variables (normal for API keys; listed in the permission summary)
scripts/lib/cdp.mjs · line 12 · rule L1
e() { const env = process.env.CHROME_PATH || process.env.PUPPETEER_EXECUTABLE_PATH; if (env && existsSync(env)) return env;

Permission surface

Network endpoints
api.artic.eduapi.fontshare.comapi.openverse.orgarchive.orgcdn.fontshare.comcdn.jsdelivr.netcollectionapi.metmuseum.orgcommons.wikimedia.orgcreativecommons.orgfonts.googleapis.comfonts.gstatic.comgithub.comimages-api.nasa.govimages.nasa.govnikovirtanen.compicsum.photosunsplash.comwww.artic.eduwww.metmuseum.orgwww.nasa.govwww.w3.org
Environment read
CHROME_PATHHOMELOCALAPPDATAPROGRAMFILESPUPPETEER_EXECUTABLE_PATHTASTE_SKILL_HISTORYTASTE_SKILL_TMPUSERPROFILE
Shell execution
yes — code or scripts can run shell commands
Install hooks
none
Credential material
Reads named environment variables (normal for API keys; listed in the permission summary)

Provenance

Source
GitHub
Repository
leonxlnx/taste-skill
Owner
Leonxlnx
Stars
103946
Forks
7026
Repo created
2026-02-19
Last push
2026-10-28
License
MIT

Watch this package

Interest list only. We store the address and this report link, nothing else. No mail is sent in v1.

Share this report: https://preflight.orbitaldeskllc.com/r/e56ab67fb17dfccc