executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
permissionsRecommend safe Bash permissions for Elixir mix commands in settings.json. Use when permission prompts slow workflow, "fix permissions", "reduce prompts", "auto-allow mix".
Independent GitHub snapshot · Automated classification · Original documentation governs
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` |
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.
Run this before any settings cleanup — missing permissions are the primary goal.
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/**).
${CLAUDE_SKILL_DIR}/references/risk-classification.md — Full classification rules${CLAUDE_SKILL_DIR}/references/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).