Socratic Dialogue
9 steps
Expose broken assumptions and flawed reasoning by running a real dialogue with a skeptical partner agent
Triggers
Steps
- 1.
What problem are you actually trying to solve?
State the specific problem you're stuck on. Not what you think the solution should be - what's the actual problem?
Example: 'My tests are flaky' not 'I need to add delays to my tests'
- 2.
What's your current approach and why?
Describe what you're doing now and your reasoning. This is where we'll find the broken assumptions.
Be honest about shortcuts, hacks, or 'temporary' solutions you're using.
- 3.
Spawn a Gray Skeptic Partner
🧠 ENHANCED THINKING REQUIRED
Create a REAL dialogue partner (a subagent), and keep it alive across steps.
- Adopt the skepticism posture:
- Use the role/color system:
Adopt(type="color", identifier="gray")
- Spawn the partner using the Task tool (do NOT pick a specific agent type in this workflow). In the Task prompt tell the partner:
- Adopt
color=gray(skeptical inquiry) - Your job is to challenge my claims, demand evidence, and independently verify when possible (using tools)
- Maintain a running ledger: Verified facts / Unverified assumptions / Open questions
- Always end your reply with ONE next question
- CRITICAL: Save the returned
task_idas your handle (e.g.,socraticPartnerTaskId). You will reuse it to continue the same partner conversation.
Enhanced Thinking - 4.
Run the Dialogue (Resume via task_id)
🧠 ENHANCED THINKING REQUIRED
Have a real back-and-forth. Do NOT restart the partner; resume it.
Loop for 3-10 rounds:
- Answer the partner's question plainly.
- Provide evidence (or explicitly admit you don't have it).
- Resume the same partner using:
Task(task_id=socraticPartnerTaskId, prompt=...)
Partner requirements each round:
- If you make a claim: either verify it independently, or say exactly what would verify it
- Update the ledger (Verified / Unverified / Open)
- Ask the next single question
You are NOT trying to win. You are trying to locate the broken assumption.
Enhanced Thinking - 5.
Find the Contradiction
🧠 ENHANCED THINKING REQUIRED
Resume the partner and ask it to do ONE job: identify where your story breaks.
Prompt the partner (via
Task(task_id=...)) to:- Point to the specific assumption that, if false, collapses your approach
- Show the contradiction or missing link
- State the smallest test/experiment/check that would discriminate between two competing explanations
Then do that check (or explicitly decide why you can't) and report the result back to the partner.
Enhanced Thinking - 6.
Reframe the Real Problem
Based on what the dialogue exposed, rewrite the problem statement as a falsifiable claim.
Format:
- Original problem:
- Broken assumption:
- New problem statement (falsifiable):
- What would make this statement false?
- 7.
Attack the Reframe (Partner Verification)
🧠 ENHANCED THINKING REQUIRED
Resume the same partner (
Task(task_id=socraticPartnerTaskId, ...)) and present your reframed problem statement.Partner must:
- Try to falsify it
- Identify any remaining assumptions
- Independently verify at least one key claim (or explain why verification is blocked)
Iterate until the partner agrees the reframe is coherent OR you identify the remaining uncertainty explicitly.
Enhanced Thinking - 8.
What does this suggest for solutions?
With the real problem identified and your assumptions corrected, what approaches make sense now?
Don't implement yet - just identify directions that address the actual problem.
- 9.
Final Reality Check
🧠 ENHANCED THINKING REQUIRED
Resume the partner one last time and ask for a final audit.
Partner output MUST include:
- Verified facts (with how verified)
- Unverified assumptions (and how to verify)
- Remaining open questions
- Biggest remaining risk in your proposed solution directions
Then you record your key insights: what assumption was wrong, what the real problem is, and what checks you'll run earlier next time.
Finally, you may end the partner conversation.
Enhanced Thinking