skills/systems-thinking/SKILL.md
Analyze complex systems through stocks, flows, and feedback loops to find high-leverage interventions. For organizational, environmental, social, and technical systems exhibiting circular causality. NOT for linear problems or simple cause-effect chains.
npx skillsauth add curiositech/windags-skills systems-thinkingInstall 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.
Diagnose why systems cause their own behavior and identify structural interventions that produce sustainable change.
| If you see this behavior... | Then check for... | Try this intervention tree | |----------------------------|------------------|---------------------------| | Oscillation (boom-bust cycles) | Excessive delays in corrective feedback | Reduce delays OR dampen response rates | | Exponential growth hitting limits | Balancing loop activating | Expand limits OR reduce growth rate early | | Multiple failed fixes | Policy resistance trap | Find shared overarching goal | | Performance declining over time | Drift to low performance | Hold absolute standards vs. relative | | Resource degradation | Tragedy of commons | Create direct user feedback |
Problem identified → Map stock-flow structure first
│
├─ High leverage available?
│ ├─ Can change paradigm/worldview? → Transform mental models
│ ├─ Can shift system goals? → Redefine success metrics
│ ├─ Can add/strengthen feedback loops? → Create information flow
│ └─ Can change rules? → Restructure incentives
│
├─ Medium leverage only?
│ ├─ Can improve information flow? → Connect decision-makers to consequences
│ └─ Can adjust parameters? → Change numbers/rates (lowest leverage)
│
└─ No structural leverage?
└─ Wrong problem OR linear system → Use different approach
Trap Type → First Check → If Yes → If No
Policy Resistance → Others resisting your solution? → Find shared goal → Push harder (escalates)
Tragedy of Commons → Shared resource degrading? → Create ownership/feedback → Regulate only
Addiction → Intervention creating dependency? → Strengthen original capacity first → Continue intervention
Escalation → Competition intensifying? → Unilateral restraint OR negotiation → Try to win (unsustainable)
Detection: You're analyzing who did what when, looking for someone to blame
Symptom: "If only we fire X/hire Y/change Z, the problem will be solved"
Fix: Draw behavior over time graphs; map the structure generating events
Detection: 90% of discussion focuses on adjusting numbers (budgets, rates, standards)
Symptom: "We need to increase/decrease the target by X%"
Fix: Ask "What structure is producing these numbers?" Map information flows and feedback loops
Detection: Expecting proportional responses; surprised by sudden behavioral shifts
Symptom: "We did X, so Y should happen proportionally"
Fix: Map circular causality; identify reinforcing loops that create exponential effects
Detection: Demanding predictable outcomes; treating uncertainty as failure
Symptom: "We need better forecasting/control systems"
Fix: Design adaptive feedback policies instead of rigid controls
Detection: Quick fixes that need repeating; original problem capacity atrophying
Symptom: "The intervention is working, we just need to do more of it"
Fix: Strengthen the system's original capacity; plan intervention withdrawal
Situation: Software team chronically missing deadlines despite working 60+ hour weeks
Novice approach: Hire more developers, mandate better time estimation Systems analysis:
Intervention chosen: Slow intake rate (say no to new requests) + improve quality to reduce rework Outcome: Backlog initially grew (counterintuitive) but outflow rate increased as bugs decreased Unintended consequence: Sales team frustrated by delayed features, required stakeholder alignment
Situation: Fishing community experiencing declining catch despite harder work
Stock-flow mapping:
Decision point navigation:
Intervention chosen: Assign fishing territories (privatization) + seasonal quotas based on stock levels
Outcome: Short-term income drop, long-term sustainability
Unintended consequence: Some fishers excluded from system, required compensation mechanism
Situation: Database system slowing down despite hardware upgrades
Systems lens applied:
Leverage points tested:
Result: Information flow change had highest leverage - developers changed behavior when they saw real impact
Don't use systems thinking for:
Delegate to other skills:
Systems thinking 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.