Claude Code, Skill
skills
Reusable AI agent skills for Claude Code, Gemini CLI, and other AI coding tools
Compatibility: Not stated.
Grade C
One Medium finding. Read the report before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
SECRETS_PATH_CREDENTIAL
Why this grade
- SECRETS_PATH_CREDENTIAL Medium
Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).
scripts/test-deps-cadence-policy.sh, line 2095
Podfile Podfile.lock yarn.lock pnpm-lock.yaml pnpm-workspace.yaml .npmrc Gemfile Gemfile.lock \
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
scripts/check-release-lag.sh, line 64
result = subprocess.run(["git", "-C", args.repo, *argv], env=env,
scripts/check-release-lag.sh, line 75
self.process = subprocess.Popen(
scripts/test-doc-reconciliation.sh, line 261
tracked = subprocess.check_output(
Show more
scripts/test-model-tiers.sh, line 121
out = subprocess.run(["git", "-C", str(root), "ls-files", pattern],
scripts/test-release-lag.sh, line 49
result = subprocess.run(["git", "-C", str(repo), "-c", "commit.gpgsign=false",
scripts/test-release-lag.sh, line 92
result = subprocess.run(["bash", CHECKER, "--repo", str(repo), *arguments],
scripts/test-verify-issue-refs.sh, line 1212
result = subprocess.run(['bash', script, '--body-file', str(body),
scripts/fixtures/checkout-guard.py, line 44
return subprocess.check_output(["git", *args], cwd=cwd or self.repo,
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
skills/github-secrets/references/common-mistakes.md, line 40
- run: curl "${{ vars.API_URL }}" # variable - plaintext, not masked
skills/pr-shepherd/scripts/probe-platform-health.sh, line 60
# PLATFORM_STATUS_TIMEOUT seconds for that fetch (default 5)
skills/pr-shepherd/scripts/probe-platform-health.sh, line 383
# it is pre-existing, out of this issue's scope, and reaches `curl --max-time`
Show more
skills/pr-shepherd/scripts/probe-platform-health.sh, line 389
# value starting `-K` is read by curl as `--config` and can set `output`,
skills/pr-shepherd/scripts/probe-platform-health.sh, line 999
if command -v curl >/dev/null 2>&1; then
skills/pr-shepherd/scripts/probe-platform-health.sh, line 1000
# `--fail` is what makes a non-2xx a FAILURE: without it curl exits 0 on a
skills/pr-shepherd/scripts/probe-platform-health.sh, line 1008
status_raw="$(curl -sS --fail --proto '=https' --max-redirs 0 \
skills/pr-shepherd/scripts/probe-platform-health.sh, line 1011
add_error attribution status_fetch_failed "curl exited $rc fetching the status endpoint"
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
scripts/test-deps-cadence-policy.sh, line 2095
Podfile Podfile.lock yarn.lock pnpm-lock.yaml pnpm-workspace.yaml .npmrc Gemfile Gemfile.lock \
scripts/test-deps-cadence-render.sh, line 552
web/.npmrc rc
scripts/test-deps-cadence-render.sh, line 573
cg_named "web/*.npmrc" cgpods web/.npmrc
Show more
scripts/test-tracking-state.sh, line 18
# (`sassydog-x .env .sh` made `plan` print `git-add: .env`), a symlinked
scripts/test-tracking-state.sh, line 481
printf 'secret\n' > .env
scripts/test-tracking-state.sh, line 482
printf '#!/bin/sh\n' > '.claude/hooks/sassydog-x .env .sh'
scripts/test-tracking-state.sh, line 488
lacks "hostile names: plan never prints 'git-add: .env'" "$plan" "git-add: .env"
scripts/test-tracking-state.sh, line 494
tsd "$SC" derive --owned '.claude/hooks/sassydog-x .env .sh' >/dev/null 2>&1; expect "hostile names: --owned with whitespace is refused (exit 64)" "$?" 64
scripts/fixtures/checkout-guard.py, line 452
mutant = self.mutant('token = os.environ.get("SASSY_DOG_CHECKOUT_TOKEN", "")',
scripts/fixtures/checkout-guard.py, line 521
f"pathlib.Path({str(out)!r}).write_text(repr(os.environ.get('SASSY_DOG_CHECKOUT_TOKEN')))\n")
skills/pr-shepherd/scripts/checkout-guard.sh, line 558
token = os.environ.get("SASSY_DOG_CHECKOUT_TOKEN", "")
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Note
a file was over the read cap and was not fully read.
OBFUSCATION_FILE_OVER_READ_CAP
scripts/preflight.sh, line 1
#!/usr/bin/env bash
scripts/test-platform-health-probe.sh, line 1
#!/usr/bin/env bash
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 781d727a74e2. requests shell access. The manifest names this permission. can reach a host that is not written as a fixed address. reads a credential or environment file. a file was over the read cap and was not fully read.
Date and source
Date checked:
github.com
Commit graded: 781d727a74e20909964e202eb576cf1862987e86
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.