Claude Code, Skill
Bld Package
A lightweight Claude agent skillset, for every step of the process.
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 9c2c16294bdd, unchanged since the check below.
PERMISSION_DELETE_FILES NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST SECRETS_PATH_DOTENV SECRETS_ENV_READ
Why this grade
- PERMISSION_DELETE_FILES Low
Contains a call that can delete files.
skills/bld-runtime-activate-mcps/run.py, line 59
subprocess.run(["taskkill", "/F", "/T", "/PID", str(proc.pid)], - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
skills/bld-optimize-app/SKILL.md, line 107
curl -s --max-time 180 \ - NETWORK_UNNAMED_HOST Low
Calls a fixed host that the description does not name.
skills/bld-optimize-app/SKILL.md, line 107
curl -s --max-time 180 \ - SECRETS_PATH_DOTENV Low
Mentions a .env file.
.gitignore, line 9
.env - SECRETS_ENV_READ Note
Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.
skills/bld-optimize-security/references/ecc/cloud-infrastructure-security.md, line 76
const apiKey = process.env.API_KEY; // Not rotated, not audited
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
skills/bld-runtime-activate-mcps/run.py, line 59
subprocess.run(["taskkill", "/F", "/T", "/PID", str(proc.pid)],
skills/bld-runtime-activate-mcps/run.py, line 83
out = subprocess.run(["tasklist", "/FI", "PID eq %d" % pid],
skills/bld-runtime-activate-mcps/run.py, line 102
"p = subprocess.Popen([sys.executable, '-c', 'import time; time.sleep(120)']);"
Show more
skills/bld-runtime-activate-mcps/run.py, line 105
proc = subprocess.Popen([sys.executable, "-c", parent_src],
skills/bld-runtime-activate-mcps/run.py, line 115
subprocess.run(["taskkill", "/F", "/PID", str(kid)], capture_output=True) \
skills/bld-runtime-activate-mcps/run.py, line 138
proc = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
skills/bld-settings-mcp/scripts/mcp-settings.py, line 149
os.remove(path)
skills/bld-settings-mcp/scripts/mcp-settings.py, line 166
os.remove(tmp)
skills/bld-settings-professional/scripts/switch-mode.py, line 251
subprocess.run(["git", "-C", ROOT, *args], check=True,
skills/bld-setup/scripts/preflight.py, line 21
# way to `shutil.which` (3.3+) or `subprocess.run(capture_output=)` (3.7+) and
skills/bld-setup/scripts/scenarios.py, line 169
shutil.rmtree(proj, ignore_errors=True)
skills/bld-setup/scripts/scenarios.py, line 487
shutil.rmtree(root, ignore_errors=True)
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address. can reach target.example. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
skills/bld-optimize-app/SKILL.md, line 107
curl -s --max-time 180 \
skills/bld-optimize-security/references/ecc/cloud-infrastructure-security.md, line 242
async fetch(request: Request): Promise<Response> {
skills/bld-optimize-security/references/ecc/cloud-infrastructure-security.md, line 243
const response = await fetch(request);
Show more
skills/bld-optimize-security/references/ecc/security-review.md, line 439
const response = await fetch('/api/protected')
skills/bld-optimize-security/references/ecc/security-review.md, line 445
const response = await fetch('/api/admin', {
skills/bld-optimize-security/references/ecc/security-review.md, line 453
const response = await fetch('/api/users', {
skills/bld-optimize-security/references/ecc/security-review.md, line 463
fetch('/api/endpoint')
skills/bld-optimize-seo-indexing/SKILL.md, line 39
curl -s -o /dev/null -w "home %{http_code}\n" $APP/
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
skills/bld-optimize-security/references/ecc/cloud-infrastructure-security.md, line 76
const apiKey = process.env.API_KEY; // Not rotated, not audited
skills/bld-optimize-security/references/ecc/security-review.md, line 34
const apiKey = process.env.OPENAI_API_KEY
.gitignore, line 9
.env
Show more
skills/bld-util-deploy/SKILL.md, line 18
git -C <app> status --short # sanity: no real .env/secret staged
.gitignore, line 8
# never
.gitignore, line 11
!.env.example
skills/bld-optimize-security/references/13-layers.md, line 21
| 7 | CI/CD & version control | `.env`/`.env.*` gitignored (`!.env.example` allowed) **before first commit**, no secrets in git history, GitHub Actions least-privilege + secret sca
skills/bld-optimize-security/references/13-layers.md, line 52
| 15 | Disable directory listing | 5 | Static hosting and `express.static` don't serve index listings, and no stray files (`.git`, `.env`, backups) are publicly reachable |
skills/bld-optimize-security/references/ecc/agentshield-checklist.md, line 49
- `.gitignore` ignores `.env`, `.env.*` (allows `!.env.example`), and `handoff.md`.
skills/bld-optimize-security/references/ecc/security-review.md, line 46
- [ ] `.env.local` in .gitignore
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 9c2c16294bdd. can delete files. can reach a host that is not written as a fixed address. can reach target.example. The description does not name that host. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 9c2c16294bddf38841dcffb473820c0e6d4aa39e
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.