skills/simon-and-newell-human-problem-solving-theory-1971/SKILL.md
Foundational cognitive science theory of human problem-solving through heuristic search in problem spaces
npx skillsauth add curiositech/windags-skills simon-and-newell-human-problem-solving-theory-1971Install 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.
Intelligence = examining the right 50 nodes out of 10^100, not searching faster through millions. This skill provides L3 decision frameworks for when and how to apply selective search principles to agent systems.
IF agent examines >1000 nodes for problems with <10^6 states
├── THEN selectivity problem
├── Fix: Extract structural information for heuristics
└── NOT: Add more compute power
IF same problem solved easily with different representation
├── THEN problem space construction issue
├── Fix: Test alternative state representations
└── NOT: Optimize search within current representation
IF agent succeeds on similar problems but fails here
├── Check: Does current problem space expose task structure?
├── If NO: Reconstruct problem space
└── If YES: Refine heuristics for this structure
IF resource usage grows unbounded
├── THEN strategy exceeds architectural constraints
├── Fix: Switch to constraint-compatible strategy
└── Example: Progressive deepening for limited memory
Working Memory: LIMITED + Backtracking: CHEAP
└── Use progressive deepening (depth-first with backtrack)
Working Memory: ABUNDANT + State comparison: NEEDED
└── Use scan-and-search (breadth-first)
Task Structure Assessment:
├── Clear goal state + Measurable progress → Means-ends analysis
├── Hard constraints + Dependencies → Most-constrained-first
├── Recognizable patterns + Action opportunities → Opportunistic planning
└── Multiple valid paths + Resource limits → Constraint satisfaction
Task has well-defined goal state?
├── YES: Extract differences between current and goal
│ ├── Differences are measurable? → Means-ends analysis
│ └── Differences are qualitative? → Pattern-based selection
└── NO: Use structural constraints
├── Hard constraints exist? → Most-constrained-first
├── Known patterns exist? → Production rules (condition→action)
└── Multiple operators available? → Extract structural ranking info
Detection Rule: If solution involves "faster hardware" or "more parallelism" for search problems Symptoms: Agent examines thousands of nodes, performance scales with compute Diagnosis: Missing selectivity through structural information extraction Fix: Analyze task structure for exploitable patterns, constraints, or goal-distance measures
Detection Rule: If same search approach (usually means-ends) applied to all problems
Symptoms: Works on clear-goal problems, fails on constraint satisfaction or opportunistic tasks
Diagnosis: Strategy-task structure mismatch
Fix: Match search pattern to task structure—means-ends for goal reduction, constraint propagation for CSPs, pattern recognition for opportunistic planning
Detection Rule: If optimization effort goes to search algorithms before testing representations Symptoms: Extensive tuning yields marginal gains, "obviously easy" problems remain hard Diagnosis: Wrong problem space for task structure Fix: Test 2-3 alternative state representations before optimizing search within any one
Detection Rule: If strategy requires more working memory than system provides Symptoms: Thrashing, exponential memory growth, inability to backtrack effectively Diagnosis: Importing unlimited-memory strategies to constrained systems Fix: Use progressive deepening for memory-limited, scan-and-search only when memory permits full state tracking
Detection Rule: If problem space treated as "given" without explicit construction phase Symptoms: Agent can't initialize on new tasks, representation seems arbitrary Diagnosis: No systematic problem space construction from task environment Fix: Allocate design effort to representation selection proportional to search difficulty
Novice Approach:
Expert Application:
Key Insight: Same task, different problem space. Constraint-based representation exposes structure that assignment-enumeration hides.
Representation Comparison:
Poor representation: States as disk positions [(disk1_peg, disk2_peg, ...)]
Good representation: States as peg configurations with implicit size ordering
Decision Logic Applied:
Search Performance: Expert finds solution in 31 moves (optimal) by examining ~50 nodes. Poor representation might examine 1000+ nodes and find suboptimal 100-move solution.
Task Environment: Patient symptoms → disease identification → treatment
Problem Space Construction Decision:
Expert Choice: Hybrid approach
Decision Framework Applied:
Do NOT use this skill for:
Delegation Rules:
convex-optimization or metaheuristicsmachine-learning-fundamentalsdistributed-systems-coordinationdecision-theory-under-uncertaintyreal-time-systems-designBoundary Markers:
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.