Bug: Entire .claude/ directory prompts for approval, not just settings files
Description
Editing any file inside the .claude/ directory triggers an approval prompt — even files that have nothing to do with configuration (skill files, prompt templates, agent definitions, etc.).
The prompt reads: "Do you want to make this edit to [filename]? Yes / Yes, and allow Claude to edit its own settings for this session / No"
This appears to be an unintended side effect of the hardcoded protection added for settings.json / settings.local.json. The protection is correct for those files, but the implementation catches the entire .claude/ folder instead of just the settings files.
Steps to Reproduce
- Have a project with a
.claude/folder containing skill files or other non-settings files - Ask Claude to edit any file inside
.claude/(e.g..claude/skills/some-skill/SKILL.md) - Approval prompt appears, even with a broad
allowlist insettings.json
Expected Behavior
Only settings.json and settings.local.json (or equivalent config files) should trigger the approval prompt. All other files in .claude/ should respect the normal permissions/allow list.
Actual Behavior
Every file inside .claude/ triggers the prompt regardless of file type or content.
Environment
- Claude Code terminal (confirmed), also reported in VS Code extension
- macOS
- Permissions allow list includes
Edit(*),Write(*),Bash(*)
Additional Context
Files outside .claude/ (e.g. .tmp/, project root) edit freely with no prompt. The issue is scoped specifically to the .claude/ directory.
Clean repro:
.tmp/some-file.md→ no prompt ✓.claude/skills/any-skill/SKILL.md→ prompt triggered ✗.claude/settings.json→ prompt triggered ✓ (this one is intentional)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗