buriedsignals/spotlight/shell-safety
Claude Code and agent skill by buriedsignals/spotlight
- community
- ext:[{"type":"config","description":"Configuration overrides"}]
Checking that the SKILL.md file is still in the repository.
Portable safe command construction for any agent skill or recipe. Use before a shell call containing user, model, scraped, configuration, filesystem, or generated values.
Install
npx vskill@latest install buriedsignals/spotlight/shell-safetySemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
Shell Safety
Use this skill before any shell operation that includes data from a user, model, scraped page, email, social post, configuration file, filesystem path, or generated output. Treat all such material as untrusted input.
Non-Negotiable Rules
- Do not build shell commands by interpolating untrusted strings.
- Prefer helper scripts that receive arguments as argv, stdin, environment variables, temp files, or structured JSON.
- Validate values before command construction.
- Do not let user input select flags, command separators, shell operators, or output paths outside the allowed base directory.
- Treat copy, move, overwrite, delete, archive extraction, and lock cleanup as destructive.
Validation Helper
Run the helper from the Spotlight checkout root, through the Spotlight interpreter (never a bare python3):
This is the one supported entry. It runs this skill's scripts/shell_safe.py, so do not call that file directly.
The helper rejects shell metacharacters in identifiers, invalid URL schemes, & outside a URL's query string (always pass a URL double-quoted), path traversal outside the allowed base, leading-dash path segments, NUL bytes, and unsafe destructive targets.
Curl Guidance
Do not write examples like:
Use one of these instead:
curl --get --data-urlencode "q=<value>" https://example.test/search- a Python helper that serializes JSON with
json.dumps - a temp JSON file passed as
--data @file.json
CLI Argument Guidance
Passing an untrusted string inside a shell-quoted CLI argument still lets the shell interpret quotes, backticks, and substitutions. Prefer stdin, a validated temporary file, environment variables, or structured JSON. If a downstream tool accepts only one quoted argument, reject NUL, line breaks, backticks, $, ;, &, |, <, and > before invocation.
Destructive Operations
Before destructive work:
- Resolve paths.
- Confirm every path is inside the expected base.
- Run
destructive-probeor an equivalent non-destructive probe using the same resolved arguments. - Record the probe output.
- Run the real operation only after the probe is inspected.
- Record the real operation in the run log or evidence bundle.
Never provide one-shot destructive commands in skill instructions.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/shell-safety/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Extension points
configConfiguration overrides
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/buriedsignals/spotlight/shell-safety)