plugins/sc-skills/skills/sc-socratic/SKILL.md
Use when the user is clarifying beliefs, assumptions, goals, or framing before committing to decision or plan.
npx skillsauth add kylesnowschwartz/simpleclaude sc-socraticInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Think WITH the user, not FOR them. The goal is to surface what they can't see in their own thinking, challenge assumptions to strengthen positions, and help them think better—not just have answers.
Apply these operations as the situation demands:
<operations> | Operation | Purpose | When to Use | |-----------|---------|-------------| | **Assumptions** | Surface hidden beliefs | Any proposal or plan | | **Evidence** | Probe the basis for claims | Confident assertions | | **Consequences** | Trace implications | Decisions with tradeoffs | | **Opposition** | Steelman the alternative | Strong positions | | **Meta-question** | Find what they should ask | Stuck or circular thinking | | **Exclusion** | Define by what's NOT | Scope creep or vague goals | </operations>Classify the situation into one of these shapes. Do not pattern-match on user phrasing; read the semantic intent:
| Situation | Approach | |-----------|----------| | Deciding — user comparing options or facing a choice | Surface tradeoffs, challenge both sides | | Blocked — stalled progress, unclear obstacle | Find the real obstacle, propose smallest next step | | Evaluating — user wants a plan or proposal examined | Surface risks and hidden assumptions | | Learning — user building understanding of how X works | Draw out existing knowledge first | | Designing — user shaping a structure or system | Diverge exploration, then converge to MVP | | Undifferentiated uncertainty | Ask what kind of thinking they need |
Gather context - Use Read, Grep, Glob to understand the actual situation. Don't question in a vacuum.
Apply 2-3 operations - Pick what fits. Don't spray all techniques at every problem.
Surface the question - End with what they should be asking next. Often more valuable than an answer.
Propose action - Concrete next step. Avoid analysis paralysis.
Check yourself for these failure modes:
| Anti-Pattern | Symptom | Fix | |--------------|---------|-----| | Theater | Going through motions | Genuine curiosity about their thinking | | Infinite Loop | Questions without closure | Set a decision point | | Answer Extraction | Giving answers disguised as questions | Actually wait for their response | | Vacuum Questioning | Abstract questions without context | Ground in actual code/files first |
For detailed anti-pattern descriptions and recovery strategies, see references/anti-patterns.md.
## Context
[What you understand about the situation - grounded in actual files/code/evidence]
## Inquiry
[2-3 targeted questions from the toolkit, chosen for this specific situation]
---
[Continue dialogue based on responses]
## The Question
[What they should be asking now - surface this explicitly]
## Next
[Concrete action to take]
This skill is for uncertainty, not efficiency. Don't apply Socratic dialogue to tasks that just need execution.
For specific situations requiring deeper techniques:
references/decisions.md for multi-path verification and tradeoff analysisreferences/debugging.md for systematic assumption excavationreferences/design.md for diverge-then-converge patternsreferences/learning.md for drawing out knowledge and building capabilityWhen a specific technique warrants focused application, suggest these specialized commands:
| Situation | Command | When to Suggest |
|-----------|---------|-----------------|
| Challenge a conclusion | /sc-challenge-assumptions | After reaching a decision, for structured adversarial review |
| Debug a problem | /sc-five-whys | When tracing root causes in code/systems |
| Verify factual claims | /sc-extract-and-verify-claims | When accuracy of assertions matters |
| Specify work for agents | /sc-context-wizard | After clarity is reached, before implementation |
| Validate completed work | /sc-validate-task | After implementation, to verify against requirements |
These commands provide structured protocols for specific situations. Use sc-socratic for open-ended dialogue; use these when the situation calls for a focused technique.
See examples/ for complete dialogue transcripts:
stuck-on-architecture.md - Helping someone unstick on a design decisionchallenging-a-plan.md - Strengthening a proposal through oppositiontesting
Use when writing or editing a Slack message, email, pull request body, GitHub issue, Reddit post, agenda, or doc. Enforces a direct, warm, unfilled tone and removes AI tells. Always scores the final draft and runs a self-audit pass before delivery.
development
Reframe code design through functional programming principles for agent-assisted development. This skill SHOULD be used when the user says "think functional", "think FP", "make this pure", "separate effects", "where should this side effect go", "this function does too much", "how should I structure this for agents", "make this easier to review", "reduce context needed", or when planning module structure, store design, or code that agents will write and humans will review. Applies FP discipline within any language to maximize agent effectiveness and human reviewability.
testing
Audit and improve project memory files (CLAUDE.md, AGENTS.md, .claude.local.md) — assess against a quality rubric, then apply additions and removals. This skill SHOULD be used when the user asks to audit, improve, edit, fix, tighten, rewrite, or update a memory file, or to check whether one is too long, stale, or bloated.
data-ai
This skill SHOULD be used for structured extraction or batch queries against JSON (use jq), YAML (use yq), or Markdown (use mq), and for advanced text search with ripgrep flags or pipe composition (use rg).