Automated summary
Intercepts the moment right before a package install or the addition of a new third-party dependency/import, verifying that the package actually exists in its registry and checking its reputation before any install command runs.
Strengths
- Hard stop: no install command is executed until verification and explicit human approval have happened
- Covers four ecosystems (npm, PyPI, crates.io, RubyGems) and can extract packages straight from a manifest such as requirements.txt, package.json, pyproject.toml, Cargo.toml or Gemfile
- Produces safe install commands pinned to exact versions with lockfiles and hash verification instead of letting the agent improvise
- Refuses to whitelist a ๐ด verdict, closing off a permanent bypass of the guard
Limitations
- Relies on the bundled scripts/verify_packages.py and on network access to package registries; without them the procedure cannot run
- Checks existence and reputation of the name, so a real but freshly published malicious package can still slip through
- Reports are generated in Korean by default, requiring translation for English-speaking users
- Limited to npm, PyPI, crates and RubyGems; other package managers are not covered
Use it whenever an agent is about to run npm/pip/yarn/pnpm/poetry/cargo/gem install, edit a dependency manifest, or add an import of a third-party package.
Not needed for standard-library imports, internal or relative project imports, or packages already pinned and verified in an existing lockfile.
Security analysis
SafeThis 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
Examples
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โ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค ํ๊ตญ์ด ๋ฆฌํฌํธ ํฌ๋งท.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
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. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Bash, Read
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
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 must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js โฅ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/pre-install-package-verification-ms1aw3sz'openskills read 'pre-install-package-verification-ms1aw3sz'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/pre-install-package-verification-ms1aw3sz/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
DeFi AMM Security
Security
Security checklist for Solidity AMM contracts, liquidity pools, and swap flows. Covers reentrancy, donation attacks, oracle manipulation, slippage, and integer math.
Semgrep Rule Creator
Security
Creates custom Semgrep rules for detecting security vulnerabilities, bug patterns, and code patterns. Includes test-first methodology, taint mode support, and validation steps. Helps when building targeted static analysis detections.
Dev Toolbar Review Guide
Security
Safety rules for the dev toolbar, PostHog client, and feature flags. Use when reviewing changes to dev-tools and related files, covering environment guards, override cookies, and SSE stream safety.