skills/clinical-diagnostic-reasoning/SKILL.md
Identify and counteract cognitive biases in medical decision-making through systematic error analysis and contextual algorithm application. For diagnostic reasoning, treatment decisions, and clinical judgment improvement. NOT for basic medical knowledge, technical procedures, or non-clinical healthcare domains.
npx skillsauth add curiositech/windags-skills clinical-diagnostic-reasoningInstall 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.
Improve diagnostic accuracy and treatment decisions by recognizing and overcoming systematic cognitive errors in clinical thinking.
✅ Use for:
❌ NOT for:
New patient presentation
↓
┌───[Gather information through language/history]
│ ↓
│ Does presentation suggest standard algorithm?
│ ├─ NO → Continue hypothesis generation
│ │ ↓
│ │ Develop differential diagnosis
│ │ ↓
│ │ [Proceed to bias check]
│ │
│ └─ YES → Does patient context match algorithm assumptions?
│ ├─ YES → Apply algorithm
│ │ ↓
│ │ Monitor outcomes
│ │ ↓
│ │ [Proceed to bias check]
│ │
│ └─ NO → What patient-specific factors differ?
│ ↓
│ Does evidence justify deviation?
│ ├─ YES → Document rationale and modify
│ └─ NO → Apply algorithm; reconsider if new data
│
└─── [BIAS CHECK - Always perform]
↓
Am I anchored to initial impression?
├─ POSSIBLY → Reassess case without initial anchor
│
Have I found one explanation and stopped searching?
├─ YES → Continue search: "What else could this be?"
│ "Does this explain ALL findings?"
│
Am I pattern-matching from recent/memorable case?
├─ YES → List specific differences between cases
│
Am I stereotyping this patient?
├─ POSSIBLY → Reset: Evaluate symptoms independently
│
Do I feel compelled to "do something"?
├─ YES → Is action justified by evidence or anxiety?
│ Is watchful waiting appropriate?
│
Have I sought disconfirming evidence?
└─ NO → Actively look for data that contradicts working diagnosis
Clinical error occurred
↓
What was the error?
├─ Wrong diagnosis
├─ Inappropriate treatment
└─ Missed diagnosis
↓
Was this a knowledge gap or thinking error?
├─ KNOWLEDGE GAP → Address through study
│ (Not the focus of this skill)
│
└─ THINKING ERROR → Which cognitive bias operated?
↓
┌─ Anchoring? (stuck on initial impression)
├─ Satisfaction of search? (stopped too early)
├─ Availability? (recent case pattern-match)
├─ Attribution? (stereotyped patient)
└─ Commission? (unnecessary action)
↓
Was error preventable with current knowledge?
├─ YES → How could bias have been recognized?
│ ↓
│ Extract generalizable lesson
│ ↓
│ Apply to future similar situations
│
└─ NO → Document for learning, not applicable
Need to present medical information
↓
What decision does patient need to make?
↓
Identify equivalent framings:
- Positive frame (% success/survival)
- Negative frame (% failure/mortality)
- Absolute numbers
- Relative risk
↓
Which framing facilitates genuine understanding?
↓
Is my framing choice unintentionally biasing decision?
├─ YES → Present multiple equivalent framings
│ Allow patient to process from different angles
│
└─ UNCERTAIN → Present both positive and negative frames
Verify patient comprehension
↓
"What is your understanding of the risks/benefits?"
Novice approach: Finds one clinically interesting explanation and stops diagnostic inquiry. "The patient has pneumonia, that explains the fever and cough."
Expert approach: After finding initial explanation, explicitly asks: "What else could be present? Does this explain ALL findings? Could there be a coexisting condition?"
Timeline: Develops over years of clinical experience through cases where initial findings were incomplete or coincidental. Critical moment comes when missing a second diagnosis causes patient harm—realization that "not finding everything is suboptimal."
Novice approach: Initial symptoms or emergency department triage note establishes diagnosis that persists despite contradictory information. "ED said anxiety attack, so I'm treating anxiety."
Expert approach: Periodically resets evaluation without reference to initial impressions. "If I saw this patient fresh right now, what would I think?" Actively seeks information contradicting initial hypothesis.
Timeline: Requires recognizing pattern across multiple cases where initial impression proved misleading. Breakthrough occurs when physician catches themselves defending an anchor despite mounting contrary evidence.
Novice approach: Feels compelled to take action because "doing something" feels better than watchful waiting, even without clear indication. Treats borderline abnormal labs, adjusts medications unnecessarily.
Expert approach: Explicitly evaluates whether action is justified by evidence or driven by psychological need to intervene. Comfortable with watchful waiting when appropriate. Asks: "Will treatment help more than harm?"
Timeline: Often develops after causing harm through unnecessary intervention. Turning point is recognizing that action carries its own risks and that inaction is sometimes the most appropriate decision.
Novice approach: "I just saw three patients with Lyme disease, so this patient's fatigue must be Lyme too." Pattern-matches based on superficial similarities without considering differences.
Expert approach: When noticing similarity to recent case, explicitly lists differences: "How is this patient NOT like that case?" Questions whether similarities are clinically meaningful or coincidental.
Timeline: Accumulates through experience with similar-seeming cases that proved different. Key insight comes when a "just like the last patient" case turns out completely different upon deeper investigation.
Novice approach: Accepts colleague's characterization that patient is "drug-seeking" or "anxious" and dismisses symptoms without independent evaluation. Stereotypes based on demographics.
Expert approach: Approaches each patient as individual regardless of others' characterizations. "What does THIS patient's presentation tell me?" Separates objective findings from attributed motivations.
Timeline: Often requires personal experience of misjudging a patient or discovering that a dismissed patient had serious pathology. Recognition that stereotypes prevented seeing actual clinical presentation.
Novice approach: Either follows algorithms without contextual consideration ("The guideline says X, so I must do X") OR abandons them based on gut feeling without justification.
Expert approach: Recognizes algorithms as population-based tools requiring interpretation. Can articulate why specific patient context justifies deviation when it does. Documents reasoning.
Timeline: Develops through repeated experience applying guidelines to diverse patients. Critical learning occurs when rigid application causes harm OR when appropriate deviation leads to better outcome—recognizing that expertise lies in knowing which mode applies when.
Novice says: "The patient has [single diagnosis]" Expert says: "The primary issue is [diagnosis], but I'm also considering [alternatives] and haven't ruled out [other possibilities]"
Novice says: "We need to do something" Expert says: "The question is whether intervention offers more benefit than harm compared to watchful waiting"
Novice says: "The protocol says..." Expert says: "The protocol applies when [conditions], but this patient differs in [specific ways]"
Clinical reasoning requires navigating between two extremes:
Cognitive biases are predictable traps on the diagnostic path:
This skill produces:
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.