Claude Code, Skill
Agent Standards
Agent Standards, a skill listed in the PlugVet directory.
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).
.agents/skills/asus-router/references/ssh-access.md, line 54
ssh-keygen -t ed25519 -f ~/.ssh/<key-name> -C homelab-agent
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
.agents/hooks/markdown_lint_check.py, line 173
result = subprocess.run(
.agents/hooks/no_ai_markers_check.py, line 806
os.remove(path)
.agents/hooks/preflight_gate.py, line 4542
"""What eval or Invoke-Expression writes, running code in the current shell."""
Show more
.agents/hooks/preflight_gate.py, line 4586
That is eval and Invoke-Expression, source and dot-sourcing, a shell with
.agents/skills/windows/references/package-managers.md, line 77
From the Scoop README: "Run the following commands from a regular (non-admin) PowerShell terminal to install Scoop", followed by `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
.agents/skills/windows/references/package-managers.md, line 87
Scoop never needs elevation for its own installs, so an agent can run it once the owner has asked for Scoop. The install line pipes a remote script into `Invoke-Expression`, so the
CHANGELOG.md, line 600
inline Python or JavaScript for the path it writes. It reads heredoc, piped, `eval`, `Invoke-Expression` and sourced
docs/AGENTS-UPDATE.md, line 323
python3 -c 'import json,subprocess;p=".claude/settings.json";u=json.loads(subprocess.check_output(["git","show","agent-standards/master:"+p],text=True,encoding="utf-8"));s=json.loa
docs/AGENTS-UPDATE.md, line 329
python -c 'import json,subprocess;p=".claude/settings.json";u=json.loads(subprocess.check_output(["git","show","agent-standards/master:"+p],text=True,encoding="utf-8"));s=json.load
Install and update
Note
The docs document an installer that pipes a download into a shell.
INSTALL_DOCUMENTED_INSTALLER
docs/MCP_SETUP.md, line 177
curl -LsSf https://astral.sh/uv/install.sh | sh
Network
Concern
can reach a host that is not written as a fixed address. can reach example.com. The description does not name that host. can reach app.example.com. The description does not name that host. can reach api. The description does not name that host. can reach api.kde-look.org. The description does not name that host. can reach api.example.com. The description does not name that host. can reach example.dev. The description does not name that host. can reach raw.githubusercontent.com. The description d
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST NETWORK_NAMED_HOST
.agents/skills/ai-regression-testing/SKILL.md, line 231
await fetch(`/api/items/${id}`, { method: "DELETE" })
.agents/skills/ai-regression-testing/SKILL.md, line 242
const res = await fetch(`/api/items/${id}`, { method: "DELETE" })
.agents/skills/arch-linux/scripts/arch-news-since.py, line 40
with urllib.request.urlopen(request, timeout=15) as response:
Show more
.agents/skills/ascend-memory/SKILL.md, line 83
curl -s -X POST $BASE/api/v1/memory/insert -H
.agents/skills/ascend-memory/SKILL.md, line 95
curl -s "$BASE/api/v1/memory/search?user_id=<user-id>&query=coffee%20preference&limit=5"
.agents/skills/ascend-memory/SKILL.md, line 121
curl -s -X DELETE "$BASE/api/v1/memory?memory_id=<id-from-search>"
.agents/skills/ascend-web-hunter/SKILL.md, line 87
curl -s --max-time 90 $BASE/api/v2/web/read -X POST -H "Content-Type: application/json" -d '{"url":"https://example.com/jobs/view/123","heavy_mode":true,"include_links":true}'
.agents/skills/ascend-web-hunter/SKILL.md, line 155
curl -s -X POST $BASE/api/v2/web/session/establish -H "Content-Type: application/json" -d '{"url":"https://app.example.com/dashboard"}'
.agents/skills/ascend-web-hunter/references/base-url.md, line 22
nter.internal http://localhost:7021; do curl -sf --max-time 3 "$candidate/health" >/d
.agents/skills/docker-patterns/references/dockerfiles.md, line 41
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:3000/health || exit 1
.agents/skills/docker-patterns/references/dockerfiles.md, line 66
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:8080/health || exit 1
.agents/skills/docker-patterns/references/dockerfiles.md, line 94
HEALTHCHECK --interval=30s --timeout=3s CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health/')" || exit 1
.agents/skills/syncthing/references/cli-and-rest.md, line 92
printf 'X-API-Key: %s\n' "$st_key" | curl -s -H @- http://127.0.0.1:8384/rest/system/version
.agents/skills/syncthing/references/troubleshooting.md, line 22
printf 'X-API-Key: %s\n' "$st_key" | curl -s -H @- "http://127.0.0.1:8384/rest/db/status?folder=<folder-id>"
.agents/skills/syncthing/references/troubleshooting.md, line 32
printf 'X-API-Key: %s\n' "$st_key" | curl -s -H @- "http://127.0.0.1:8384/rest/folder/errors?folder=<folder-id>"
.agents/skills/syncthing/references/troubleshooting.md, line 80
printf 'X-API-Key: %s\n' "$st_key" | curl -s -X POST -H @- "http://127.0.0.1:8384/rest/db/scan?folder=<folder-id>"
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
.agents/skills/ai-regression-testing/references/vitest-nextjs-harness.md, line 44
process.env.DATABASE_ANON_KEY = ""
.agents/skills/asus-router/references/ssh-access.md, line 54
ssh-keygen -t ed25519 -f ~/.ssh/<key-name> -C homelab-agent
.agents/skills/asus-router/references/ssh-access.md, line 64
cat ~/.ssh/<key-name>.pub
Show more
.agents/skills/asus-router/references/ssh-access.md, line 74
ssh-keygen -t ecdsa -b 256 -f ~/.ssh/<router-key-name> -C homelab-agent
.agents/skills/asus-router/references/ssh-access.md, line 88
HOMELAB_SSH_KEY=~/.ssh/<key-name>
.agents/skills/docker-patterns/SKILL.md, line 169
- .env
.agents/skills/docker-patterns/SKILL.md, line 230
.env
.agents/skills/docker-patterns/SKILL.md, line 231
.env.*
.agents/skills/docker-patterns/references/compose-and-debugging.md, line 22
- DATABASE_URL=postgres://postgres:${POSTGRES_PASSWORD:?set it in .env}@db:5432/app_dev
.agents/skills/security-review/SKILL.md, line 53
const apiKey = process.env.SEARCH_API_KEY
.agents/skills/security-review/references/cloud-infrastructure-security.md, line 80
const apiKey = process.env.API_KEY;
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. the file cap was reached before every file was read.
OBFUSCATION_FILE_OVER_READ_CAP OBFUSCATION_FILE_CAP_REACHED
.agents/hooks/preflight_gate.py, line 1
#!/usr/bin/env python3
.codex/agents/java-pro.toml, line 1
name = "java-pro"
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 f392247071d9. can delete files. The docs document an installer that pipes a download into a shell. can reach a host that is not written as a fixed address. can reach example.com. The description does not name that host. can reach app.example.com. The description does not name that host. can reach api. The description does not name that host. can reach api.kde-look.org. The description does not name that host. can reach api.example.com. The description does not name that host. can reach example.dev. The description does not name that host. can reach raw.githubusercontent.com. The description d reads a credential or environment file. a file was over the re
Date and source
Date checked:
github.com
Commit graded: f392247071d97a30f107a13f017a7c37ae802859
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.