Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add defi-naly/skillbank --skill "thinking-in-systems"
Install specific skill from multi-skill repository
# Description
Apply Donella Meadows's systems thinking framework for analyzing complex problems, understanding feedback loops, identifying leverage points, debugging unintended consequences, designing resilient systems, or modeling economic/social dynamics. Use when facing interconnected problems, when interventions backfire, when analyzing why systems behave counterintuitively, or when designing products/policies with long-term effects.
# SKILL.md
name: thinking-in-systems
description: Apply Donella Meadows's systems thinking framework for analyzing complex problems, understanding feedback loops, identifying leverage points, debugging unintended consequences, designing resilient systems, or modeling economic/social dynamics. Use when facing interconnected problems, when interventions backfire, when analyzing why systems behave counterintuitively, or when designing products/policies with long-term effects.
tags: [decide]
Thinking in Systems
Systems thinking framework for understanding complex, interconnected problems.
Core Concepts
Stocks and Flows
Stock: Accumulation that can be measured at a point in time (water in bathtub, money in account, users on platform, trust in relationship).
Flow: Rate of change in a stock (inflow adds, outflow subtracts).
Key insight: Stocks change slowly. Flows can change instantly, but stocks have momentum.
βββββββββββ
Inflow β β Stock β β Outflow
βββββββββββ
Example: User base (stock) grows via signups (inflow) and shrinks via churn (outflow). Even if you fix churn today, the stock takes time to recover.
Implication: Don't expect instant results from interventions. Stocks buffer and delay effects.
Feedback Loops
Balancing Loops (Goal-Seeking)
System pushes toward equilibrium. Gap between current state and goal drives action.
Goal β Gap β Action β Result β (reduces Gap)
Examples:
- Thermostat: Temperature gap β heating/cooling β temperature returns to target
- Pricing: High price β reduced demand β price pressure downward
- Hunger: Empty stomach β eating β satisfaction
Identify by: System tends toward stability or target.
Reinforcing Loops (Exponential Growth/Collapse)
Success breeds success. Failure breeds failure.
State β Action β More of State β More Action β ...
Examples:
- Viral growth: Users β invites β more users β more invites
- Bank run: Withdrawals β fear β more withdrawals
- Compound interest: Money β interest β more money
- Network effects: Users β value β more users
Identify by: Exponential curves (up or down), "the more... the more..."
Delays
Time lag between action and effect. Cause of oscillation and overcorrection.
Common delays:
- Information delay: Time to perceive change
- Response delay: Time to decide and act
- Delivery delay: Time for action to affect stock
Consequence: If delays are long relative to system response time, expect overshoot and oscillation.
Example: Shower temperatureβadjust knob, wait, nothing happens, adjust more, suddenly scalding.
Rule: When adjusting a system with delays, go slow and wait for feedback.
System Archetypes
Recognize these common patterns:
Fixes That Fail
Quick fix addresses symptom, creates side effects that eventually worsen the problem.
Problem β Quick Fix β Symptom Relief
β
Side Effect β (delayed) β Worse Problem
Example: Pain β painkiller β relief β mask underlying injury β injury worsens
Intervention: Address root cause, not symptom. Ask "What is this fix not addressing?"
Shifting the Burden
Symptomatic solution undermines ability to implement fundamental solution.
Problem β Symptomatic Fix β Relief β (Atrophy of fundamental capability)
β
Fundamental Fix becomes harder
Example: Stress β alcohol β short-term relief β coping skills atrophy β more reliance on alcohol
Intervention: Strengthen fundamental solution while managing symptoms. Ask "What capability are we losing by using this shortcut?"
Success to the Successful
Winner gets advantages that increase winning. Loser gets disadvantages.
A wins β A gets resources β A wins more
B loses β B loses resources β B loses more
Example: Top employee gets best projects β develops skills β gets promoted β gets even better projects
Intervention: Build balancing mechanisms (caps, redistribution, handicaps). Ask "What prevents the underdog from ever catching up?"
Tragedy of the Commons
Individual incentives deplete shared resource.
Individual gain β Use of commons β (if small, ok)
Many individuals β Commons depleted β Everyone loses
Example: Overfishing, bandwidth abuse, ad load on platform
Intervention: Privatize resource, regulate access, or change incentives. Ask "Who pays the cost that I externalize?"
Escalation
Competitors respond to each other, driving mutual increase.
A acts β B responds β A responds more β B responds more β ...
Example: Price wars, arms races, feature bloat wars
Intervention: Refuse to escalate, negotiate limits, find different game. Ask "Who wins if we both stop?"
Leverage Points
Where to intervene in a system, from least to most effective:
Low Leverage (Parameters)
- Numbers, constants, sizes of flows
- Easy to change, rarely changes behavior
- Example: Adjusting tax rate by 1%
Medium Leverage (Structure)
- Feedback loops, delays, information flows
- Harder to change, can shift behavior
- Example: Adding transparency to hidden information
High Leverage (Goals and Paradigms)
- System goals, rules of the game, mental models
- Hardest to change, transforms system entirely
- Example: Changing what "success" means
Ranking (Meadows, least to most powerful):
1. Constants, parameters, numbers
2. Sizes of buffers/stocks
3. Structure of material stocks and flows
4. Lengths of delays
5. Strength of feedback loops
6. Structure of information flows
7. Rules of the system
8. Power to change system structure
9. Goals of the system
10. Paradigm out of which the system arises
11. Power to transcend paradigms
Practical rule: Before optimizing parameters (#1), ask if you're playing the wrong game entirely (#9-11).
System Traps and How to Escape
| Trap | Pattern | Escape |
|---|---|---|
| Policy resistance | Many actors, many goals | Find common ground, redefine goals |
| Tragedy of commons | Shared resource depleted | Regulate, privatize, or educate |
| Drift to low performance | Standards slip imperceptibly | Keep absolute standards visible |
| Escalation | Tit-for-tat amplification | Refuse to play, negotiate |
| Competitive exclusion | Winner takes all | Diversify, find niches |
| Seeking wrong goal | Optimize the wrong metric | Redefine success |
| Rule beating | Gaming the system | Redesign rules, address intent |
Analysis Framework
When analyzing a system:
-
Map the stocks: What accumulates? What can you measure at a point in time?
-
Identify flows: What increases/decreases each stock? At what rate?
-
Find feedback loops:
- What balancing loops maintain stability?
-
What reinforcing loops drive growth/collapse?
-
Locate delays: Where is there lag between cause and effect?
-
Recognize archetypes: Which system traps might be operating?
-
Find leverage: Where would small changes produce large effects?
Application Questions
When designing or debugging systems:
- "What stocks are involved, and what flows affect them?"
- "Where are the feedback loops? What are they trying to achieve?"
- "What delays exist? Am I expecting results faster than the system can deliver?"
- "What archetype is this? Have I seen this pattern before?"
- "Am I addressing symptoms or root causes?"
- "What's the highest-leverage intervention available?"
- "What unintended consequences might this create?"
- "If this intervention succeeds, what new problem emerges?"
Principles for System Intervention
-
Before disturbing a system, understand it. Watch it, learn its rhythm.
-
Expose your mental models to challenge. What are you assuming? What might you be wrong about?
-
Information is power. Making hidden information visible often changes behavior without mandates.
-
Optimize the whole, not the parts. Local optimization often degrades global performance.
-
Beware of delays. If feedback is slow, act slowly and wait.
-
Expand time horizons. Short-term thinking creates long-term problems.
-
Expand boundaries. Most problems exist because boundaries are drawn too narrowly.
-
Respect emergence. Complex behavior arises from simple rules; you can't control everything.
-
Stay humble. Systems will surprise you. Build in resilience, not just efficiency.
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.