install
source · Clone the upstream repo
git clone https://github.com/flpbalada/my-opencode-config
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/flpbalada/my-opencode-config "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/graph-thinking" ~/.claude/skills/flpbalada-my-opencode-config-graph-thinking && rm -rf "$T"
manifest:
skills/graph-thinking/SKILL.mdsource content
Graph Thinking - Non-Linear Problem Solving
Mental model for visualizing complex relationships and connections between ideas, concepts, or data points. Evolved from Graph-of-Thought (GoT) reasoning that mirrors human cognition.
When to Use This Skill
- Mapping feature dependencies in product development
- Analyzing stakeholder relationships
- Understanding system architectures
- Exploring interconnected concepts
- Designing recommendation systems or knowledge graphs
- Identifying opportunity areas through network analysis
Core Concepts
Graph Elements
| Element | Description |
|---|---|
| Nodes | Individual elements or concepts |
| Edges | Relationships or connections between nodes |
| Clusters | Groups of highly connected nodes |
| Pathways | Routes through the network |
| Centrality | Measures identifying most important nodes |
| Topology | Structural arrangement of connections |
Graph-of-Thought (GoT) Reasoning
Traditional (Chain-of-Thought): A → B → C → D → Conclusion Graph-of-Thought: ┌─── B ───┐ │ │ A ──┼─── C ───┼──→ Synthesis → Conclusion │ │ └─── D ───┘ ↑ Feedback Loop
GoT enables:
- Combining arbitrary thoughts into synergistic outcomes
- Distilling networks of thoughts for clarity
- Enhancing ideas using feedback loops
- Non-linear exploration of solution spaces
Fundamental Principles
First Principles Thinking
Break down complex problems into fundamental truths:
Surface Level: "We need more marketing" ↓ Why? ↓ "Not enough customers" ↓ Why? ↓ Root Truth: "Value proposition unclear to target audience"
Second-Order Thinking
Demand deeper analysis by asking "And then what?":
Decision: Reduce prices by 20% First-order: More sales Second-order: Lower margins → Less R&D budget Third-order: Competitors catch up → Price war Fourth-order: Race to bottom → Industry commoditization
Non-Linear Processing
Unlike sequential thinking:
| Sequential | Graph-Based |
|---|---|
| One path at a time | Multiple paths simultaneously |
| Linear information flow | Multi-directional exploration |
| Fixed order | Iterative refinement through loops |
| Single conclusion | Synthesized insights from multiple angles |
Analysis Framework
Double Diamond Model
Apply divergent and convergent thinking cycles:
DISCOVER DEFINE DEVELOP DELIVER (Diverge) (Converge) (Diverge) (Converge) /\ \/ /\ \/ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ Explore Focus on Generate Focus on problem specific diverse optimal space challenges solutions implementation
Step 1: Map the Nodes
Identify all relevant elements:
Product Launch Analysis: Nodes: ├── Stakeholders │ ├── Customers │ ├── Engineering │ ├── Marketing │ └── Leadership ├── Features │ ├── Core functionality │ ├── Nice-to-haves │ └── Technical debt ├── Constraints │ ├── Timeline │ ├── Budget │ └── Resources └── Dependencies ├── External APIs ├── Infrastructure └── Regulatory
Step 2: Define Relationships (Edges)
Document connections between nodes:
Edge Types: ├── Dependency: A requires B ├── Influence: A affects B ├── Correlation: A and B move together ├── Conflict: A competes with B └── Synergy: A enhances B
Step 3: Identify Clusters and Patterns
Find highly connected groups:
High Centrality (Critical Nodes): ├── Authentication service → 12 dependencies ├── Database layer → 8 dependencies └── API gateway → 6 dependencies Clusters: ├── User-facing features (tightly coupled) ├── Backend services (loosely coupled) └── Third-party integrations (isolated)
Step 4: Analyze Pathways
Trace routes through the network:
User Journey Graph: Landing Page ↓ [Sign Up] ←→ [Social Login] ↓ Onboarding ↓ ↓ Quick Start Full Setup ↓ ↓ └─────┬─────┘ ↓ First Value ↓ ↙ ↓ ↘ Churn Retain Upgrade
Output Template
After completing analysis, document as:
## Graph Thinking Analysis **Subject:** [What you're analyzing] **Analysis Date:** [Date] ### Node Map | Category | Nodes | Centrality | | -------- | ------- | -------------- | | [Cat 1] | [Nodes] | [High/Med/Low] | | [Cat 2] | [Nodes] | [High/Med/Low] | ### Relationship Matrix | From | To | Relationship | Strength | | ---- | --- | ------------ | -------- | | [A] | [B] | [Type] | [1-5] | ### Key Insights 1. **Clusters identified:** [Description] 2. **Critical paths:** [Description] 3. **Bottlenecks:** [Description] 4. **Opportunities:** [Description] ### Recommendations | Priority | Action | Rationale | | -------- | -------- | --------- | | High | [Action] | [Why] | | Medium | [Action] | [Why] |
Application Examples
Feature Dependency Mapping
Feature: Real-time Collaboration Dependencies: ├── WebSocket infrastructure │ ├── Connection management │ └── Message queuing ├── Conflict resolution │ ├── Operational transforms │ └── CRDT implementation ├── Presence indicators │ └── User state sync └── Permissions ├── Document access └── Cursor visibility
Stakeholder Analysis
HIGH INFLUENCE │ Keep Satisfied │ Manage Closely ┌─────────────────────┼─────────────────────┐ │ │ │ │ Executives │ Product Owner │ │ Compliance │ Key Customers │ │ │ │ LOW ──────────────────────┼────────────────────── HIGH INTEREST │ INTEREST │ │ │ │ General Users │ Power Users │ │ IT Support │ Dev Team │ │ │ │ └─────────────────────┼─────────────────────┘ Monitor │ Keep Informed │ LOW INFLUENCE
System Architecture Analysis
Microservice Graph: API Gateway [Centrality: 0.95] │ ├── Auth Service [0.82] │ └── User DB │ ├── Product Service [0.71] │ ├── Catalog DB │ └── Search Index │ ├── Order Service [0.68] │ ├── Order DB │ └── Payment Gateway (external) │ └── Notification Service [0.45] └── Email Provider (external) Critical Path: Gateway → Auth → Product → Order Bottleneck: Auth Service (single point of failure)
Best Practices
Do
- Visualize relationships - Draw the graph, don't just describe it
- Iterate continuously - Graphs evolve as understanding deepens
- Measure centrality - Identify the most critical nodes
- Look for clusters - Natural groupings reveal system structure
- Trace pathways - Understand how information/value flows
Avoid
- Over-connecting - Not everything relates to everything
- Ignoring edge types - Different relationships have different meanings
- Static thinking - Graphs change over time
- Missing feedback loops - Circular dependencies are significant
- Forgetting weights - Some relationships are stronger than others
Integration with Other Methods
| Method | Combined Use |
|---|---|
| Five Whys | Trace causal chains through the graph |
| Business Canvas | Map relationships between canvas elements |
| Jobs-to-be-Done | Connect user needs to feature nodes |
| Hypothesis Tree | Structure experiments as branching graphs |
| Stakeholder Map | Visualize influence and interest relationships |
Tools
Visualization
- Mermaid - Code-based diagrams in markdown
- Graphviz - Programmatic graph generation
- Excalidraw - Hand-drawn style diagrams
- Miro/FigJam - Collaborative whiteboarding
Analysis
- Gephi - Network analysis and visualization
- Neo4j - Graph database for complex queries
- NetworkX - Python library for graph algorithms