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:
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.