Claude Code, Plugin
Claude Skills
Skills personnels pour Claude Code — une famille cohérente qui couvre le cycle de vie complet d'une tâche de dev, du cadrage à la clôture.
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).
config/hooks/guard.sh, line 22
.env|.env.*|*.pem|*.key|id_rsa|id_ed25519|*.p12|*.pfx|*credentials*|*secret*) return 0 ;;
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
plugins/feature-loop/skills/feature-loop/scripts/log_run.py, line 44
proc = subprocess.run(["git", "-C", repo, "rev-parse", "--abbrev-ref", "HEAD"],
plugins/senior-review/skills/senior-review/scripts/log_run.py, line 49
proc = subprocess.run(["git", "-C", repo, *args], capture_output=True)
plugins/senior-review/skills/senior-review/scripts/mutate.py, line 80
proc = subprocess.run(
Show more
plugins/senior-review/skills/senior-review/scripts/mutate.py, line 122
shutil.rmtree(snapdir, ignore_errors=True)
plugins/senior-review/skills/senior-review/scripts/test_log_run.py, line 17
subprocess.run(cmd, cwd=repo, check=True, capture_output=True)
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 doi.org. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
config/hooks/statusline.sh, line 192
resp=$(curl -s --max-time 3 \
plugins/rediger-cir/skills/rediger-cir/references/06-etat-de-lart-IA-detail.md, line 126
curl -LH "Accept: application/x-bibtex" https://doi.org/10.1126/science.169.3946.635
plugins/rediger-cir/skills/rediger-cir/references/06-etat-de-lart-IA-detail.md, line 128
curl -LH "Accept: text/x-bibliography; style=apa" https://doi.org/{DOI}
Show more
plugins/rediger-cir/skills/rediger-cir/references/06-etat-de-lart-IA-detail.md, line 130
curl -LH "Accept: application/vnd.citationstyles.csl+json" https://doi.org/{DOI}
plugins/rediger-cir/skills/rediger-cir/scripts/build-docx.sh, line 27
curl -sL "https://github.com/jgm/pandoc/releases/download/${ver}/pandoc-${ver}-linux-amd64.tar.gz" \
plugins/rediger-cir/skills/rediger-cir/scripts/verify-biblio.py, line 39
with urllib.request.urlopen(req, timeout=30) as r:
plugins/rediger-cir/skills/rediger-cir/scripts/verify-biblio.py, line 183
with urllib.request.urlopen(req, timeout=30) as r:
plugins/rediger-cir/skills/rediger-cir/scripts/verify-biblio.py, line 240
def fetch(doi, dest="biblio"):
plugins/rediger-cir/skills/rediger-cir/scripts/verify-biblio.py, line 308
fetch(arg, sys.argv[3] if len(sys.argv) > 3 else "biblio")
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_CREDENTIAL SECRETS_PATH_DOTENV
config/hooks/guard.sh, line 22
.env|.env.*|*.pem|*.key|id_rsa|id_ed25519|*.p12|*.pfx|*credentials*|*secret*) return 0 ;;
config/hooks/guard.sh, line 39
# lecture d'un .env via shell (hors *.example/.sample/...)
config/hooks/guard.sh, line 40
if printf '%s' "$cmd" | grep -Eq -- '(^|[|&;[:space:]])(cat|less|more|head|tail|bat|xxd|od|strings|nl)[[:space:]]+[^|&;]*\.env([[:space:]]|$|\.)'; then
Show more
config/hooks/guard.sh, line 41
printf '%s' "$cmd" | grep -Eq -- '\.env\.(example|sample|template|dist|local\.example)' || \
config/hooks/guard.sh, line 42
block "lecture d'un .env via shell. Exception autorisée : *.example."
config/hooks/statusline.sh, line 16
CREDENTIALS_FILE="${CREDENTIALS_FILE:-$HOME/.claude/.credentials.json}"
config/CLAUDE.md, line 7
- **INTERDIT** lire `.env`/`.env.*` - exception `.env.example`, `.env.local.example`
plugins/senior-review/skills/senior-review/SKILL.md, line 189
**Hygiène du re-run live (V1.0.1)** : si vérifier un finding exige de muter temporairement un fichier suivi (ex: pointer un `config.js`/`.env` vers un serveur de test), restaurer v
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 04401c62ece3. can delete files. can reach a host that is not written as a fixed address. can reach doi.org. The description does not name that host. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 04401c62ece35f1a5410258cb7ca1f038d644f4a
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.