Claude Code, Plugin
Ai Dev Kit
Production-ready AI dev workflow scaffold with 59 skills, 33 agents, hooks, and rules for Claude Code, Codex, Gemini CLI, Copilot CLI, Qwen Code, and OpenCode.
Compatibility: Not stated.
Grade D
Two or more Medium findings, or a High finding. Only try it in a sandbox.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit c5df01c6bdd8, unchanged since the check below.
INSTALL_LIFECYCLE_HOOK SECRETS_PATH_CREDENTIAL
Why this grade
- INSTALL_LIFECYCLE_HOOK Medium
A package install hook (preinstall, install, postinstall or prepare) runs a script.
package.json, line 40
install - SECRETS_PATH_CREDENTIAL Medium
Mentions a credential store path (~/.ssh, id_rsa, .npmrc, .aws/credentials, credentials.json, .netrc).
skills/autonomous-agent-harness/SKILL.md, line 278
const blockedPatterns = [".env", "secrets/", "/etc/", "id_rsa", ".pem"];
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/uninstall.js, line 8
await fs.rm(root, { recursive: true, force: true });
skills/continuous-agent-loop/SKILL.md, line 133
result = subprocess.run(command, shell=True, capture_output=True, text=True, timeout=300)
skills/eval-harness/SKILL.md, line 115
result = subprocess.run(
Show more
skills/security-review/SKILL.md, line 111
os.system(f"convert {filename} output.png") # User controls shell command!
skills/security-review/SKILL.md, line 119
subprocess.run(["convert", filename, "output.png"], check=True)
agents/security-reviewer.md, line 32
- **Command injection**: No shell execution with user input (`subprocess.run` with list args, no `shell=True`), input sanitization before system calls
skills/security-review/SKILL.md, line 124
- [ ] Shell commands use `subprocess.run([...])` with argument lists (no `shell=True`)
Install and update
Concern
runs a script at install time.
INSTALL_LIFECYCLE_HOOK
package.json, line 40
install
Network
Concern
can reach a host that is not written as a fixed address. can reach api.provider.com. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
skills/api-integrations/SKILL.md, line 133
return await external_api.fetch()
skills/api-integrations/SKILL.md, line 176
return await httpx.get("https://api.provider.com/v1/data")
skills/aws-deployment/SKILL.md, line 249
command = ["CMD-SHELL", "curl -f http://localhost:8080/health || exit 1"]
Show more
skills/aws-deployment/SKILL.md, line 543
curl -f --retry 3 --retry-delay 10 \
skills/aws-devops/SKILL.md, line 58
"command": ["CMD-SHELL", "curl -f http://localhost:8000/health || exit 1"],
skills/aws-devops/SKILL.md, line 251
curl && rm -rf /var/lib/apt/lists/*
skills/frontend-patterns/SKILL.md, line 635
http.get("/api/v1/users", () =>
skills/frontend-patterns/SKILL.md, line 692
http.get("/api/v1/users", () =>
skills/frontend-patterns/SKILL.md, line 1059
const response = await fetch("/api/v1/chat/completions", {
skills/security-review/SKILL.md, line 280
response = httpx.get(url) # User can request http://localhost:5432
skills/security-review/SKILL.md, line 299
response = httpx.get(url, timeout=10, follow_redirects=True)
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
agents/codebase-analyzer.md, line 139
6. Read config files (.env.example, docker-compose.yml, etc.)
skills/autonomous-agent-harness/SKILL.md, line 114
blocked_prefixes = ("/etc/", ".env", "secrets/", "config/production")
skills/autonomous-agent-harness/SKILL.md, line 278
const blockedPatterns = [".env", "secrets/", "/etc/", "id_rsa", ".pem"];
Show more
skills/codebase-onboarding/SKILL.md, line 128
"config": {".json", ".yaml", ".yml", ".toml", ".ini", ".env.example"},
skills/security-review/SKILL.md, line 366
env_file = ".env"
skills/security-review/SKILL.md, line 371
# .env.example (committed to repo)
skills/security-review/SKILL.md, line 392
'git rm --cached --ignore-unmatch .env' \
.gitignore, line 5
*.log
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 c5df01c6bdd8. can delete files. runs a script at install time. can reach a host that is not written as a fixed address. can reach api.provider.com. The description does not name that host. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: c5df01c6bdd89d5545b0fb1fb942c229e13e38fc
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.