Systems Thinking
Goal
Reframe a local problem as part of a wider system and identify the highest-leverage intervention point.
The job of this skill is not to make everything abstract. The job is to surface dependencies, loops, bottlenecks, and side effects so action targets the system, not just the symptom.
This skill maps interacting causes. It does not claim the mapped system is complete or validated unless evidence is explicitly provided.
Default Posture
- system before symptom
- interactions before isolated parts
- second-order effects before quick fixes
- leverage over activity
- bottleneck before optimization
When To Use
Run this skill when:
- fixing one part causes problems elsewhere
- the same issue keeps recurring
- local optimization does not improve overall outcomes
- there are strong dependencies, queues, loops, or delays
- the problem spans people, process, product, and tooling together
This is a strong next step after:
triz when contradiction interacts with the wider system
jtbd when the job is clear but the delivery system fails
- before prioritization when a local fix may create regressions
Scope Boundaries
In scope:
- identify system boundaries and actors
- map dependencies, flows, delays, and feedback loops
- detect bottlenecks and local-vs-global mismatches
- surface second-order effects
- recommend the highest-leverage next intervention
Out of scope by default:
- pretending the whole world is in scope
- drawing exhaustive system maps when a focused one is enough
- replacing contradiction solving better handled by
triz
- replacing problem framing better handled by
jtbd
Escalation Conditions
Pause and keep uncertainty explicit when:
- the system boundary cannot be named usefully
- no meaningful dependency or loop can be identified
- the map grows but no leverage point appears
- the problem is actually a local contradiction or weak framing issue
If the model remains too vague after one pass, recommend returning to jtbd, triz, or narrower validation work.
Systems Workflow
- State the focal problem in operational terms.
- Define the minimum useful system boundary.
- Identify the main actors, components, queues, or flows.
- Map key dependencies and delays.
- Identify reinforcing and balancing loops if they matter.
- Find the current bottleneck or leverage point.
- Name likely second-order effects of naive fixes.
- Recommend the smallest high-leverage intervention and the next validation step.
Core Questions
Use the minimum set needed:
- What system is this problem part of?
- What are the most important dependencies or flows?
- Where does work, attention, or value accumulate or stall?
- What local fix could worsen the system?
- What loop is reinforcing the current outcome?
- Where is the highest-leverage point for change?
Output Contract
Always return:
focal_problem
system_boundary
key_components
critical_dependencies
feedback_loops
bottleneck_or_leverage_point
second_order_effects
evidence_status (provided, inferred, mixed)
open_unknowns
recommended_followup (systems-thinking, jtbd, triz, selector, validation)
next_intervention
Good Systems Signals
Strong signals:
- the same issue repeats despite fixes
- multiple parts interact to produce the outcome
- a queue, delay, or dependency is visible
- local success does not equal system success
Weak signals:
- the issue is contained to one isolated component
- the problem is still undefined
- there is a direct contradiction that should be handled first
- system mapping adds complexity without new insight
Guardrails
- Do not expand the system boundary without purpose.
- Do not confuse "many factors" with a real system model.
- Do not skip bottleneck identification.
- Distinguish evidence from inference.
- If the problem is really framing or contradiction, recommend
jtbd or triz.
- Prefer one useful leverage point over a giant map with no action.
- If no leverage point emerges, say so instead of inflating the system description.
Anti-Patterns
Watch for these failure modes:
- system-map theater
- naming many components but no meaningful interactions
- treating every issue as systemic
- optimizing around the bottleneck instead of addressing it
- describing loops without any practical intervention
- expanding scope until action disappears
Example
User request:
Support tickets keep rising even though we keep shipping fixes.
Expected shape of response:
focal_problem: support volume rises despite ongoing product fixes
system_boundary: support intake, product defects, release process, docs, onboarding, feedback triage
key_components: users, support team, product team, release pipeline, help docs, onboarding flows
critical_dependencies: ticket data to prioritization, release timing to incident load, docs quality to self-service resolution
feedback_loops: more tickets reduce support bandwidth, weaker triage delays fixes, delayed fixes create more tickets
bottleneck_or_leverage_point: weak issue categorization and delayed root-cause routing between support and product
second_order_effects: shipping more low-confidence fixes may increase regressions and documentation drift
evidence_status: inferred
open_unknowns: which ticket categories dominate, where re-open rates cluster, how release timing correlates with spikes
recommended_followup: validation
next_intervention: instrument ticket categories and route the highest-volume class through a tighter support-to-product feedback loop
1---2name: systems-thinking3description: Use systems thinking to analyze problems driven by dependencies, feedback loops, bottlenecks, local optimizations, and second-order effects. Use when fixing one part changes another, when repeated issues keep resurfacing, or when the real problem is in the surrounding system rather than a single component.4---56# Systems Thinking78## Goal910Reframe a local problem as part of a wider system and identify the highest-leverage intervention point.1112The job of this skill is not to make everything abstract. The job is to surface dependencies, loops, bottlenecks, and side effects so action targets the system, not just the symptom.1314This skill maps interacting causes. It does not claim the mapped system is complete or validated unless evidence is explicitly provided.1516## Default Posture1718- system before symptom19- interactions before isolated parts20- second-order effects before quick fixes21- leverage over activity22- bottleneck before optimization2324## When To Use2526Run this skill when:2728- fixing one part causes problems elsewhere29- the same issue keeps recurring30- local optimization does not improve overall outcomes31- there are strong dependencies, queues, loops, or delays32- the problem spans people, process, product, and tooling together3334This is a strong next step after:3536- `triz` when contradiction interacts with the wider system37- `jtbd` when the job is clear but the delivery system fails38- before prioritization when a local fix may create regressions3940## Scope Boundaries4142In scope:4344- identify system boundaries and actors45- map dependencies, flows, delays, and feedback loops46- detect bottlenecks and local-vs-global mismatches47- surface second-order effects48- recommend the highest-leverage next intervention4950Out of scope by default:5152- pretending the whole world is in scope53- drawing exhaustive system maps when a focused one is enough54- replacing contradiction solving better handled by `triz`55- replacing problem framing better handled by `jtbd`5657## Escalation Conditions5859Pause and keep uncertainty explicit when:6061- the system boundary cannot be named usefully62- no meaningful dependency or loop can be identified63- the map grows but no leverage point appears64- the problem is actually a local contradiction or weak framing issue6566If the model remains too vague after one pass, recommend returning to `jtbd`, `triz`, or narrower validation work.6768## Systems Workflow69701. State the focal problem in operational terms.712. Define the minimum useful system boundary.723. Identify the main actors, components, queues, or flows.734. Map key dependencies and delays.745. Identify reinforcing and balancing loops if they matter.756. Find the current bottleneck or leverage point.767. Name likely second-order effects of naive fixes.778. Recommend the smallest high-leverage intervention and the next validation step.7879## Core Questions8081Use the minimum set needed:8283- What system is this problem part of?84- What are the most important dependencies or flows?85- Where does work, attention, or value accumulate or stall?86- What local fix could worsen the system?87- What loop is reinforcing the current outcome?88- Where is the highest-leverage point for change?8990## Output Contract9192Always return:93941. `focal_problem`952. `system_boundary`963. `key_components`974. `critical_dependencies`985. `feedback_loops`996. `bottleneck_or_leverage_point`1007. `second_order_effects`1018. `evidence_status` (`provided`, `inferred`, `mixed`)1029. `open_unknowns`10310. `recommended_followup` (`systems-thinking`, `jtbd`, `triz`, `selector`, `validation`)10411. `next_intervention`105106## Good Systems Signals107108Strong signals:109110- the same issue repeats despite fixes111- multiple parts interact to produce the outcome112- a queue, delay, or dependency is visible113- local success does not equal system success114115Weak signals:116117- the issue is contained to one isolated component118- the problem is still undefined119- there is a direct contradiction that should be handled first120- system mapping adds complexity without new insight121122## Guardrails123124- Do not expand the system boundary without purpose.125- Do not confuse "many factors" with a real system model.126- Do not skip bottleneck identification.127- Distinguish evidence from inference.128- If the problem is really framing or contradiction, recommend `jtbd` or `triz`.129- Prefer one useful leverage point over a giant map with no action.130- If no leverage point emerges, say so instead of inflating the system description.131132## Anti-Patterns133134Watch for these failure modes:135136- system-map theater137- naming many components but no meaningful interactions138- treating every issue as systemic139- optimizing around the bottleneck instead of addressing it140- describing loops without any practical intervention141- expanding scope until action disappears142143## Example144145User request:146147`Support tickets keep rising even though we keep shipping fixes.`148149Expected shape of response:1501511. `focal_problem`: support volume rises despite ongoing product fixes1522. `system_boundary`: support intake, product defects, release process, docs, onboarding, feedback triage1533. `key_components`: users, support team, product team, release pipeline, help docs, onboarding flows1544. `critical_dependencies`: ticket data to prioritization, release timing to incident load, docs quality to self-service resolution1555. `feedback_loops`: more tickets reduce support bandwidth, weaker triage delays fixes, delayed fixes create more tickets1566. `bottleneck_or_leverage_point`: weak issue categorization and delayed root-cause routing between support and product1577. `second_order_effects`: shipping more low-confidence fixes may increase regressions and documentation drift1588. `evidence_status`: `inferred`1599. `open_unknowns`: which ticket categories dominate, where re-open rates cluster, how release timing correlates with spikes16010. `recommended_followup`: `validation`16111. `next_intervention`: instrument ticket categories and route the highest-volume class through a tighter support-to-product feedback loop