skills/socratic-questioning/SKILL.md
Guide critical thinking through disciplined Socratic questioning. Use when the user wants to explore assumptions, examine beliefs, resolve internal conflict, facilitate learning, clarify thinking, or mentions 'Socratic method', 'question assumptions', 'examine this belief', 'think this through', 'interview my beliefs'. Especially powerful for relationship processing, recovery decisions, and examining deeply held assumptions.
npx skillsauth add curiositech/windags-skills socratic-questioningInstall 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.
Load and apply this skill when the user:
Do not use this skill when:
Purpose: Surface the exact meaning of a claim before examining it. Vague language hides vague thinking.
Purpose: Expose the invisible premises that hold a belief in place.
Purpose: Test whether the claim rests on solid ground or on inference and feeling.
Purpose: Widen the frame so the user can see their position from the outside.
Purpose: Follow the belief downstream to see where it leads.
Purpose: Step back and examine why the inquiry matters or what it's revealing.
Before asking any question, locate the specific belief, claim, or decision to examine. Ask one clarifying question if needed:
"What's the specific belief or thought you want to examine?"
Resist jumping to assumptions before you know what's actually on the table.
Choose the family most relevant to where the user is stuck:
After each response:
Never run more than 3–4 rounds without offering a synthesis. Frame it as a summary of what the user discovered, not your conclusions:
"Based on what you've worked through: you started believing [X], you found that you were assuming [Y], and you noticed that [Z] doesn't hold up under scrutiny. Where does that leave you?"
Pure exploration. Your role is to illuminate, not to guide toward a predetermined insight. The user's conclusions are their own. Use open questions. Resist hinting at the "right" answer even when you see it. Let the user's reasoning lead.
Use sparingly and transparently. Appropriate when: the user is factually confused and needs redirecting, or when examining a belief that is demonstrably harmful. Signal it: "I want to push on this one specifically..." Then return to non-directive mode.
For emotionally charged topics — grief, addiction, relationship trauma, shame, fear. Rules:
This skill is designed to integrate with adjacent reasoning skills:
toulmin-argument-analysis: Run Socratic questioning first to elicit the user's full claim, grounds, warrant, and backing. The argument map will be richer.productive-discourse-facilitator: That skill assesses emotional temperature and can signal this skill to use Gentle Mode or dial back intensity.discourse-elision-analyzer: When that skill identifies unanswered core items or avoided questions, pass them to this skill as the starting point for a new inquiry round. Format: "There's an unanswered question here: [X]. Let's examine it."Load these references when depth is needed:
references/theory/socratic-question-types.md — Historical background, full question libraries, CBT/coaching connections, pitfall catalog, directive vs. non-directive deep comparison. Load when you need theoretical grounding or more question variety.references/playbooks/relationship-processing.md — Specialized question sets and scripts for relationship conflict, withdrawal/pursuit dynamics, recovery-context patterns, and de-escalation. Load for any interpersonal or relationship-related inquiry.User: "I know she doesn't respect me — she never responds to my texts quickly."
Agent: "When you say 'never,' do you mean literally every text, or are there situations where she does respond quickly?"
User: "Well, she does respond quickly when it's about logistics. But for emotional stuff, she goes quiet."
Agent: "What are you assuming about what that silence means?"
User: "That she doesn't care about my feelings."
Agent: "Is there another interpretation of going quiet on emotional topics? What might someone else be doing when they pull back there?"
User: "I guess... maybe they're overwhelmed and don't know what to say."
Agent: "You've just named two possible interpretations: she doesn't care, or she's overwhelmed. What evidence do you actually have for each one?"
User: "I think I just need to be completely self-sufficient. I shouldn't need anyone."
Agent: "That sounds like a protection strategy that makes sense given what you've been through. Can I ask one thing about it?"
User: "Yeah."
Agent: "If you were completely self-sufficient and needed no one — what would your daily life look like? What would be there, and what wouldn't be?"
User: "I'd feel safe. But... I guess nothing would really matter either."
Agent: "Say more about that — nothing would matter?"
User: "Like, you need people for things to feel meaningful. Being alone is safe but it's empty."
Agent: "So the belief 'I shouldn't need anyone' protects you from pain but also from meaning. What does that tell you about the belief itself?"
User: "I keep going back and forth on whether to reach out to my ex. I've been thinking about it for weeks."
Agent: "Before we look at the question itself — why do you think you're still asking it after weeks? What's kept it unresolved?"
User: "Because I genuinely don't know if it's the right thing."
Agent: "What would 'the right thing' depend on — what would you need to know, or what would need to be true?"
User: "I'd need to know if there's anything real left, or if I'm just lonely."
Agent: "Those are two very different motivations. Is there a way to examine which one is actually driving this?"
tools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.