Claude Code, Skill
Ai Skills
Compact, opinionated skills that change how AI coding agents behave.
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 NETWORK_UNNAMED_HOST SECRETS_PATH_DOTENV
Why this grade
- PERMISSION_DELETE_FILES Low
Contains a call that can delete files.
skills/agent-native-architecture/references/shared-workspace-architecture.md, line 221
await fs.rm(temporary, { force: true }); - NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
skills/agent-native-architecture/references/mcp-tool-design.md, line 232
const response = await fetch(url, { - NETWORK_UNNAMED_HOST Low
Calls a fixed host that the description does not name.
skills/agent-native-architecture/references/mcp-tool-design.md, line 232
const response = await fetch(url, { - SECRETS_PATH_DOTENV Low
Mentions a .env file.
skills/agent-native-architecture/references/architecture-patterns.md, line 92
│ - .env → secrets │
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/agent-native-architecture/references/shared-workspace-architecture.md, line 221
await fs.rm(temporary, { force: true });
skills/test-audit/scripts/pytest_reach_probe.py, line 32
_original_communicate = subprocess.Popen.communicate
skills/test-audit/scripts/pytest_reach_probe.py, line 75
subprocess.Popen.communicate = _recording_communicate
Show more
skills/test-audit/scripts/pytest_reach_probe.py, line 84
subprocess.Popen.communicate = _original_communicate
skills/verification-before-completion/references/isolated-verification.md, line 75
entry = subprocess.check_output(["git", "-C", repo, "ls-tree", "-z", tree, "--", relative])
skills/verification-before-completion/references/isolated-verification.md, line 81
content = subprocess.check_output(["git", "-C", repo, "cat-file", "blob", oid.decode()])
skills/code-review/references/review-traps-catalog.md, line 222
**Reality:** when a child process is spawned with `stdio: 'inherit'` (Node), `subprocess.run(...)` without `capture_output=True` (Python), `passthru`/`proc_open` with inherited des
skills/code-review/references/security-patterns.md, line 116
| PHP `exec(`, `system(`, `shell_exec(`, `passthru(`, backticks, `popen(`, `proc_open(` with a string command; Python `os.system(`, `subprocess.*(..., shell=True)`; Node `child_pro
skills/nodejs-backend/references/security.md, line 44
- **A timeout on the child is not a timeout on the pipe.** Killing or cancelling the immediate child leaves a grandchild it spawned (`gpg-agent`, `pinentry`, a browser prompt) hold
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 nextjs.org. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
skills/agent-native-architecture/references/mcp-tool-design.md, line 232
const response = await fetch(url, {
skills/agent-native-architecture/references/mcp-tool-design.md, line 431
const response = await fetch(url, {
skills/agent-native-architecture/references/self-modification.md, line 103
const response = await fetch(healthURL, {
Show more
skills/linux-bash-scripting/references/production-patterns.md, line 47
retry curl -fsSL "$url"
skills/code-review/references/security-patterns.md, line 130
| `requests.get(.*request`, `fetch(.*request`, `file_get_contents($url)` | URL checks bypassed by DNS rebinding or redirects | Allowlist parsed scheme/host; reject URLs containing
skills/python-services/references/concurrency-and-resilience.md, line 104
- **Switching to a shared pooled `requests.Session` newly exposes stale keep-alive failures.** Module-level `requests.get`/`requests.post` build a fresh `Session` and connection po
skills/react-frontend/SKILL.md, line 53
- Data fetching cancellation (pick by situation): `AbortController` for fetch; `ignore` flag for non-cancellable promises. With React Query, pass the query function's signal to the
skills/react-frontend/references/components-and-state.md, line 26
| Remount-timing mistake | Async callback mutates state/DOM after route change/unmount (`fetch().then(setData)` resolves post-navigation) | Cancel per the cancellation hierarchy |
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_DOTENV
skills/agent-native-architecture/references/architecture-patterns.md, line 92
│ - .env → secrets │
skills/agent-native-architecture/references/shared-workspace-architecture.md, line 433
/\.env/i,
skills/debugging/scripts/collect-diagnostics.sh, line 104
for f in package.json composer.json pyproject.toml Cargo.toml Gemfile go.mod build.gradle pom.xml Makefile Dockerfile docker-compose.yml .env.example; do
Show more
skills/git-worktree/references/workflow-examples.md, line 42
# For first feature (copies .env files; main is the default branch):
skills/git-worktree/references/workflow-examples.md, line 46
# Later, start second feature (also copies .env files):
skills/git-worktree/scripts/worktree-manager.sh, line 71
for source in "$GIT_ROOT"/.env*; do
skills/git-worktree/scripts/worktree-manager.sh, line 74
[[ "$name" != ".env.example" ]] || continue
skills/git-worktree/scripts/worktree-manager.sh, line 104
echo -e " ${YELLOW}ℹ️ No .env files found in main repository${NC}"
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 5dcf8a9eba49. can delete files. can reach a host that is not written as a fixed address. can reach nextjs.org. The description does not name that host. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 5dcf8a9eba4992769b4f09cd8cb1e9a6919ab6ea
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.