skills/naturalistic-decision-making/SKILL.md
Field-based research methodology studying expert decision-making in real-world high-stakes environments
npx skillsauth add curiositech/windags-skills naturalistic-decision-makingInstall 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.
SITUATION ENCOUNTERED
├─ Do I recognize this pattern?
│ ├─ YES: Strong pattern match (>80% confidence)
│ │ ├─ Is this time-critical? (problem grows exponentially)
│ │ │ ├─ YES → Execute typical action immediately
│ │ │ └─ NO → Mental simulation first, then execute
│ │ └─ Pattern suggests action A
│ ├─ PARTIAL: Weak pattern match (30-80% confidence)
│ │ ├─ High stakes?
│ │ │ ├─ YES → Gather 2-3 key cues, re-assess pattern
│ │ │ └─ NO → Execute most likely action, monitor expectancies
│ │ └─ Try most probable pattern's action with high monitoring
│ └─ NO: Novel situation (<30% confidence)
│ ├─ Time pressure?
│ │ ├─ HIGH → Use closest partial pattern, flag for learning
│ │ └─ LOW → Switch to analytical decision-making mode
│ └─ Fallback to formal analysis, document for pattern library
DESIGN DECISION
├─ Orchestration needed?
│ ├─ Central coordinator approach
│ │ └─ AVOID: Creates bottleneck, ignores parallel pattern matching
│ └─ Situation recognition routing
│ └─ Route to specialist based on pattern match confidence
├─ Decision support tool?
│ ├─ Formal framework (matrices, utility analysis)
│ │ └─ USE ONLY: Novel situations, stable conditions, time available
│ └─ Pattern-based with simulation
│ └─ DEFAULT: Build pattern libraries + mental simulation capability
└─ Training approach?
├─ Procedural scripts
│ └─ AVOID: Real situations don't match scripts
└─ Pattern recognition + case exposure
└─ BUILD: Varied scenario libraries with outcome feedback
ACTION CANDIDATE IDENTIFIED
├─ Run forward simulation in context
│ ├─ Obstacles appear?
│ │ ├─ Minor → Adapt action, continue simulation
│ │ └─ Major → Try next-typical action from pattern
│ ├─ Unexpected consequences?
│ │ ├─ Acceptable → Proceed with adapted action
│ │ └─ Unacceptable → Flag pattern mismatch, reassess situation
│ └─ Simulation runs clean?
│ └─ Execute action (satisficing achieved)
└─ Simulation fails completely?
└─ Either wrong pattern match OR truly novel situation
Symptoms: Actions consistently fail despite confident execution; expectancy violations frequent Diagnosis: Forcing pattern matches on novel situations or using degraded patterns Fix: Build explicit novelty detection; when confidence <30%, switch to analytical mode Detection Rule: If expectancy violation rate >20% with same pattern, pattern is wrong or degraded
Symptoms: Seeking more information while problem compounds; formal tools used in fire scenarios Diagnosis: Treating all decisions as optimization problems regardless of problem dynamics Fix: Classify situations by growth rate; if exponential, satisfice immediately Detection Rule: If you're gathering more data while the problem size is doubling, you're in wrong mode
Symptoms: Single orchestrator overwhelmed; sequential processing of parallel-eligible tasks Diagnosis: Designing coordination around decomposition rather than situation recognition Fix: Route by pattern match to specialists; use shared mental models for coordination Detection Rule: If one component processes >60% of decisions, you have a bottleneck
Symptoms: Always generating multiple options; refusing "good enough" solutions Diagnosis: Assuming more analysis always improves outcomes regardless of context Fix: Default to satisficing; optimize only when conditions are stable and stakes justify cost Detection Rule: If you're comparing options when first option passes mental simulation, you're over-analyzing
Symptoms: Surprised by developments that patterns should have predicted; late problem detection Diagnosis: Using patterns for action retrieval but not for monitoring/prediction Fix: Every pattern must include expectancies; violations trigger immediate reassessment Detection Rule: If problems develop without early warning signs, expectancy monitoring is broken
Situation: Structure fire reported, first units arriving Cue Recognition: Single-story residential, smoke from windows, no visible flames Pattern Match: "Typical house fire, interior attack viable" (85% confidence)
Decision Process:
What novice misses:
What expert catches:
Situation: Multi-agent system needs task routing for customer support Cue Recognition: Variable complexity queries, specialist domains, time sensitivity mix Pattern Match: "Situation recognition routing" not "central task decomposition"
Decision Process:
What novice misses:
What expert catches:
Do NOT use this skill for:
Delegate to other skills when:
Clear boundaries:
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.