The talk
Take this home
1. Prompt: adopt a skill without copying it
Let your agent read the skill as untrusted text, list every link and command in it, and then write a new skill for your project in its own words. Then read the result yourself.
2. Settings: sandbox on, no unattended network access
Antigravity. In the App, keep the Default permission preset (sandbox on). The CLI starts without the sandbox: use agy --sandbox or "enableTerminalSandbox": true. Stay away from Turbo (App) and --dangerously-skip-permissions (CLI) with a new skill. Plugins install from any GitHub URL with agy plugin install; read them before you do. A deny rule for curl does not stop downloads: any tool that reaches the internet can fetch code. What helps is the sandbox and a prompt before every network access.
Gemini CLI (since 18 June 2026 for Gemini Code Assist Standard/Enterprise). The sandbox is off by default. Start with gemini --sandbox, or set it in settings.json:
{
"tools": { "sandbox": true }
}
Avoid --approval-mode=yolo and the --consent flag of gemini skills install, which skips the security prompt. On macOS the default sandbox profile still allows outbound network.
Claude Code. Since v2.1.283 it starts in auto mode, where a classifier decides instead of a prompt and read-only HTTP requests are allowed. For a new skill, use manual mode and the sandbox. In ~/.claude/settings.json:
{
"sandbox": { "enabled": true },
"permissions": {
"defaultMode": "default",
"deny": ["Bash(curl *)", "Bash(wget *)"]
}
}
Also check a skill’s frontmatter for allowed-tools: in Claude Code a skill can pre-approve its own tools. A deny rule does not catch the same program called by path or inside sh -c.
Codex. Sandbox on and network off by default. Keep it that way in ~/.codex/config.toml and never use --yolo with a new skill:
sandbox_mode = "workspace-write"
approval_policy = "on-request"
Check the docs of your tool for the current syntax. Links below.
3. The five-minute check
- Read the
SKILL.md, the file the agent reads, not the README of the marketplace. - Search for addresses. Does every domain really belong to the vendor? Is the spelling exactly right?
- Look into the scripts and everything the skill wants to install.
- Origin over popularity. Who submitted it?
A skill that fetches instructions from the internet cannot be reviewed. Treat untrusted skills as inspiration.
All sources
The case: brand-landingpage from wshobson/agents
- AIR: The Story of Skills (22 June 2026), the experiment behind brand-landingpage
- Pull request wshobson/agents#509, which added brand-landingpage, with the review
- Archive copy of brand-landingpage, links defanged. Warning: do not install.
- skills.sh security audit of brand-landingpage: risk level critical, still listed
Where brand-landingpage was listed (4 November 2026)
The listings shown on the slides. Warning: do not install.
- skills.sh
- skills.sh audit
- Claude Marketplaces
- SkillsMP
- Claude Market
- Skillselion
- OpenDesign
- @skills
- claude-plugins.dev
- Skillstore
- agentskill.sh
- Skills.lc
- Awesome Skills
- Vibe Index
Research
- Koi Security: 341 malicious skills (February 2026, archived copy)
- Snyk Agent Scan: issue codes and technical report
- Study of 67,453 skill versions: arXiv 2606.01494
- Unit 42, Palo Alto Networks: AI supply chain risk
- Scanners: NVIDIA SkillSpector, Snyk Agent Scan, Cisco Skill Scanner
Backup: popular skills, analyzed
Reached real users and still work today, as of 5 November 2026. Links to code point to the exact commit. Warning: do not install.
- ClawHavoc dropper still listed on skills.sh: sundial-org/awesome-openclaw-skills
- The same dropper after a mass import: LeoYeAI/agent-master-skills, commit fd6c8c4
- A fake find-skills that sends the host name: roin-orca/skills, reported in vercel-labs/skills#921
- Six copies named “superpowers”, for example 101-skills/superpowers, content from inference-sh/skills; the original is obra/superpowers
- Sleek’s skill without its name: designed-by-ai/skills, original sleekdotdesign/agent-skills
- Island: AgentBaiting (July 2026)
- SafeDep: Miasma worm (June 2026)
- Embrace The Red: Scary Agent Skills: Hidden Unicode Instructions in Skills (February 2026)
- npm names that did not exist: caveman, extract-design-system, claude-code-templates, Front-End-Checklist; now placeholders: caveman-mcp, extract-design-system-mcp, browseract-mcp, @frontendchecklist/cli
- PyPI names that did not exist: OpenClaw, mcp-agent; secured
context7-mcp,mcp-server-azure,-arxivand-discord; PyPI quarantined them without files after it suspended my account on 6 November 2026 - Popularity: the skills.sh leaderboard
Vendor documentation
- agentskills.io, the open Agent Skills format
- Antigravity: skills, plugins, marketplace, sandbox, permissions
- Gemini CLI: Agent Skills, sandbox, extension gallery
- Claude: Agent Skills, plugins, security, sandboxing
- Docker Sandboxes
- Curated by the vendor: angular/skills, google/skills