Claude-elixir-phoenix phx:permissions
Recommend safe Bash permissions for Elixir mix commands in settings.json. Use when permission prompts slow workflow, "fix permissions", "reduce prompts", "auto-allow mix".
git clone https://github.com/oliver-kriska/claude-elixir-phoenix
T=$(mktemp -d) && git clone --depth=1 https://github.com/oliver-kriska/claude-elixir-phoenix "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/elixir-phoenix/skills/permissions" ~/.claude/skills/oliver-kriska-claude-elixir-phoenix-phx-permissions && rm -rf "$T"
plugins/elixir-phoenix/skills/permissions/SKILL.mdPermission Analyzer
Scan recent session transcripts to find Bash commands you keep approving, cross-reference with current
settings.json, and recommend adding the missing ones.
Primary goal: Discover MISSING permissions from actual usage. Secondary goal: Clean up redundant/garbage entries.
Usage
/phx:permissions [--days=14] [--dry-run] — Scans session JSONL files, finds uncovered Bash commands, classifies risk, and recommends settings.json changes. Use --dry-run to preview without writing.
Arguments
$ARGUMENTS — --days=N (default: 14), --dry-run (preview only).
Iron Laws
- NEVER auto-allow RED —
,rm
,sudo
,kill
,curl|sh
,mix ecto.reset
,git push --forcechmod 777 - Evidence-based only — Only recommend commands actually approved in sessions
- Show before writing — Present full diff, get explicit confirmation
- Preserve existing — Merge, never overwrite
Risk Classification
| Level | Examples | Action |
|---|---|---|
| GREEN | , , , , , , , , | Auto-recommend |
| YELLOW | , , , , , , | Recommend with note |
| RED | , , , `curl | shmix ecto.reset/dropgit push --forcegit reset --hard` |
Workflow
Step 1: Extract Bash Commands from Session JSONL Files
Run the extraction script from
${CLAUDE_SKILL_DIR}/references/extraction-script.md.
This scans all project JSONL files from the last N days, checks each Bash command
against current settings.json patterns, and reports uncovered commands with counts.
IMPORTANT: Run this FIRST. Do NOT skip to settings cleanup.
Step 2: Classify and Recommend
For each uncovered command from Step 1 output:
- Classify as GREEN / YELLOW / RED per table above
- Generate permission pattern: normalize to
format (use SPACE beforeBash(base_command *)
, NOT colon —*
is deprecated):*
(94x) →mkdir -pBash(mkdir *)
(39x) →mise execBash(mise *)
(20x) →tail -5Bash(tail *)
- Check for redundancy: skip if a broader existing pattern covers it
- Also scan for garbage in current settings:
,Bash(done)
,Bash(fi)
, partial heredocs, entries covered by broader patternsBash(__NEW_LINE_*) - Fix deprecated
patterns — replace any:*
withBash(name:*)
(space beforeBash(name *)
). The*
suffix is deprecated and may not match reliably:*
Present a combined table:
## Permission Recommendations (last N days) ### ADD — Missing permissions (from session scan) | Pattern to Add | Times Used | Risk | Example | |... ### REMOVE — Redundant/garbage entries | Entry | Reason | |... ### RED — Require manual approval (not adding) | Command | Count | Risk | |...
Step 3: Interactive Triage (unless --dry-run
)
--dry-runWalk through findings interactively using
AskUserQuestion. Present items
in batches by risk level, starting with GREEN (safest):
Batch 1 — GREEN items (read-only, tests, safe tools): Use
AskUserQuestion with options:
- "Add all GREEN" — approve entire batch
- "Pick individually" — show each one for yes/no
- "Skip GREEN" — move to YELLOW
Batch 2 — YELLOW items (write ops, need caution): Always show individually — one
AskUserQuestion per item with options:
- "Add" — include in settings
- "Skip" — keep requiring manual approval
- "Customize" — let user edit the pattern before adding
Batch 3 — REMOVE candidates (garbage/redundant): Use
AskUserQuestion with options:
- "Remove all" — clean up entire batch
- "Pick individually" — show each for yes/no
- "Keep all" — skip cleanup
Track approved items in a list. After triage, show final summary of what will be added/removed and ask for confirmation.
Step 4: Apply
Merge approved additions into
~/.claude/settings.json under permissions.allow.
Remove approved garbage entries. Report final counts.
References
— Full classification rules${CLAUDE_SKILL_DIR}/references/risk-classification.md
— Permission pattern format${CLAUDE_SKILL_DIR}/references/settings-format.md