design-taste-frontend

ISSUES FOUND max severity CRITICALSkillSpector Do not install 100 registry leonxlnx last scanned 1 scan

39 findings (30 critical, 5 medium, 3 low, 1 info), mainly command injection, data exfiltration, unauthorized tool use. Most recent scan 2026-10-22.

Second scanner: NVIDIA SkillSpector

Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.

What this skill does

tasteskill v2, the anti-slop frontend skill. Art direction for websites, distilled from a study of 247 curated gallery sites (One Page Love, Awwwards Sites of the Day). Deals researched directions (idea, composition, type, palette, photographs, section blueprints) from a library, enforces a strict no-slop house style with a real-browser inspector, and runs a look-and-fix loop on screenshots. Use this whenever you build, design, redesign, restyle, polish or review a landing page, marketing site, portfolio, product page, one-pager, hero or any public-facing web page, in any stack (HTML/CSS,…

Package
38 files, 2.3 MB
SKILL.md
6331 words, 12+ sections
Code
JavaScript (12)

SKILL.md covers: tasteskill v2 · Page or app screen · The run · 1. Read the brief and the project · 2. Write the argument · 3. Draw the direction · 4. Find the idea · 5. Write the words · 6. Build it, still · 7. Gate · 8. Look · 9. Move

Findings

CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:108

await helper.eval((a) => {
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:124

const early = await page.eval(TITLE_SEEN).catch(() => null);
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:125

await page.eval('document.fonts.ready.then(() => true)').catch(() => {});
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:129

const metrics = await page.eval(probe);
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:133

const frameChecks = [await page.eval(frame).catch(() => null)];
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:136

await page.eval(`window.scrollTo({ top: ${i * h}, behavior: 'instant' })`).catch(() => {});
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:140

frameChecks.push(await page.eval(frame).catch(() => null));
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:141

await page.eval('window.__motionSample && window.__motionSample()').catch(() => {});
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:143

const motion = await page.eval('window.__motion ? window.__motion() : null').catch(() => null);
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:145

await page.eval(`window.scrollTo({ top: 0, behavior: 'instant' })`).catch(() => {});
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:147

const after = await page.eval(probe).catch(() => metrics);
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:149

const lay = await page.eval(layout).catch(() => null);
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:150

const appM = appMode ? await page.eval(app).catch(() => null) : null;
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:151

if (appM) appM.colourShare = await helper.eval(colourShare, 'data:image/jpeg;base64,' + frames[0]).catch(() => null);
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:154

const sceneState = w >= 1100 && !appMode ? await page.eval(`[...document.querySelectorAll('section.scene, .scene[data-scene]')].map((s) => ({ id: s.dataset.scene || s.id || 'scene', live: s.classList.contains('is-live'), rest: s.classList.contains('is-rest'), h: Math.round(s.getBoundingClientRect().height) }))`).catch(() => []) : [];
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:170

await page.eval(`window.scrollTo({ top: 0, behavior: 'instant' })`).catch(() => {});
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:177

const y = await page.eval('Math.round(scrollY || document.scrollingElement.scrollTop || 0)').catch(() => -1);
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/inspect.mjs:243

const hidden = await rp.eval(`(() => {
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic

Pattern detected: from 'node:child_process'

scripts/lib/cdp.mjs:4

import { spawn, spawnSync } from 'node:child_process';
Remediation: Avoid child_process. If required, use execFile with explicit arguments instead of exec with shell strings
CRITICAL Node.js child_process module usage for shell command execution Command Injectionstatic

Pattern detected: spawnSync(

scripts/lib/cdp.mjs:85

try { if (pid) { if (process.platform === 'win32') spawnSync('taskkill', ['/pid', String(pid), '/T', '/F'], { stdio: 'ignore' }); else process.kill(pid, 'SIGKILL'); } } catch {}
Remediation: Avoid child_process. If required, use execFile with explicit arguments instead of exec with shell strings
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/lib/cdp.mjs:204

async eval(fnOrExpr, arg) {
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/scenes.mjs:55

await helper.eval((a) => {
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/scenes.mjs:70

await page.eval('document.fonts.ready.then(() => true)').catch(() => {});
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/scenes.mjs:72

const scenes = await page.eval(SCENES);
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/scenes.mjs:82

await page.eval(go(Math.round(p.y))).catch(() => {});
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/scenes.mjs:94

await page.eval(go(Math.max(0, scenes[0].top - H))).catch(() => {});
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/scenes.mjs:96

await page.eval(`(() => { window.__f = []; let last = performance.now(); const tick = (t) => { window.__f.push(t - last); last = t; if (window.__f.length < 600) requestAnimationFrame(tick); }; requestAnimationFrame(tick); })()`);
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/scenes.mjs:99

const f = await page.eval('window.__f.slice(2)');
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/scenes.mjs:112

const h = await rp.eval('document.documentElement.scrollHeight');
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
CRITICAL Dangerous code execution functions that can execute arbitrary code Command Injectionstatic

Pattern detected: eval(

scripts/scenes.mjs:114

for (let y = 0, k = 0; y < h && k < 16; y += 900, k++) { await rp.eval(`window.scrollTo(0, ${y})`); await sleep(350); frames.push(await rp.screenshot({ quality: 70 })); labels.push(`reduced motion, screen ${k + 1}`); }
Remediation: Avoid eval(), exec(), and compile(). Use safer alternatives like ast.literal_eval() or operator module
MEDIUM Outbound network request primitives in JavaScript/TypeScript Data Exfiltrationstatic

Pattern detected: fetch(

scripts/assets.mjs:187

try { r = await fetch(url, { headers: { 'User-Agent': UA, Accept: 'application/json', ...headers }, signal: AbortSignal.timeout(ms) }); }
Remediation: Ensure network operations are necessary and document allowed destinations
MEDIUM Outbound network request primitives in JavaScript/TypeScript Data Exfiltrationstatic

Pattern detected: fetch(

scripts/assets.mjs:248

const r = await fetch(url, { headers: { ...headers, Range: `bytes=0-${want - 1}` }, signal: ac.signal, redirect: 'follow' });
Remediation: Ensure network operations are necessary and document allowed destinations
MEDIUM Outbound network request primitives in JavaScript/TypeScript Data Exfiltrationstatic

Pattern detected: fetch(

scripts/assets.mjs:742

try { r = await fetch(it.image, { headers: imageHeaders(it.image), signal: AbortSignal.timeout(90000) }); }
Remediation: Ensure network operations are necessary and document allowed destinations
MEDIUM Outbound network request primitives in JavaScript/TypeScript Data Exfiltrationstatic

Pattern detected: fetch(

scripts/assets.mjs:784

try { r = await fetch(it.image, { headers: { 'User-Agent': UA, Accept: 'video/*' }, signal: AbortSignal.timeout(600000) }); }
Remediation: Ensure network operations are necessary and document allowed destinations
MEDIUM Outbound network request primitives in JavaScript/TypeScript Data Exfiltrationstatic

Pattern detected: fetch(

scripts/assets.mjs:805

const pr = await fetch(it.poster, { headers: imageHeaders(it.poster), signal: AbortSignal.timeout(60000) });
Remediation: Ensure network operations are necessary and document allowed destinations
LOW Script contacts a destination the documentation never mentions Unauthorized Tool Usestatic

Script contacts or configures 'www.artic.edu' but the skill documentation never visibly mentions it. Undocumented network destinations can indicate behaviour the manifest and description do not disclose.

scripts/assets.mjs:433

Remediation: Document the destination in SKILL.md (or the manifest description) if it is intended, or remove the undisclosed network access. Organizations can list internal hosts in llm_analysis.trusted_reference_domains.
LOW Script contacts a destination the documentation never mentions Unauthorized Tool Usestatic

Script contacts or configures 'www.nasa.gov' but the skill documentation never visibly mentions it. Undocumented network destinations can indicate behaviour the manifest and description do not disclose.

scripts/assets.mjs:570

Remediation: Document the destination in SKILL.md (or the manifest description) if it is intended, or remove the undisclosed network access. Organizations can list internal hosts in llm_analysis.trusted_reference_domains.
LOW Script contacts a destination the documentation never mentions Unauthorized Tool Usestatic

Script contacts or configures 'x' but the skill documentation never visibly mentions it. Undocumented network destinations can indicate behaviour the manifest and description do not disclose.

scripts/inspect.mjs:53

Remediation: Document the destination in SKILL.md (or the manifest description) if it is intended, or remove the undisclosed network access. Organizations can list internal hosts in llm_analysis.trusted_reference_domains.
INFO Skill does not specify a license Policy Violationstatic

Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.

SKILL.md

Remediation: Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)

What is in the package

38 files, 2.3 MB. Show the list.
FileKindSize
README.mddoc5.2 KB
SKILL.mddoc38 KB
assets/app.cssdata16 KB
assets/base.cssdata6.4 KB
assets/base.jsscript2.1 KB
assets/charts.jsscript57 KB
evals/evals.jsonconfig8.0 KB
library/app.jsonconfig72 KB
library/directions.jsonconfig60 KB
library/heroes.jsonconfig106 KB
library/motions.jsonconfig8.8 KB
library/palettes.jsonconfig34 KB
library/photos.jsonconfig157 KB
library/sections.jsonconfig270 KB
library/sites.jsonconfig849 KB
library/type.jsonconfig80 KB
references/app-screens.mddoc83 KB
references/colour.mddoc6.7 KB
references/copy.mddoc9.2 KB
references/critique.mddoc11 KB
references/imagery.mddoc50 KB
references/layout.mddoc18 KB
references/motion.mddoc54 KB
references/research.mddoc24 KB
references/scenes.mddoc9.6 KB
references/tells.mddoc7.2 KB
references/type.mddoc8.3 KB
scripts/assets.mjsscript63 KB
scripts/draw.mjsscript53 KB
scripts/inspect.mjsscript27 KB
scripts/lint.mjsscript11 KB
scripts/scenes.mjsscript8.8 KB
assets/scenes/stage.cssdata1.1 KB
assets/scenes/stage.jsscript7.3 KB
scripts/lib/app-draw.mjsscript14 KB
scripts/lib/cdp.mjsscript12 KB
scripts/lib/probe.mjsscript79 KB
scripts/lib/rules.mjsscript36 KB

External hosts referenced

unsplash.com fonts.googleapis.com api.fontshare.com cdn.jsdelivr.net picsum.photos archive.org collectionapi.metmuseum.org www.artic.edu api.artic.edu api.openverse.org commons.wikimedia.org fonts.gstatic.com images-api.nasa.gov members-play.lacoste.com 2xa.studio aardvarkbookclub.com altergresources.com anidachi.com applied-imagination.gpc.consulting aprilleihuanani.com artemartemartem.com beigeforce.com belgrade.klmln.com belgradearbor.rs berd.xyz bleibtgleich.dev blode.co boc.studio brand.squarespace.com builderstable.net

Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.

Environment variables referenced

CHROME_PATH ASSETS_PATH PUPPETEER_EXECUTABLE_PATH USERPROFILE

Package contents recorded 2026-10-22 at commit 6010f91a9935. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.

What we checked

What we did not check

Sources