Claude Code, Skill
97
Skills distilled from the hard-won lessons of world-renowned programmers, in the spirit of '97 Things Every Programmer Should Know'.
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.
PERMISSION_DELETE_FILES NETWORK_NO_FIXED_HOST SECRETS_PATH_DOTENV SECRETS_ENV_READ
Why this grade
- PERMISSION_DELETE_FILES Low
Contains a call that can delete files.
scripts/lib/run-harness.mjs, line 146
fs.rmSync(dir, { recursive: true, force: true }); - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
.todo/done/US-97-mvp/3-skill-before-you-refactor.md, line 7
Picked first because: narrow trigger ("about to refactor"), only 5 source principles to fetch (lowest research overhead), and high everyday value. - SECRETS_PATH_DOTENV Low
Mentions a .env file.
.gitignore, line 4
.env - SECRETS_ENV_READ Note
Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.
scripts/smoke-load.mjs, line 290
env: { ...process.env, ...env },
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
scripts/lib/run-harness.mjs, line 146
fs.rmSync(dir, { recursive: true, force: true });
.todo/done/US-v0.3-council-feedback/add-security-traps-skill.md, line 125
skill and produces `subprocess.run([...], shell=False)` with proper
.todo/done/US-v0.3-council-feedback/add-security-traps-skill.md, line 126
argument list, not `os.system(f"cmd {user_input}")`.
Show more
skills/security-and-trust-boundaries/SKILL.md, line 52
2. **`shell=False` is the default; `shell=True` is a vulnerability.** Use `subprocess.run(["git", "clone", url], shell=False)` (argv form), not `subprocess.run(f"git clone {url}",
skills/self-review/SKILL.md, line 42
- **String-built SQL, LDAP, or shell commands.** F-strings, `+` concatenation, or `.format()` building a query/command string with interpolated values; `subprocess.run(..., shell=T
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.
NETWORK_NO_FIXED_HOST
.todo/done/US-97-mvp/3-skill-before-you-refactor.md, line 7
Picked first because: narrow trigger ("about to refactor"), only 5 source principles to fetch (lowest research overhead), and high everyday value.
skills/observability/SKILL.md, line 48
4. **Propagate W3C Trace Context across process boundaries.** Every outgoing HTTP / gRPC / queue call carries the trace headers; every incoming handler reads them and continues the
skills/observability/SKILL.md, line 66
| "The downstream call uses raw `requests.get` - no need to thread the trace headers." | The trace breaks at the boundary; the operator cannot see the cross-service path. Propagate
Show more
skills/observability/principles.md, line 57
SDK (raw `requests.get`, manual queue producer, custom RPC) - the
skills/security-and-trust-boundaries/SKILL.md, line 58
5. **SSRF: don't fetch arbitrary URLs from input.** Server-side `requests.get(user_url)` lets the attacker pivot into your VPC, hit metadata services (`169.254.169.254`), and read
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
.gitignore, line 3
*.log
.gitignore, line 4
.env
scripts/smoke-load.mjs, line 290
env: { ...process.env, ...env },
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 9cf330d648df. can delete files. 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: 9cf330d648dfb2e22a1310ef190e62d208bd4000
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.