reflect-permissions
Analyze Claude Code permission confirmation history for the current project and add approved patterns to project settings. Triggered by 'reflect permissions', 'analyze permissions', or '/reflect-permissions'.
reflect-permissions
Анализирует лог подтверждений инструментов Claude Code для текущего проекта и добавляет часто одобряемые команды в permissions.allow проекта — чтобы больше не подтверждать их вручную.
Шаг 1: Проверь установку хука
Прочитай ~/.claude/settings.json и проверь, есть ли в hooks.PostToolUse запись с командой, содержащей log_tool_use.py.
Если хука нет — сообщи:
Хук логирования не установлен. Хочешь установить сейчас?
Это добавит PostToolUse хук в ~/.claude/settings.json, который будет
тихо логировать вызовы инструментов в ~/.claude/permission_log.jsonl.
И предложи установить (выполни Шаг 5 по установке хука).
Шаг 2: Запусти анализ
python3 ~/.claude/skills/reflect-permissions/scripts/analyze_permissions.py
Выполни в рабочей директории текущего проекта (не в ~/.claude).
Шаг 3: Покажи результаты
Разбери JSON-ответ скрипта и отобрази в таком формате:
Проект: /path/to/project
Записей в логе: N | Без разрешения (ручные подтверждения): M
Предлагаемые разрешения:
──────────────────────────────────────────────────────
# Правило Подтверждений Примеры
──────────────────────────────────────────────────────
1 Bash(git:*) 12 git status, git diff, git log
2 Bash(pnpm:*) 8 pnpm install, pnpm run dev
3 Write 3 src/index.ts, .env.local
──────────────────────────────────────────────────────
Если suggestions пусто:
Всё уже покрыто существующими правилами, или лог пока пустой.
Поработай в проекте ещё немного, потом запусти снова.
Шаг 4: Запроси подтверждение
Спроси пользователя:
Добавить какие-то из этих правил в .claude/settings.json текущего проекта?
Введи номера через запятую (например: 1,3) или "все" для добавления всех.
Дождись ответа. Если пользователь отказался — завершить без изменений.
Шаг 5: Запиши в .claude/settings.json проекта
Прочитай .claude/settings.json в текущей директории проекта (создай если нет).
Добавь выбранные правила в permissions.allow.
Не дублируй — перед добавлением проверь, нет ли правила уже в массиве.
Пример результирующего файла:
{
"permissions": {
"allow": [
"Bash(git:*)",
"Bash(pnpm:*)"
]
}
}
После записи выведи:
Готово! Добавлено N правил в .claude/settings.json
Теперь эти команды не будут требовать ручного подтверждения в этом проекте.
Шаг 5 (установка хука): Добавить PostToolUse хук
Если хук не установлен — добавь в ~/.claude/settings.json в раздел hooks.PostToolUse:
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "python3 /Users/vampire/.claude/skills/reflect-permissions/scripts/log_tool_use.py"
}
]
}
Также добавь аналогичные записи для Write и Edit, чтобы логировать операции с файлами.
После установки сообщи:
Хук установлен. Теперь Claude Code будет логировать все подтверждённые вызовы инструментов.
Поработай в проекте, а потом снова запусти /reflect-permissions — скрипт найдёт паттерны для авто-разрешений.
Примечания
- Лог хранится в
~/.claude/permission_log.jsonl— одна запись на строку (JSONL). - Каждая запись содержит
project(полный путь),tool,input,ts. - Анализ всегда фильтрует только текущий проект.
- Существующие глобальные правила из
~/.claude/settings.jsonучитываются — уже разрешённые команды не попадают в suggestions.