Claude Code, Skill
Prompt Studio
Prompt engineering workbench with a Lean persona layer that cuts LLM output size, cost, and latency.
Compatibility: Not stated.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit f220afc6501a, unchanged since the check below.
SECRETS_PATH_CREDENTIAL
Why this grade
- SECRETS_PATH_CREDENTIAL Medium
Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).
hooks/_lean_common.py, line 71
# path pointing at ~/.ssh/id_rsa; readers would leak it), caps read size,
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
Note
requests shell access. The manifest names this permission.
PERMISSION_SHELL_DECLARED
benchmarks/agentic/run.py, line 152
return subprocess.run([shutil.which("git") or "git", *args], cwd=str(workdir),
benchmarks/agentic/run.py, line 230
subprocess.run(["taskkill", "/F", "/T", "/PID", str(proc.pid)],
benchmarks/agentic/run.py, line 238
p = subprocess.Popen([sys.executable, "-c", "import time; time.sleep(30)"],
Show more
benchmarks/agentic/run.py, line 323
# open forever, so subprocess.run(timeout=) never fires and the worker freezes. Writing to a file
benchmarks/agentic/run.py, line 328
proc = subprocess.Popen(cmd, cwd=str(workdir), stdout=so, stderr=se,
benchmarks/agentic/run.py, line 399
try: return subprocess.run([shutil.which("claude"), "--version"], capture_output=True, text=True).stdout.strip()
benchmarks/agentic/tasks.py, line 543
proc = subprocess.Popen([node, str(srv)], cwd=str(workdir), env=env,
skills/compress/scripts/compress.py, line 212
result = subprocess.run(
Install and update
Concern
dependencies are not pinned.
INSTALL_UNPINNED
requirements.txt, line 11
supermemory>=3.0.0
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
app/services/model_catalog.py, line 25
resp = httpx.get(cfg.litellm_price_url, timeout=cfg.litellm_fetch_timeout)
benchmarks/benchmark.py, line 62
with urllib.request.urlopen(req, timeout=timeout) as resp:
benchmarks/agentic/judge.py, line 72
with urllib.request.urlopen(req, timeout=60) as r:
Show more
benchmarks/agentic/tasks.py, line 540
with urllib.request.urlopen(r, timeout=4) as resp:
frontend/lib/api.ts, line 23
const r = await fetch(url, opts);
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
app/config.py, line 11
env_file=".env",
benchmarks/benchmark.py, line 82
key = os.environ.get("ANTHROPIC_API_KEY")
hooks/_lean_common.py, line 71
# path pointing at ~/.ssh/id_rsa; readers would leak it), caps read size,
Show more
benchmarks/benchmark.py, line 129
key = os.environ.get("OPENAI_API_KEY")
benchmarks/benchmark.py, line 166
key = os.environ.get("GEMINI_API_KEY") or os.environ.get("GOOGLE_API_KEY")
benchmarks/agentic/complete.py, line 20
Judge: claude-sonnet-4-6, key from ../../.env (shared with judge.py). ~$0.003/cell.
benchmarks/agentic/complete.py, line 146
if not key: sys.exit("no ANTHROPIC_API_KEY (.env or env)")
benchmarks/agentic/judge.py, line 13
Judge: claude-sonnet-4-6 via the Anthropic Messages API (key from ../../.env). Scores the SOURCE
benchmarks/agentic/judge.py, line 43
for line in (ROOT / ".env").read_text(encoding="utf-8").splitlines():
benchmarks/agentic/judge.py, line 48
return os.environ.get("ANTHROPIC_API_KEY")
benchmarks/agentic/judge.py, line 177
if not key: sys.exit("no ANTHROPIC_API_KEY (.env or env)")
skills/compress/scripts/compress.py, line 46
# developers on sensitive codebases cannot cross. detect.py already skips .env
skills/compress/scripts/compress.py, line 190
api_key = os.environ.get("ANTHROPIC_API_KEY")
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 f220afc6501a. requests shell access. The manifest names this permission. dependencies are not pinned. can reach a host that is not written as a fixed address. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: f220afc6501a727985d5687fa0ccc56270537c5c
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.