Claude Code, Skill
skills
A collection of Docker skills for AI coding agents to help them build, test, debug, and optimize containerized apps with consistent, reusable workflows.
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 38df58b09720.
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_eval_check.py, line 66
mount = "--mount=type=secret,id=npmrc,target=/root/.npmrc,required=false"
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/check_dco.py, line 20
return subprocess.run(
scripts/check_external_links.py, line 114
result = subprocess.run(command, cwd=root, capture_output=True, check=False)
scripts/check_version_bumps.py, line 20
return subprocess.run(
Show more
scripts/image_inventory.py, line 96
result = subprocess.run(["git", "-c", f"safe.directory={root.resolve()}", *args], cwd=root, capture_output=True)
scripts/test_catalog.py, line 319
os.remove(os.path.join(root, "skills", "build-a", "skill.yaml"))
scripts/test_check_dco.py, line 24
return subprocess.run(args, cwd=self.root, check=True, text=True, capture_output=True)
scripts/test_check_external_links.py, line 51
subprocess.run(["git", *args], cwd=root, check=True, capture_output=True)
scripts/test_check_external_links.py, line 60
base = subprocess.run(["git", "rev-parse", "HEAD"], cwd=root, capture_output=True, check=True, text=True).stdout.strip()
scripts/test_check_external_links.py, line 79
return subprocess.run(["git", *args], cwd=root, check=True, capture_output=True, text=True).stdout.strip()
scripts/test_check_version_bumps.py, line 195
pathlib.Path(self.root, path).unlink()
scripts/test_prepare_release.py, line 264
os.remove(os.path.join(self.root, "README.md"))
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 docker.com. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
scripts/check_external_links.py, line 280
def fetch(url: str) -> Result:
scripts/check_external_links.py, line 338
result = fetch(url)
scripts/content_risk.py, line 78
errors.append(f"{relative}: curl/wget pipe-to-shell commands are prohibited")
Show more
scripts/test_check_external_links.py, line 223
result = links.fetch(release)
scripts/test_check_external_links.py, line 323
self.assertEqual(links.fetch("https://docker.com/a").level, level)
scripts/test_check_external_links.py, line 326
result = links.fetch("https://docker.com/a")
scripts/test_check_external_links.py, line 329
self.assertEqual(links.fetch("https://docker.com/a").level, "warning")
scripts/test_check_external_links.py, line 336
self.assertEqual(links.fetch(url).level, level)
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
scripts/test_eval_check.py, line 66
mount = "--mount=type=secret,id=npmrc,target=/root/.npmrc,required=false"
scripts/test_eval_check.py, line 78
for instruction in ("COPY .npmrc .", 'COPY [".npmrc", "/app/"]', "add .npmrc /app/"):
scripts/test_eval_check.py, line 84
for replacement in ("", ".npmrc", "# **/.npmrc"):
Show more
scripts/test_eval_check.py, line 86
content = self.dockerignore.replace("**/.npmrc", replacement)
skills/docker-build-strategies/SKILL.md, line 69
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc,required=false \
scripts/content_risk.py, line 131
if lowered.startswith(".env") or lowered.endswith(CREDENTIAL_SUFFIXES):
scripts/test_content_risk.py, line 105
for name in (".env", ".env.example", "client.pem", "client.key", "client.p12", "client.pfx"):
scripts/test_eval_check.py, line 167
"# Set POSTGRES_PASSWORD in .env to override it for local development.\n",
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 38df58b09720. can delete files. can reach a host that is not written as a fixed address. can reach docker.com. The description does not name that host. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 38df58b09720d38eb78c2c674675ddf9fa74d441
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.