nextlevelbuilder / nextlevelbuilder/ui-ux-pro-max-skill

NLPM Automated Audit: 2 bugs + 3 security fixes (score 85/100)

Open
#289 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

agent:github-maintain decision:backlog maintain:accepted
Dominant language
Python
Stars
129k
Forks
13.7k
Avg merge
23h 27m
Merged PRs (30d)
23

Description

Automated audit: This issue was created by NLPM, a natural language programming linter, running via claude-code-action. All findings are provided in good faith — please evaluate them on their merits.

About This Audit

NLPM (Natural Language Programming Manager) scored this plugin's NL artifacts (skills, manifests, CLAUDE.md) on a 100-point scale and ran a security scan across executable surfaces (scripts, CLI source, package manifests).

Overall NL Score: 85/100 — well above the default 70-point threshold. This is a high-quality plugin with good structure and content depth.

Security: CLEAR — no Critical or High findings. Three Medium and two Low findings were found, three of which have straightforward code-level fixes.


Bugs Found (2)

Bug 1 — Priority: High

File: .claude/skills/slides/SKILL.md line 14
Issue: Raw template variable <args>$ARGUMENTS</args> left unsubstituted in the rendered skill body — a copy-paste artifact from a template generator. Renders as literal XML-like text visible to LLM consumers.
PR: #287

Bug 2 — Priority: Medium

File: .claude-plugin/plugin.json
Issue: Marketplace description claims "67 styles, 15 stacks" but the actual styles.csv has 84 entries and the description's own enumeration lists exactly 12 stacks (not 15). This sets incorrect expectations for users browsing the Claude marketplace.
PR: #282


Security Fixes Submitted (3 Medium)

Security Fix 1 — Medium

File: .claude/skills/brand/scripts/sync-brand-to-tokens.cjs line 253
Issue: execSync with a backtick template string. All variables are currently hardcoded constants, but the pattern is fragile — any future variable substitution with user input would create shell injection with no warning.
Fix: Replace with execFileSync('node', [...args]) to eliminate the shell-expansion surface.
PR: #283

Security Fix 2 — Medium

File: .claude/skills/ui-styling/scripts/shadcn_add.py line 101
Issue: npx shadcn@latest add silently downloads whatever npm publishes as latest on each run. No version pinning means each invocation may install a different (unverified) package.
Fix: Add a helper that reads the pinned version from the project's package.json, falling back to a documented default.
PR: #284

Security Fix 3 — Medium

File: cli/src/utils/github.ts line 72
Issue: downloadRelease() fetches a ZIP from GitHub releases and writes it to disk with no integrity check. A compromised release asset would be silently installed into user projects.
Fix: Add opt-in SHA-256 verification via a companion .sha256 asset; backward-compatible (no behavior change until a checksum file is uploaded to releases).
PR: #288


Informational (Not Submitted as PRs)

These are quality observations, not bugs. Sharing for awareness:

  • ui-ux-pro-max/SKILL.md uses name: ui-ux-pro-max without the ckm: namespace prefix used by all other skills in this plugin
  • ui-ux-pro-max/SKILL.md Step 1 contains "React Native (this project's only tech stack)" — a project-scoped note accidentally left in a published generic skill
  • banner-design/SKILL.md and design/SKILL.md reference external skills (ai-artist, ai-multimodal, chrome-devtools, etc.) that are not bundled in this plugin

Thank you for maintaining this plugin — the design intelligence database is genuinely well-built and the skill content quality is strong. These findings are all minor rough edges on an otherwise excellent project.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the cited files and existing PRs #282, #283, #284, #287, and #288, starting with the audit findings in this issue. Done means each reported bug or security concern has been evaluated and the corresponding change is merged or otherwise resolved, with the marketplace metadata and affected scripts, skill, and CLI behavior verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
github, javascript, node.js, python, typescript
Domain
cli, documentation, security, tooling
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.