permissions-audit

Audit Claude permissions in settings.local.json files and generate a Markdown report.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/RyoMa99/dotfiles --skill permissions-audit
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: permissions-audit
Source: https://github.com/RyoMa99/dotfiles/tree/main/dot_claude/skills/permissions-audit
Command: npx skills add https://github.com/RyoMa99/dotfiles --skill permissions-audit

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Identifies redundant, empty, overly broad, or inconsistent permissions declarations in Claude's settings by comparing the global ~/.claude/settings.local.json with per-repository .claude/settings.local.json files under the user's ghq root, reducing noise and preventing accidental over-permissioning.

Core Features & Use Cases

  • Audits the global permissions.allow baseline and collects project-level permissions from ghq-managed repositories to detect redundancies and coverage overlaps.
  • Flags empty arrays, recommends removals, detects overly broad wildcards and subcommand containment rules, and surfaces patterns used across multiple projects for potential global promotion.
  • Produces a structured Markdown report and offers safe, backup-first automated refactoring with JSON validation and clear rollback instructions.

Quick Start

Run the permissions-audit skill to scan ~/.claude/settings.local.json and all ghq repositories, produce a categorized audit report, and optionally apply backup-first automatic fixes.

Frequently Asked Questions about permissions-audit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I audit Claude permissions across multiple repositories?▼

To audit Claude permissions, parse JSON from global ~/.claude/settings.local.json and per-repository .claude/settings.local.json files under ghq root. It compares wildcard and command-name containment rules to detect redundancies, empty arrays, and inconsistent declarations, generating a categorized Markdown report.

Why does my Claude settings.local.json have redundant permission rules?▼

Redundant permission rules in settings.local.json occur when project-level allow patterns overlap with the global baseline or use overly broad wildcards. Auditing compares these patterns to identify coverage overlaps, remove noise, and prevent accidental over-permissioning.

Can I automatically refactor inconsistent permissions in settings.local.json?▼

Yes, you can automatically refactor inconsistent permissions in settings.local.json. The audit applies backup-first corrections with JSON validation, providing clear rollback instructions to safely remove empty arrays and promote cross-project patterns to global settings.

What is the best way to clean up empty arrays in Claude permissions?▼

The best way to clean up empty arrays in Claude permissions is running an audit that flags them across ghq-managed repositories and global settings. It recommends removals and optionally applies safe, backup-first automated refactoring to validate the JSON structure.

Do I need ghq to review project-level Claude permissions?▼

Yes, ghq is required to locate and collect project-level .claude/settings.local.json files. The audit scans the ghq root repositories to compare project-level permissions against the global baseline and propose global promotions or removals.

How does wildcard pattern matching work when auditing Claude settings?▼

Wildcard pattern matching during a Claude settings audit compares command-name containment rules and wildcard patterns between global and project-level permissions. It detects overly broad declarations and surfaces patterns used across multiple projects for potential global promotion.