Agent skill
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".
Install this agent skill to your Project
npx add-skill https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/plugins/elixir-phoenix/skills/permissions
SKILL.md
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
- NEVER auto-allow RED —
rm,sudo,kill,curl|sh,mix ecto.reset,git push --force,chmod 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 | 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` |
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
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 *)
- Check for redundancy: skip if a broader existing pattern covers it
- Also scan for garbage in current settings:
Bash(done),Bash(fi),Bash(__NEW_LINE_*), partial heredocs, entries covered by broader patterns - Fix deprecated
:*patterns — replace anyBash(name:*)withBash(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.
References
${CLAUDE_SKILL_DIR}/references/risk-classification.md— Full classification rules${CLAUDE_SKILL_DIR}/references/settings-format.md— Permission pattern format
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
lab:autoresearch
Self-improving loop for plugin skills. Reads program.md, proposes one mutation per iteration, evaluates against deterministic scorer, keeps improvements via git, reverts failures. Targets weakest skill+dimension. Use with /loop for overnight runs.
promote
Generate X/Twitter release promotion posts with ASCII tables and CodeSnap rendering. Use when writing release posts, promotion tweets, plugin announcements, or preparing social media content for new versions.
skill-monitor
Analyze skill effectiveness across sessions. Computes per-skill metrics (action rate, friction, outcomes), identifies degrading skills, and generates improvement recommendations. Requires session-scan data in metrics.jsonl.
session-trends
Analyze trends across session metrics. Computes windowed aggregates, deltas, and compares against MEMORY.md findings. Use periodically for progress tracking.
cc-changelog
CONTRIBUTOR TOOL - Track CC changelog, extract new versions since last check, analyze impact on plugin (breaking changes, opportunities, deprecations). Run periodically or before releases. NOT part of the distributed plugin.
session-scan
Compute metrics for Claude Code sessions. Discovers via ccrider, filters trivial, computes friction/opportunity/fingerprint scores. Use for broad session triage.
Didn't find tool you were looking for?