{ "_comment": "Template for this skill's Claude Code permissions. must be replaced with the absolute path where this plugin's skills/obsidian-vault-kb directory resolves to (i.e. the real, symlink-resolved path of skills/obsidian-vault-kb inside vendor/claude-code/plugins/obsidian-vault-kb/) before merging into settings.json. The /obsidian-vault-kb:setup command does this substitution automatically. Only the three read-only wrapper scripts are whitelisted, each pinned to its exact absolute path — no generic Bash(find:*), Bash(rg:*), Bash(cat:*), etc. The wrapper scripts themselves resolve the vault path only from ~/.agent-skills/obsidian-vault-kb/config.json and refuse to operate outside it, so whitelisting them does not grant filesystem access beyond the configured vault.", "permissions": { "allow": [ "Bash(/scripts/vault_index.sh:*)", "Bash(/scripts/vault_search.sh:*)", "Bash(/scripts/vault_backlinks.sh:*)", "Read(~/.agent-skills/obsidian-vault-kb/config.json)" ], "_deliberately_not_whitelisted": [ "No generic Bash(find:*), Bash(rg:*), Bash(grep:*), Bash(cat:*), Bash(sed:*), etc. — these would allow reading anywhere on the filesystem, not just the vault.", "No write/append command targeting the vault or the config file — creating or editing config.json, and any 'append'/'maintain' mode writes into vault notes, keep prompting for confirmation each time by design.", "No wildcard on the whole scripts/ directory — only the three specific script files are whitelisted, not the whole folder, so no other script could be dropped in and silently gain the same trust." ] } }