Skip to content
Development
Skill

/phx-permissions

Recommend safe Bash permissions for Elixir mix commands in settings.json.

From plugin
claude-elixir-phoenix
574106 skills37 agents2 commands

Claude Code

$ npx -y skills add oliver-kriska/claude-elixir-phoenix --skill phx-permissions --agent claude-code

SKILL.md

phx-permissions.SKILL.md
name: phx-permissions
description: Recommend safe Bash permissions for Elixir mix commands in settings.json.
  Use when permission prompts slow workflow, "fix permissions", "reduce prompts",
  "auto-allow mix".

Permission 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

1. **NEVER auto-allow RED** — `rm`, `sudo`, `kill`, `curl|sh`, `mix ecto.reset`, `git push --force`, `chmod 777` 2. **Evidence-based only** — Only recommend commands actually approved in sessions 3. **Show before writing** — Present full diff, get explicit confirmation 4. **Preserve existing** — Merge, never overwrite

Risk Classification

| Level | Examples | Action | |-------|----------|--------| | GREEN | `ls`, `cat`, `grep`, `tail`, `which`, `mkdir`, `cd`, `mix test/compile/credo/format`, `git status/log/diff` | Auto-recommend | | YELLOW | `git add/commit/push`, `mix ecto.migrate`, `mix deps.get`, `npm install`, `docker build/run`, `source`, `mise exec` | Recommend with note | | RED | `rm -rf`, `sudo`, `kill`, `curl|sh`,`mix ecto.reset/drop`,`git push --force`,`git reset --hard` | Never recommend |

Workflow

Step 1: Extract Bash Commands from Session JSONL Files

Run the extraction script from `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.

Run this before any settings cleanup — missing permissions are the primary goal.

Step 2: Classify and Recommend

For each uncovered command from Step 1 output:

1. **Classify** as GREEN / YELLOW / RED per table above 2. **Generate permission pattern**: normalize to `Bash(base_command *)` format (use SPACE before `*`, NOT colon — `:*` is deprecated)

  • `mkdir -p` (94x) → `Bash(mkdir *)`
  • `mise exec` (39x) → `Bash(mise *)`
  • `tail -5` (20x) → `Bash(tail *)`

3. **Check for redundancy**: skip if a broader existing pattern covers it 4. **Also scan for garbage** in current settings: `Bash(done)`, `Bash(fi)`, `Bash(__NEW_LINE_*)`, partial heredocs, entries covered by broader patterns 5. **Fix deprecated `:*` patterns** — replace any `Bash(name:*)` with `Bash(name *)` (space before `*`). 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`)

Walk 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.

Workflow-artifact permissions (always check)

The plugin's workflow writes to `.claude/plans/`, `.claude/solutions/`, and `.claude/reviews/`. If these aren't covered, `phx-compound` and review agents get write-blocked mid-workflow. Recommend (GREEN): `Write(.claude/plans/**)`, `Write(.claude/solutions/**)`, `Write(.claude/reviews/**)`.

References

  • `references/risk-classification.md` — Full classification rules
  • `references/settings-format.md` — Permission pattern format

Related

Long mix output flooding context? `phx-mix-compression` installs rtk filters that compress `mix test/credo/dialyzer/compile` output before it reaches the transcript (5-15% token savings on mix-heavy sessions).

Read more
@oliver-kriska
Ships withclaude-elixir-phoenix

Docs: phxagents.dev -- install guides per runtime, the runtime compatibility matrix, all 26 Iron Laws, and a browsable skill and agent catalog. Claude Code is great.

574106 skills37 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
574
Star history of oliver-kriska/claude-elixir-phoenix on GitHub, a chart by star-history.com

Other skills on claude-elixir-phoenix.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about phx-permissions.

Which coding agents can use phx-permissions?
phx-permissions installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.