一键导入
debug
Elixir debugging workflow and tools. Use when: debug, debugging, pry, inspect, trace, why is this failing, what's wrong, investigate, diagnose.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Elixir debugging workflow and tools. Use when: debug, debugging, pry, inspect, trace, why is this failing, what's wrong, investigate, diagnose.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Bug hunter. Reproduces bugs with failing tests (RED), then fixes with TDD. Accepts a prompt, issue URL, or bug description. Use when: bugfix, fix bug, debug, broken, regression, failing, doesn't work, fix this.
Interactive pair review of a PR. Fetches the diff, scouts for context, then walks through each changed file one at a time. Collects review comments in a bag with conventional comment prefixes, previews them, and posts only after explicit approval. Trigger on: pair review, let's review together, walk me through the PR, review with me.
TDD pair programming with mode switching. Claude can be driver (writes code) or navigator (watches, questions, provokes). Supports GitHub issues, file watching, or arbitrary prompts. Scientific TDD, baby steps, one test at a time. Trigger on: pair, let's pair, tdd, you drive, I'll drive, dojo.
Orchestrator - spawns an autonomous orchestrator agent that decomposes a task into subtasks and drives multiple Claude agents to completion. Use when: overmind, orchestrate, multi-agent, delegate, spawn agents, break down task, run agents.
Deep code review - Elixir idioms, OTP patterns, tech debt, safety. Launches 3 parallel reviewers + plan-reviewer gate. Use when: review, review this, code review, check this code, review my changes, is this good, what do you think, techdebt, tech debt, code smells.
Create a git commit following project conventions. Use when: commit, commit this, make a commit, commit changes, git commit, save changes, commit my work, stage and commit, detailed commit.
| name | debug |
| description | Elixir debugging workflow and tools. Use when: debug, debugging, pry, inspect, trace, why is this failing, what's wrong, investigate, diagnose. |
# IEx.pry — drops into interactive session at this point
require IEx; IEx.pry()
# Run tests with pry support
iex -S mix test test/overmind/mission_test.exs:42
# Inline inspect (returns the value, safe in pipelines)
value |> IO.inspect(label: "after_transform")
# Inspect in pipelines
data
|> parse()
|> IO.inspect(label: "parsed")
|> validate()
|> IO.inspect(label: "validated")
# Shows each step of the pipeline
data
|> parse()
|> validate()
|> transform()
|> dbg()
# Single file
mix test test/overmind/mission_test.exs
# Single test by line number
mix test test/overmind/mission_test.exs:42
# With trace (verbose)
mix test --trace test/overmind/mission_test.exs
# Check mission logs
overmind logs <id>
# Get mission details (os_pid, status, command)
overmind info <id>
# Check socket
ls -la ~/.overmind/overmind.sock
# Raw socket command
echo '{"command":"ps"}' | nc -U ~/.overmind/overmind.sock
# Start Observer (GUI)
:observer.start()
# ETS table contents
:ets.tab2list(:overmind_missions)
# ETS lookup specific key
:ets.lookup(:overmind_missions, id)
# Process info
Process.info(pid)
Process.info(pid, [:current_function, :message_queue_len, :status])
# Get os_pid from overmind
overmind info <id> # returns os_pid field
# Check if process is running
ps -p <os_pid>
# Check what the process has open
lsof -p <os_pid>
# Send signal
kill -0 <os_pid> # check if alive (no signal sent)
| Symptom | Check | Likely Cause |
|---|---|---|
Mission stuck in :running | overmind info <id> | Port not exiting, stall detection not configured |
{:error, :not_found} | :ets.tab2list(:overmind_missions) | Wrong ID, or ETS entry cleaned up |
| Socket connection refused | ls -la ~/.overmind/overmind.sock | Daemon not running, stale socket |
| Test timeout | mix test --trace | Waiting on assert_receive for message that never arrives |
| Dialyzer warning | mix dialyzer | Typespec mismatch, check return types |
IEx.pry, IO.inspect with labels, or dbg() in committed codeIO.inspect calls to distinguish multiple inspection pointsdbg() is cleaner than chained IO.inspect