| name | dev:interrogate |
| description | Interrogate code changes to surface decisions, alternatives, and confidence levels. Use when user asks to "interrogate", "what decisions", "hardest part", "alternatives", or wants to understand the reasoning behind code changes. |
| allowed-tools | Bash(git diff:*), Bash(git show:*), Bash(gh pr diff:*) |
| argument-hint | <unstaged|staged|changes|commit|pr> [--quick|--skeptical] |
Interrogate Code Changes
Ask "why" instead of just reading code. Surfaces assumptions, decisions, and confidence levels.
Workflow
@context/workflows/interrogate.md
Input: $ARGUMENTS
Parse arguments to determine:
- Target:
unstaged (default), staged, changes (staged+unstaged), commit <hash>, pr <number>, or range <ref1>..<ref2>
- Mode:
--quick (minimal output) or --skeptical (extra validation)
Gather Context
Based on target, gather the code diff:
Target: unstaged (default)
git diff
Target: staged
git diff --cached
Target: changes
git diff HEAD
Target: commit
git show <hash>
Target: pr
gh pr diff <number>
Target: range ..
git diff <ref1>..<ref2>
Execute Interrogation
Apply the three core questions from the workflow to the gathered diff:
- What was the hardest decision?
- What alternatives did you reject?
- What are you least confident about?
Mode Behavior
- Default: Full explanations with confidence levels and structured tables
- --quick: Compact table with brief answers only
- --skeptical: Full output plus follow-up probes:
- "Walk me through the logic step by step"
- "What edge cases could break this?"
- "If this code has a bug, where is it most likely?"
Output
Format output per @context/workflows/interrogate.md#Output-Format based on selected mode.