Install
$ agentstack add skill-ychampion-cskill-agents-case-normalized-sensitive-path-guards ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
SKILL: Case-Normalized Sensitive Path Guards
Domain: sensitive-paths Trigger: Use whenever user input targets .claude, dotfiles, or other dangerous locations on case-insensitive filesystems such as Windows and macOS. Source Pattern: Distilled from reviewed permission, shell-safety, and worktree-management implementations.
Core Method
Normalize every candidate path before comparing it against the sensitive-path denylist. That means lowercasing when the platform is case-insensitive and standardizing separators so \ and / are treated consistently. Compare the normalized path against intact dangerous filenames and directory suffixes, not against the raw user input. This closes bypasses that rely on mixed case or alternate separators to sneak past exact-match checks.
Key Rules
- Always canonicalize separators (
/vs\) with an OS-aware helper so sensitive paths still match across shells and platforms. - Reject normalized paths that end with the dangerous list entries, even if the original case or separator mix was different.
- Use this normalized result once per decision and reuse it for multiple rules (path scope detection, dangerous file detection, etc.) to avoid double work.
- Keep the normalization utility deterministic; it should never return a trimmed path that differs semantically from the original.
Example Application
Before granting an edit permission to ~/.claude/settings.local.json, normalize the path, detect that it still ends in .claude/settings.local.json, and route it through the strict config-file safety gate.
Anti-Patterns (What NOT to do)
- Don’t compare raw paths directly; that misses exploits that only change letter casing or mix separators.
- Avoid normalizing only once per session — do it every time a new path is evaluated so dynamic paths stay protected.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: ychampion
- Source: ychampion/cskill-agents
- License: MIT
- Homepage: https://x.com/YashasGunderia/status/2039990540016693692?s=20
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.