Skip to content
cccskills
FreePublished on GitHub

catcolab-causal-loop

CatColab Causal Loop Diagrams - systems dynamics modeling with reinforcing (R) and balancing (B) feedback loops, delays, and Lotka-Volterra semantics for strategic analysis.

The English summary is being prepared. Showing the original description.

See how to install

Files included (3)

  • SKILL.md7.1 KB
  • CONCOMITANT_SKILLS.md2.1 KB
  • NEIGHBOR_SKILLS.md2.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

CatColab Causal Loop Diagrams: Systems Dynamics

Trit: 0 (ERGODIC - coordinator/mediator) Color: Yellow (#FFD700)

Overview

Causal Loop Diagrams (CLDs) in CatColab model feedback systems:

  • Variables: System quantities that change over time
  • Positive links (+): Same-direction influence (increase→increase)
  • Negative links (-): Opposite-direction influence (increase→decrease)
  • Loops: Reinforcing (R) or Balancing (B) feedback

CLDs are essential for understanding system behavior, policy analysis, and strategic planning.

Mathematical Foundation

A causal loop diagram is a signed directed graph with loop classification:

┌─────────────────────────────────────────────────────┐
│            CAUSAL LOOP DIAGRAM                       │
├─────────────────────────────────────────────────────┤
│  Variables:                                          │
│    Population, Resources, Pollution, Quality         │
│                                                      │
│  Positive Links (+):                                 │
│    Population ──(+)──► Pollution                     │
│    Resources ──(+)──► Quality                        │
│                                                      │
│  Negative Links (-):                                 │
│    Pollution ──(-)──► Quality                        │
│    Quality ──(-)──► Population (emigration)          │
│                                                      │
│  Loops:                                              │
│    R1: Population→Births→Population (reinforcing)    │
│    B1: Population→Resources→Quality→Pop (balancing)  │
└─────────────────────────────────────────────────────┘

Loop Classification

Reinforcing Loop (R): Even number of negative links

  • Exponential growth or collapse
  • "Snowball effect" or "vicious/virtuous cycle"

Balancing Loop (B): Odd number of negative links

  • Goal-seeking behavior
  • Homeostasis, equilibrium
REINFORCING (R):              BALANCING (B):
   A ──(+)──► B                  A ──(+)──► B
   ▲          │                  ▲          │
   │          │                  │          │
   └──(+)─────┘                  └──(-)─────┘
   (exponential)                 (equilibrium)

Double Theory

// Causal loop double theory with decorated edges
pub fn th_causal_loop() -> DiscreteDblTheory {
    let mut cat = FpCategory::new();

    // Object type
    cat.add_ob_generator(name("Variable"));

    // Morphism types (polarized links)
    cat.add_mor_generator(name("Positive"), name("Variable"), name("Variable"));
    cat.add_mor_generator(name("Negative"), name("Variable"), name("Variable"));

    // Decorations (CatColab 0.2)
    cat.add_mor_generator(name("Delay"), name("Variable"), name("Variable"));
    cat.add_mor_generator(name("Indeterminate"), name("Variable"), name("Variable"));

    cat.into()
}

CatColab Implementation

Variable Declaration

{
  "type": "ObDecl",
  "name": "MarketShare",
  "theory_type": "Variable",
  "description": "company's percentage of total market"
}

Positive Link

{
  "type": "MorDecl",
  "name": "growth_effect",
  "dom": "MarketShare",
  "cod": "Revenue",
  "theory_type": "Positive",
  "description": "higher market share increases revenue"
}

Negative Link

{
  "type": "MorDecl",
  "name": "saturation_effect",
  "dom": "MarketShare",
  "cod": "GrowthRate",
  "theory_type": "Negative",
  "description": "higher share reduces growth potential"
}

Delay (CatColab 0.2)

{
  "type": "MorDecl",
  "name": "investment_lag",
  "dom": "RnD_Spending",
  "cod": "ProductQuality",
  "theory_type": "Delay",
  "delay_time": 12,  // months
  "description": "R&D takes time to improve products"
}

Lotka-Volterra Semantics

CatColab generates Lotka-Volterra ODEs from causal loops:

For variables X, Y with positive link X→Y:
  dY/dt = α·X·Y

For negative link X→Y:
  dY/dt = -β·X·Y

General form:
  dXᵢ/dt = Xᵢ · Σⱼ aᵢⱼ·Xⱼ

Practical Examples

Example 1: Adoption Dynamics

     Word of Mouth
          ↗ (+)
    Users ────────► Adoption Rate
      ▲                 │
      │                 │
      └────(+)──────────┘
           R1: Viral Growth

    Adoption Rate ──(+)──► Users
         │
         └──(-)──► Potential Users
                       │
              B1: Market Saturation

Example 2: Thermostat (Balancing)

    Desired Temp ──(+)──► Gap
         ▲                 │
         │                 │
         │                (+)
         │                 ▼
    Actual Temp ◄──(+)── Heating
         │
         └──(-)──► Gap
              B1: Temperature Control

Example 3: Arms Race (Reinforcing)

    Country A Arms ──(+)──► Country A Threat Perception
           ▲                        │
           │                       (+)
           │                        ▼
    Country B Arms ◄──(+)── Country B Arms Spending
           │
           └──(+)──► Country A Threat Perception
                R1: Escalation Spiral

Analysis Capabilities

  • Loop identification: Automatic detection of R and B loops
  • Dominant loop analysis: Which loops drive behavior
  • Policy leverage points: Where interventions are most effective
  • Scenario simulation: Lotka-Volterra dynamics

GF(3) Triads

catcolab-regulatory-networks (-1) ⊗ catcolab-causal-loop (0) ⊗ catcolab-stock-flow (+1) = 0 ✓
open-games (-1) ⊗ catcolab-causal-loop (0) ⊗ dynamical-system-functor (+1) = 0 ✓

Commands

# Create causal loop diagram
just catcolab-new causal-loop "market-dynamics"

# Identify all loops
just catcolab-analyze market-dynamics --loops

# Simulate Lotka-Volterra
just catcolab-simulate market-dynamics --lotka-volterra

# Export to Vensim format
just catcolab-export market-dynamics --format=mdl

References

  • Sterman (2000) "Business Dynamics: Systems Thinking and Modeling"
  • Meadows (2008) "Thinking in Systems"
  • CatColab Causal Loop Help

Skill Name: catcolab-causal-loop Type: Systems Dynamics / Feedback Analysis Trit: 0 (ERGODIC) GF(3): Conserved via triadic composition

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Model ElevenLabs voice synthesis as an ACSet schema with Unison ability handlers for typed voice operations. Use when integrating ElevenLabs TTS into category-theoretic pipelines, building typed voice synthesis workflows, or managing multi-voice narration with GF(3) conservation.

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

Systematic process for analyzing and modernizing legacy applications to comply with the 12-Factor App methodology. Covers code analysis, configuration externalization, dependency management, and container/Kubernetes best practices.

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

13c0e3

Free

Gay MCP skill at invocation 26

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

19d57d

Free

Gay MCP skill at invocation 5

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

1ea91a

Free

Gay MCP skill at invocation 27

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

1eab21

Free

Gay MCP skill at invocation 3

The English summary is being prepared. Showing the original description.

plurigrid/asi70Updated Jul 10, 2026

See all skills by plurigrid

Report a problem with this skill