phx-permissions
Recommend safe Bash permissions for Elixir mix commands in; Use when
它会碰到什么
逐条看命中(8 条严重或高危)
- 严重
references/risk-classification.md:152exec-pipe-to-shell| `curl * \| sh` | Remote code execution |
- 严重
references/risk-classification.md:153exec-pipe-to-shell| `wget * \| sh` | Remote code execution |
- 严重
references/risk-classification.md:154exec-pipe-to-shell| `curl * \| bash` | Remote code execution |
- 严重
SKILL.md:26exec-pipe-to-shell1. **NEVER auto-allow RED** — `rm`, `sudo`, `kill`, `curl|sh`, `mix ecto.reset`, `git push --force`, `chmod 777`
- 严重
SKILL.md:37exec-pipe-to-shell| RED | `rm -rf`, `sudo`, `kill`, `curl|sh`,`mix ecto.reset/drop`,`git push --force`,`git reset --hard` | Never recommend |
- 高
references/extraction-script.md:16identity-config-write'.claude/settings.json', '.claude/settings.local.json']:
- 高
references/settings-format.md:16identity-config-write| Local (personal) | `.claude/settings.local.json` | No (gitignored) |
- 高
references/settings-format.md:155identity-config-write| Personal preferences | `.claude/settings.local.json` (local) |
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
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
$elixir-phoenix: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 | 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.
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.
Workflow-artifact permissions (always check)
The plugin's workflow writes to .claude/plans/, .claude/solutions/, and
.claude/reviews/. If these aren't covered, $elixir-phoenix: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 rulesreferences/settings-format.md— Permission pattern format
Related
Long mix output flooding context? $elixir-phoenix: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).
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
targets/codex/skills/phx-permissions/SKILL.md同一个仓库里的其他技能
同名技能的其他版本
有 5 个不同仓库或目录里都有叫 phx-permissions 的技能。它们内容并不相同,别混用:
- oliver-kriska/claude-elixir-phoenix — Recommend safe Bash permissions for Elixir mix commands in settings.json.
- oliver-kriska/claude-elixir-phoenix — Recommend safe Bash permissions for Elixir mix commands in settings.json.
- oliver-kriska/claude-elixir-phoenix — Recommend safe Bash permissions for Elixir mix commands in settings.json.
- oliver-kriska/claude-elixir-phoenix — Recommend safe Bash permissions for Elixir mix commands in settings.json.