smithery.ai

claude-permissions-update

Sync auto-approved permissions from all community-patterns directories (including community-patterns-2, -3, etc.) to the shared project settings. Shows new permissions for review before adding.

First seen Mar 22, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,151 B
  • docs SUMMARY.md 226 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Claude Permissions Update

Use this skill to consolidate auto-approved permissions from all your community-patterns workspaces.

Overview

When you work across multiple community-patterns directories (e.g., community-patterns, community-patterns-2, etc.), you accumulate different auto-approved permissions in each directory's .claude/settings.local.json. This skill helps you:

  1. Find all community-patterns directories
  2. Gather all auto-approved permissions
  3. Compare with the project-level .claude/settings.json
  4. Filter out junk and path-specific permissions automatically
  5. Show new permissions for your review by category
  6. Let you select which to add to the shared settings

Important: Local Settings Contain Junk

WARNING: The settings.local.json files often contain accidentally auto-approved garbage:

  • Commit message fragments
  • Shell script fragments like Bash(do), Bash(fi), Bash(then ...)
  • Markdown content from heredocs
  • Path-specific permissions like Bash(../community-patterns-2/patterns/...)

The filtering step below is CRITICAL to avoid polluting project settings.

Step 1: Scan and Gather Permissions

# Find all community-patterns directories
echo "=== Scanning community-patterns directories ==="
for dir in /Users/alex/Code/community-patterns*; do
  echo "Found: $dir"
done

Step 2: Extract and Filter New Permissions

# Get all local permissions (deduplicated)
ALL_LOCAL=$(for dir in /Users/alex/Code/community-patterns*; do
  jq -r '.permissions.allow[]?' "$dir/.claude/settings.local.json" 2>/dev/null
done | sort -u)

# Get project permissions
PROJECT_PERMS=$(jq -r '.permissions.allow[]?' .claude/settings.json 2>/dev/null | sort -u)

# Find new permissions - FILTER for valid patterns only
NEW_PERMS=$(comm -23 <(echo "$ALL_LOCAL") <(echo "$PROJECT_PERMS") | \
  grep -E '^(Bash\(|Skill\(|Read\(|WebFetch\(|mcp__|SlashCommand)')

Step 3: Categorize for Review

Present permissions in categories to help the user decide:

General Commands (with wildcards - usually worth syncing)

echo "=== General Bash commands (worth syncing) ==="
echo "$NEW_PERMS" | grep -E ':\*\)$' | grep -v '../community-patterns'

These have wildcards and are NOT path-specific. Good candidates to sync.

WebFetch Domains

echo "=== WebFetch domains ==="
echo "$NEW_PERMS" | grep '^WebFetch'

Skills and MCP Tools

echo "=== Skills ==="
echo "$NEW_PERMS" | grep '^Skill'

echo "=== MCP tools ==="
echo "$NEW_PERMS" | grep '^mcp__'

Path-Specific (SKIP these)

echo "=== Path-specific permissions (SKIP) ==="
echo "$NEW_PERMS" | grep '../community-patterns'

These are specific to a particular checkout and should NOT be synced.

Step 4: Review with User

Use AskUserQuestion to walk through each category:

  1. Present general Bash commands one by one or in small groups
  2. Present WebFetch domains (often safe to add all)
  3. Present Skills and MCP tools
  4. SKIP path-specific permissions automatically

Ask about each permission individually or in logical groups.

Step 5: Update Project Settings

After user approval, edit .claude/settings.json to add the approved permissions to the permissions.allow array.

Use the Edit tool to add each permission as a new line in the array.

Workflow Summary

  1. Scan all community-patterns-* directories
  2. Extract permissions from each .claude/settings.local.json
  3. Filter - remove junk (non-permission strings) and validate format
  4. Compare with .claude/settings.json to find new ones
  5. Categorize - separate general vs path-specific
  6. Present to user by category (skip path-specific automatically)
  7. Update project settings with approved permissions
  8. Verify JSON is valid with jq . .claude/settings.json > /dev/null

What to Sync vs Skip

SYNC These (General Permissions)

  • Bash(command:*) - wildcarded commands
  • Bash(git subcmd:*) - git subcommands
  • Bash(deno task:), Bash(timeout N command:) - tool commands
  • WebFetch(domain:example.com) - domain-specific fetch
  • Skill(skill-name) - skill invocations
  • mcpservertool - MCP tool permissions
  • Read(//path/**) - read patterns with wildcards

SKIP These (Junk/Path-Specific)

  • Bash(../community-patterns-N/...) - relative paths to specific checkouts
  • Bash(do), Bash(fi), Bash(then ...) - shell fragments
  • Anything that looks like a commit message or markdown
  • Anything without parentheses or proper permission format

Notes

  • This skill does NOT modify the local settings files
  • It only adds permissions to the shared project settings
  • User must approve all additions
  • After adding to project settings, the permissions will be available across all

community-patterns workspaces

  • Always verify JSON validity after editing