Synthèse automatique
Intercepte le moment juste avant une installation de paquet ou l'ajout d'une nouvelle dépendance/import tiers pour vérifier que le paquet existe réellement sur le registre et évaluer sa réputation, avant d'exécuter la moindre commande d'installation.
Points forts
- Blocage explicite : toute commande d'installation est retenue tant que la vérification et l'approbation humaine n'ont pas eu lieu
- Couvre quatre écosystèmes (npm, PyPI, crates.io, RubyGems) et sait extraire les paquets directement depuis un manifeste (requirements.txt, package.json, pyproject.toml, Cargo.toml, Gemfile)
- Génère des commandes d'installation sûres avec version exacte, fichier de verrouillage et vérification de hachage au lieu de laisser l'agent improviser
- Refuse d'inscrire un verdict 🔴 en liste blanche, ce qui ferme la porte à un contournement permanent du contrôle
Limites
- Dépend du script fourni scripts/verify_packages.py et d'un accès réseau aux registres de paquets ; sans lui la procédure ne peut pas s'exécuter
- La vérification porte sur l'existence et la réputation du nom : un paquet réel mais récemment publié et malveillant peut passer le filtre
- Les rapports générés sont en coréen par défaut, ce qui demande une traduction pour des utilisateurs francophones
- Ne traite que npm, PyPI, crates et RubyGems ; les autres gestionnaires de paquets ne sont pas couverts
À utiliser dès qu'un agent s'apprête à lancer npm/pip/yarn/pnpm/poetry/cargo/gem install, à modifier un manifeste de dépendances ou à ajouter un import de paquet tiers.
Inutile pour les imports de la bibliothèque standard, les imports internes ou relatifs du projet, ou pour un paquet déjà figé et vérifié dans un fichier de verrouillage existant.
Analyse de sécurité
SûrThis is a defensive gate skill, not an offensive one: it explicitly forbids executing install commands before verification, mandates a human approval step, blocks 🔴 packages, and requires lockfile+hash-pinned installs. No destructive commands, no secret/token exfiltration, no curl|sh or obfuscated payloads. The only residual risk is the referenced verify_packages.py script (unshown, network-facing) and the allowlist state it writes, so a reviewer should confirm that script matches the described deterministic behavior before listing.
- •Instructions rely on a bundled script (scripts/verify_packages.py) that is not included in the SKILL.md text, so its actual network/registry behavior and file writes cannot be audited here
- •'approve' subcommand persists packages into assets/allowlist.json, creating persistent state that later runs trust without re-verification (mitigated by the rule that 🔴 can never be allow-listed)
- •Runs Bash to invoke python and package managers, and presumably performs network lookups against npm/PyPI/crates/rubygems registries
Exemples
Add image processing to this project and install whatever library you need for it.I'm getting 'ModuleNotFoundError: No module named requests' — just pip install it for me so the script runs.Add langchain-community-helpers to my requirements.txt and install it so I can import it in the new module.name: slopsquat-guard description: >- 패키지를 설치하거나 새 import/의존성을 추가하기 '직전'에 발동하라. "npm install", "pip install", "yarn add", "pnpm add", "poetry add", "cargo add", "gem install" 을 실행하려 할 때 / requirements.txt·package.json·pyproject.toml·Cargo.toml·Gemfile 을 고쳐 새 패키지를 넣으려 할 때 / 코드에 설치가 필요한 외부·서드파티 패키지의 import·require 를 새로 추가하려 할 때(표준 라이브러리·프로젝트 내부/상대 import 는 제외) / "module not found"·"No module named"·"Cannot find module" 오류를 설치로 해결하려 할 때, 먼저 이 스킬로 패키지의 실존·평판을 검증하라. 검증 전에는 어떤 설치 명령도 실행하지 마라. (triggers: install package, add dependency, add library, add third-party import, fix module-not-found, npm/pip/yarn/pnpm/poetry/cargo/gem install) allowed-tools: Bash, Read
slopsquat-guard — 설치 직전 패키지 검증 게이트
AI가 생성한 코드의 약 20%는 존재하지 않는 패키지를 참조하고, 그렇게 지어낸 이름의
약 43%는 같은 이름으로 반복 등장한다. 반복된다는 건 공격자가 그 이름을 미리 악성 패키지로
선점해 둘 수 있다는 뜻이다(슬롭스쿼팅). 비개발자는 module not found 오류가 뜨면
의심 없이 시키는 대로 설치한다 — 이 스킬은 바로 그 순간을 가로채 막는다.
🛑 절대 규칙 (HARD RULES)
- 검증되지 않은 패키지를 자동 설치하지 않는다. 항상 사람 승인 게이트를 거친다.
- 설치 명령을 먼저 실행하지 않는다. 검증 → 리포트 → (필요시) 승인 순서를 지킨다.
- 🔴(차단)/🟡(주의)가 하나라도 있으면 설치를 멈추고 사용자 승인을 먼저 받는다.
- 🔴는 사용자가 **"위험을 이해했고 그래도 진행한다"**고 명시적으로 답하기 전엔 진행 불가.
- 설치는 잠금파일 고정 + 해시 검증으로만 한다(package-lock.json / requirements 해시 / poetry.lock / pnpm-lock.yaml / Cargo.lock 등).
- 코드엔 있는데 레지스트리엔 없는 이름이면 **"AI가 지어낸 이름일 수 있다"**고 먼저 알린다.
- 🔴는 화이트리스트에 넣지 않는다. 사용자가 위험을 감수하고 강제 진행하더라도 그건 '이번 한 번'일
뿐이며,
approve로 영구 등록하는 것은 🟢/🟡 승인에만 허용된다(🔴를 등록하면 슬롭스쿼팅 우회로가 된다).
동작 절차 (이 순서를 지킨다)
참고: 아래 명령의
scripts/·references/·assets/경로는 모두 이 SKILL.md 가 있는 스킬 폴더 기준이다. 사용자 프로젝트 루트에서 실행할 때는 스킬 폴더의 절대경로를 앞에 붙여라 (예:python "<스킬폴더>/scripts/verify_packages.py" ...— Windows 등 경로에 공백이 있으면 큰따옴표로 감싼다).
- 개입 시점 — 패키지를 설치하거나 코드에 새 import/의존성을 추가하기 직전에 멈춘다. 설치 명령을 먼저 실행하지 않는다.
- 추출 — 추가하려는 패키지 이름과 생태계(npm / pypi / crates / rubygems)를 모은다.
- 검증 —
scripts/verify_packages.py를 실행한다.(python scripts/verify_packages.py --report --ecosystem pypi <패키지...> python scripts/verify_packages.py --json '[{"name":"react","ecosystem":"npm"}]' python scripts/verify_packages.py --report --manifest requirements.txt # 매니페스트 전체 자동 추출--report= 한국어 리포트 텍스트, 인자 없이 = JSON. 종료코드: 🔴=2, 🟡=1, 전부 🟢=0. 매니페스트 파일을 수정해 새 패키지를 넣으려 할 땐--manifest <파일>로 한 번에 검사한다.) - 리포트 — 결과를
references/REPORT_FORMAT.md형식의 한국어로 사용자에게 보여준다. - 게이트 — 🔴 또는 🟡가 하나라도 있으면 설치를 멈추고 명시적 승인을 요청한다. 승인 전까지 어떤 설치 명령도 실행하지 않는다.
- 승인 후 설치 — 잠금파일 + 해시로만 설치한다. 화이트리스트(
approve) 등록은 🟢/🟡 판정을 사용자가 승인한 경우에만 한다. 🔴를 강제 진행하면 이번 한 번만 설치하고 등록하지 않는다(다음에 다시 검증받게 둔다 — 스크립트도 기본적으로 🔴 등록을 거부한다. 의도적 강제 옵션이 있으나 일반 절차에서는 쓰지 않는다).python scripts/verify_packages.py approve <패키지> <생태계> # 🟢/🟡 승인 기록 (🔴엔 쓰지 않는다) python scripts/verify_packages.py install-cmd <패키지> <생태계> [버전] # 안전 설치 명령(잠금+해시) 생성install-cmd가 출력한 명령을 그대로 실행한다(직접 설치 명령을 지어내지 않는다).
승인 후 안전 설치 명령 (잠금파일 고정 + 해시 검증)
- pip :
pip-compile --generate-hashes로 해시 박힌 requirements 생성 →pip install --require-hashes -r requirements.txt - npm :
npm install <pkg>@<정확한버전> --save-exact→ 이후npm ci(lockfile 무결성 검증) - pnpm :
pnpm add <pkg>@<버전> --save-exact→pnpm install --frozen-lockfile - yarn :
yarn add <pkg>@<버전> --exact→yarn install --immutable - poetry :
poetry add <pkg>@<버전>(poetry.lock 에 해시 기록) →poetry install - cargo :
cargo add <pkg>@<버전>(Cargo.lock 에 체크섬 기록)
워크드 예시
사용자: "이미지 처리 기능 추가해줘" → AI가
pip install image-utils-pro를 실행하려 함. → 스킬 발동: 설치를 멈추고python scripts/verify_packages.py --report --ecosystem pypi image-utils-pro실행. → PyPI에image-utils-pro없음. → 리포트(스크립트 실제 출력):📦 패키지 안전 점검 결과 🔴 차단 — image-utils-pro : Python(pip) 공식 패키지 목록(앱을 받는 공식 앱스토어 같은 곳)에 이런 이름이 없습니다(AI가 이름을 지어냈을 가능성). → 설치를 멈췄습니다. 진행하려면 승인이 필요합니다. ※ 이 중 하나라도 🔴/🟡가 있으면 제가 임의로 설치하지 않습니다.→ "정확한 이미지 라이브러리(예: Pillow)를 찾아드릴까요?"라고 묻고, 승인 없이는 설치하지 않는다.
동봉 파일
scripts/verify_packages.py— 실존·평판·타이포스쿼팅·교차 레지스트리·보안경고 검증(결정적 로직).assets/allowlist.json— 사전 승인 패키지 화이트리스트(재검증 없이 통과, deprecated·보안 취약점이면 예외).assets/denylist.json— 알려진 악성·사칭 차단 목록(존재해도 항상 🔴).references/REPORT_FORMAT.md— 사용자에게 보여줄 한국어 리포트 포맷.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/pre-install-package-verification-ms1aw3sz' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/pre-install-package-verification-ms1aw3sz/download' --output '.skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md.part' && mv '.skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md.part' '.skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash, Read
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md' && test -s '.skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/slopsquat-guard' && cp -R '.skill-downloads/pre-install-package-verification-ms1aw3sz' '.claude/skills/slopsquat-guard'Cursor
test -f '.skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md' && test -s '.skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/slopsquat-guard' && cp -R '.skill-downloads/pre-install-package-verification-ms1aw3sz' '.cursor/skills/slopsquat-guard'Codex
test -f '.skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md' && test -s '.skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/slopsquat-guard' && cp -R '.skill-downloads/pre-install-package-verification-ms1aw3sz' '.agents/skills/slopsquat-guard'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/pre-install-package-verification-ms1aw3sz'openskills read 'pre-install-package-verification-ms1aw3sz'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Sécurité AMM DeFi
Securite
Checklist de sécurité pour les contrats Solidity AMM, pools de liquidité et flux de swap. Couvre réentrance, attaques par donation, manipulation d'oracles, etc.
Créateur de règles Semgrep
Securite
Crée des règles Semgrep personnalisées pour détecter des vulnérabilités de sécurité, des motifs de bugs et des motifs de code. Inclut une méthodologie de test en premier, le support du mode taint et des étapes de validation. Utile pour construire des détections d'analyse statique ciblées.
Revue barre d'outils développement
Securite
Règles de sécurité pour la barre d'outils de développement, le client PostHog et les feature flags. À utiliser lors de la revue de modifications des composants dev-tools et connexes.