targets/codex/skills/phx-permissions/SKILL.md
Recommend safe Bash permissions for Elixir mix commands in settings.json. Use when permission prompts slow workflow, "fix permissions", "reduce prompts", "auto-allow mix".
npx skillsauth add oliver-kriska/claude-elixir-phoenix phx-permissionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
$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 — --days=N (default: 14), --dry-run (preview only).
rm, sudo, kill, curl|sh, mix ecto.reset, git push --force, chmod 777| 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 |
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.
IMPORTANT: Run this FIRST. Do NOT skip to settings cleanup.
For each uncovered command from Step 1 output:
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 *)Bash(done), Bash(fi),
Bash(__NEW_LINE_*), partial heredocs, entries covered by broader patterns:* patterns — replace any Bash(name:*) with Bash(name *)
(space before *). The :* suffix is deprecated and may not match reliablyPresent 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 |
|...
--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:
Batch 2 — YELLOW items (write ops, need caution):
Always show individually — one AskUserQuestion per item with options:
Batch 3 — REMOVE candidates (garbage/redundant):
Use AskUserQuestion with options:
Track approved items in a list. After triage, show final summary of what will be added/removed and ask for confirmation.
Merge approved additions into ~/.claude/settings.json under permissions.allow.
Remove approved garbage entries. Report final counts.
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/risk-classification.md — Full classification rulesreferences/settings-format.md — Permission pattern formatLong 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).
tools
Compatibility alias for the Elixir/Phoenix plugin's LiveView assigns audit. Invoke explicitly with /lv:assigns.
development
Trace Elixir call trees from entry points via mix xref. Use when debugging data flow, planning signature changes, or understanding how a bug reaches code.
tools
Compatibility alias for the Elixir/Phoenix plugin's N+1 query checker. Invoke explicitly with /ecto:n1-check.
tools
Compatibility alias for the Elixir/Phoenix plugin's Ecto constraint debugger. Invoke explicitly with /ecto:constraint-debug.