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+Tab(CLI) or the mode indicator (VS Code / Desktop);/permissionsmanages allow/deny rules, not the mode. Authoritative until session ends.
Two rules that override the stack (Anthropic's permission-modes docs, re-verified 2026-09-26):
- Layers 4 and 5 do not honor
autoorbypassPermissionsas a starting mode. AbypassPermissionsthere is ignored and the terminal session starts in Manual (default); anautothere is ignored in favour of the built-in default. Every other mode value applies from any layer. - The VS Code extension does not read layers 4–5 for its starting mode; it uses
claudeCode.initialPermissionMode(which does not acceptauto), and a bypass value needs the extension's Allow dangerously skip permissions toggle. With no override, Claude Code ≥ 2.1.283 starts in auto mode.