phx:investigate

Investigate bugs using the Ralph Wiggum approach: check the obvious, read errors literally.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "phx:investigate" with this command: npx skills add oliver-kriska/claude-elixir-phoenix/oliver-kriska-claude-elixir-phoenix-phx-investigate

Investigate Bug

Investigate bugs using the Ralph Wiggum approach: check the obvious, read errors literally.

Usage

/phx:investigate Users can't log in after password reset /phx:investigate FunctionClauseError in UserController.show /phx:investigate Complex auth bug --parallel

Arguments

$ARGUMENTS = Bug description or error message. Add --parallel

for deep 4-track investigation.

Mode Selection

Use parallel mode (spawn deep-bug-investigator ) when: bug mentions 3+ modules, spans multiple contexts, is intermittent or involves concurrency, or user says --parallel /deep .

Otherwise: Run the sequential workflow below.

Iron Laws

  • Read the error message literally first — Most bugs tell you exactly what's wrong; resist the urge to theorize before reading what the system is saying

  • Check the obvious before going deep — Compile errors, missing migrations, atom/string mismatches explain 80% of bugs; exhausting the Ralph Wiggum checklist saves hours

  • Check changeset errors before UI debugging — Silent form saves are almost always {:error, changeset} with validation failures, not viewport or JS issues

  • Consult compound docs before investigating fresh — A previously solved problem saves the entire investigation cycle; always search .claude/solutions/ first

Investigation Workflow

Step 0: Consult Compound Docs

grep -rl "KEYWORD" .claude/solutions/ 2>/dev/null

If matching solution exists, present it and ask: "Apply this fix, or investigate fresh?"

Step 0a: Runtime Auto-Capture (Tidewave -- PRIMARY when available)

If Tidewave MCP is detected, start here instead of asking the user to paste errors. Auto-capture runtime context:

  • mcp__tidewave__get_logs level: :error -- capture recent errors

  • Parse stacktraces, correlate with source via mcp__tidewave__get_source_location

  • For data bugs: mcp__tidewave__execute_sql_query to inspect state

  • For logic bugs: mcp__tidewave__project_eval to test hypotheses

  • For UI bugs: mcp__tidewave__get_source_location with component name

Present pre-populated context to the user:

Auto-captured from runtime:

  • Error: {parsed error from logs}

  • Location: {file:line from get_source_location}

Investigating this. Correct if wrong.

This eliminates copy-pasting errors between app and agent. If Tidewave NOT available: Fall through to Step 1.

Step 1: Sanity Checks

mix compile --warnings-as-errors 2>&1 | head -50 mix ecto.migrate

Step 2: Reproduce

mix test test/path_test.exs --trace tail -200 log/dev.log | grep -A 5 -i "error|exception"

Step 3: Read Error LITERALLY

Parse the error message — check references/error-patterns.md .

Step 4: Check the Obvious (Ralph Wiggum Checklist)

File saved? Atom vs string? Data preloaded? Pattern match correct? Nil? Return value? Server restarted?

LiveView form saves silently failing? Check changeset errors FIRST — not viewport, click mechanics, or JS. A missing hidden_input for a required embedded field causes {:error, changeset} with no visible UI feedback.

Step 5: IO.inspect / Tidewave project_eval

Step 6: Identify Root Cause

What's actually happening vs what should happen.

Autonomous Iteration

For autonomous debugging, use /ralph-loop:ralph-loop with clear completion criteria and --max-iterations .

References

  • references/error-patterns.md — Common errors and checklist

  • references/investigation-template.md — Output format

  • references/debug-commands.md — Debug commands and common fixes

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

oban

No summary provided by upstream source.

Repository SourceNeeds Review
General

tidewave-integration

No summary provided by upstream source.

Repository SourceNeeds Review
General

ecto-patterns

No summary provided by upstream source.

Repository SourceNeeds Review
General

phx:full

No summary provided by upstream source.

Repository SourceNeeds Review