skills/how-to-solve-it-a-new-aspect-polya-g-7564/SKILL.md
Use when stuck on a hard problem, decomposition is unclear, a related problem is needed, or explicit looking-back review will improve transfer. NOT for routine execution with a known procedure, rote checklist work, or domain questions that need specialized subject matter expertise instead of heuristic search.
npx skillsauth add curiositech/windags-skills how-to-solve-it-a-new-aspect-polya-g-7564Install 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.
Use this skill when the main challenge is not raw execution, but figuring out what problem you are actually solving and what move unlocks it.
Before mobilizing data, identify what kind of answer is actually required. The unknown determines which prior patterns are worth retrieving.
If the direct route is blocked, look for a related problem you can solve by generalizing, specializing, analogizing, or dropping part of the condition.
A plausible direction is not a proof, but it is often the only way forward before the structure is fully visible. Treat heuristics as scaffolding that must later be checked.
The "looking back" phase is not optional cleanup. It is where a solved problem becomes a reusable method.
flowchart TD
A[Non-routine problem arrives] --> B{Unknown and constraints clear?}
B -->|No| C[Restate the problem and separate the condition]
B -->|Yes| D{Direct plan visible?}
C --> D
D -->|No| E[Find a related problem: generalize, specialize, analogize, or relax]
D -->|Yes| F[Carry out the plan and verify each major step]
E --> F
F --> G{Result checked and generalized?}
G -->|No| H[Look back: verify, re-derive, and extract a transferable method]
G -->|Yes| I[Return the answer plus the reusable lesson]
H --> I
| Failure mode | What it looks like | Recovery move | | --- | --- | --- | | Skipping understanding | Work starts immediately, but later it becomes obvious the answer targets the wrong question | Rewrite the unknown, givens, and condition before making the next move | | Treating data as the starting point | The solver drowns in facts without identifying what kind of answer is needed | Re-anchor the search around the unknown and similar prior problems | | Confusing heuristic with proof | A promising guess gets reported as settled fact | Label the move as provisional and add an explicit verification pass | | Skipping looking back | The task finishes, but no method, pattern, or diagnostic transfers to the next case | Ask what alternative derivation, check, or generalization should be stored before closing |
references/ instead of bloating the wrapper.Read references/INDEX.md first.
polya-four-phase-problem-solving.md when the whole process is muddled.polya-look-at-the-unknown.md when the team keeps starting from the data instead of the actual target.polya-auxiliary-problems-and-stepping-stones.md when the direct attack is stuck.polya-looking-back-and-knowledge-compounding.md when the goal is to preserve learning, not just finish once.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.