permission-check
Installation
SKILL.md
Permission Check
Purpose
Surface the full permission-mode picture across every layer Claude Code honors, so the user can see at a glance why prompts are (or aren't) firing. Claude Code resolves permission mode from a 6-tier stack; a single misconfigured layer produces silent overrides that are hard to debug by eye.
The 6 layers (precedence: bottom wins)
- VSCode user settings —
~/Library/Application Support/Code/User/settings.json(macOS),%APPDATA%/Code/User/settings.json(Windows),~/.config/Code/User/settings.json(Linux). Key:claudeCode.initialPermissionMode. - VSCode workspace settings —
<repo>/.vscode/settings.json. Same key. Wins over user. - CLI user settings —
~/.claude/settings.json. Key:permissions.defaultMode. - CLI project settings —
<repo>/.claude/settings.json. Same key. Wins over user. - CLI project-local settings —
<repo>/.claude/settings.local.json. Same key. Wins over project. - In-session mode — set at session start from layers 1-5, then mutable via
Shift+Tabor/permission-mode. Authoritative until session ends.
Key insight: initialPermissionMode only fires at session start. If you toggled mid-session (or the session started before a settings change), the file-level settings are correct but the runtime mode differs. That's the #1 source of "bypass isn't working" confusion.