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.