|
|
@@ -1,216 +0,0 @@
|
|
|
----
|
|
|
-name: Detecting Emergent Patterns
|
|
|
-description: Find breakthrough insights by forcing unrelated concepts together, detecting meta-patterns across domains, and discovering simplification cascades
|
|
|
-when_to_use: When stuck on complex problems. When searching for innovative solutions. When same issue appears in different domains. When complexity feels excessive. When conventional approaches aren't working. When seeking radical simplification.
|
|
|
-version: 1.0.0
|
|
|
----
|
|
|
-
|
|
|
-# Detecting Emergent Patterns
|
|
|
-
|
|
|
-## Overview
|
|
|
-
|
|
|
-Revolutionary insights often come from unexpected connections. This skill helps you force unrelated concepts together, recognize patterns across domains, and find simplifications that make hard problems easy.
|
|
|
-
|
|
|
-**Core principle:** The best solutions often come from collision-zone thinking - forcing concepts from different domains to interact.
|
|
|
-
|
|
|
-## Technique 1: Collision-Zone Thinking
|
|
|
-
|
|
|
-Force unrelated concepts together to discover emergent properties:
|
|
|
-
|
|
|
-**Process:**
|
|
|
-1. **Pick two unrelated concepts** from different domains
|
|
|
-2. **Force combination**: "What if we treated X like Y?"
|
|
|
-3. **Explore emergent properties**: What new capabilities appear?
|
|
|
-4. **Test validity**: Does the metaphor break? Where?
|
|
|
-
|
|
|
-**Example collisions:**
|
|
|
-- "What if we treated code like DNA?" → Genetic algorithms, mutation testing
|
|
|
-- "What if we treated services like lego bricks?" → Microservices, composable architecture
|
|
|
-- "What if we treated data like water?" → Data lakes, streaming, flow-based programming
|
|
|
-- "What if we treated requests like letters?" → Message queues, async processing
|
|
|
-
|
|
|
-**Document experiments:**
|
|
|
-```markdown
|
|
|
-## Collision Experiment: [Concept A] × [Concept B]
|
|
|
-
|
|
|
-**Forced combination:** What if we treated [A] like [B]?
|
|
|
-
|
|
|
-**Emergent properties:**
|
|
|
-- [New capability 1]
|
|
|
-- [New capability 2]
|
|
|
-
|
|
|
-**Where it works:** [Specific contexts]
|
|
|
-**Where it breaks:** [Limitations]
|
|
|
-**Insight gained:** [What we learned]
|
|
|
-```
|
|
|
-
|
|
|
-## Technique 2: Meta-Pattern Recognition
|
|
|
-
|
|
|
-Find patterns in how patterns emerge:
|
|
|
-
|
|
|
-**Look for:**
|
|
|
-- **Same shape, different domain**: Caching (CPU/DB/HTTP/DNS) - all same pattern
|
|
|
-- **Recurring solutions**: Layering, queuing, pooling, proxying appear everywhere
|
|
|
-- **Universal tensions**: Speed vs accuracy, simplicity vs features, cost vs performance
|
|
|
-- **Abstraction levels**: Physical → Logical → Virtual (appears in networking, storage, compute)
|
|
|
-
|
|
|
-**When you spot a pattern appearing in 3+ domains:**
|
|
|
-
|
|
|
-1. **Extract the abstract form** (independent of any domain)
|
|
|
-2. **Identify variation points** (how it adapts per domain)
|
|
|
-3. **Check applicability** (where else might this pattern help?)
|
|
|
-
|
|
|
-**Example:**
|
|
|
-```markdown
|
|
|
-## Meta-Pattern: Circuit Breaking
|
|
|
-
|
|
|
-**Appears in:**
|
|
|
-- Electrical: Circuit breakers prevent overload
|
|
|
-- Microservices: Circuit breaker pattern prevents cascade failures
|
|
|
-- Psychology: "Taking a break" prevents burnout
|
|
|
-- Economics: Trading halts prevent market crashes
|
|
|
-
|
|
|
-**Abstract form:** Monitor system, detect dangerous conditions, temporarily disconnect to prevent catastrophic failure, reconnect when safe
|
|
|
-
|
|
|
-**Variation points:** What triggers break, how long to wait, how to test if safe
|
|
|
-
|
|
|
-**New application:** Could apply to AI training (detect overfitting early, pause, adjust, resume)
|
|
|
-```
|
|
|
-
|
|
|
-## Technique 3: Simplification Cascades
|
|
|
-
|
|
|
-Find insights that dramatically reduce complexity:
|
|
|
-
|
|
|
-**Look for:**
|
|
|
-- **"If this is true, we don't need X, Y, or Z"** - One insight eliminates multiple components
|
|
|
-- **"Everything becomes a special case of..."** - Generalization that subsumes specifics
|
|
|
-- **"This replaces 10 techniques with one"** - Unifying approach
|
|
|
-
|
|
|
-**Red flags signaling simplification opportunity:**
|
|
|
-- Same concept implemented 5 different ways
|
|
|
-- Complex rules with many special cases
|
|
|
-- "We handle A, B, C, D differently" (maybe they're the same underneath?)
|
|
|
-- Excessive configuration options
|
|
|
-- Many if/else branches doing similar things
|
|
|
-
|
|
|
-**Cascade detection:**
|
|
|
-```markdown
|
|
|
-## Simplification: [Core Insight]
|
|
|
-
|
|
|
-**Replaces:**
|
|
|
-- [Technique 1 - no longer needed]
|
|
|
-- [Technique 2 - no longer needed]
|
|
|
-- [Technique 3 - no longer needed]
|
|
|
-
|
|
|
-**By realizing:** [The unifying insight]
|
|
|
-
|
|
|
-**Complexity reduction:** 10x (10 things → 1 thing)
|
|
|
-
|
|
|
-**Example:** "If we treat all inputs as streams, we don't need separate batch/real-time/file/network handlers - just different stream sources"
|
|
|
-```
|
|
|
-
|
|
|
-## Technique 4: Inversion Exercise
|
|
|
-
|
|
|
-Sometimes inverting assumptions reveals insights:
|
|
|
-
|
|
|
-**Process:**
|
|
|
-1. **List core assumptions** about the problem
|
|
|
-2. **Systematically invert each** ("what if the opposite were true?")
|
|
|
-3. **Explore implications** (what would we do differently?)
|
|
|
-4. **Find valid inversions** (which actually work in some context?)
|
|
|
-
|
|
|
-**Example inversions:**
|
|
|
-- Normal: "Cache to reduce latency" → Inverted: "Add latency to enable caching" (debouncing)
|
|
|
-- Normal: "Pull data when needed" → Inverted: "Push data before it's needed" (prefetching)
|
|
|
-- Normal: "Handle errors when they occur" → Inverted: "Make errors impossible" (type systems)
|
|
|
-
|
|
|
-## Technique 5: Scale Game
|
|
|
-
|
|
|
-See what breaks/survives at extreme scales:
|
|
|
-
|
|
|
-**Test at extremes:**
|
|
|
-- What if this was 1000x bigger? 1000x smaller?
|
|
|
-- What if this was instant? What if it took a year?
|
|
|
-- What if we had 1 user? 1 billion users?
|
|
|
-
|
|
|
-**Why it works:** Extremes expose fundamental truths hidden at normal scales
|
|
|
-
|
|
|
-**Example:**
|
|
|
-- "Handle errors" works at small scale
|
|
|
-- At 1B scale → "Make errors impossible" becomes necessary
|
|
|
-- Reveals: Type systems aren't "nice to have", they're "survival requirement at scale"
|
|
|
-
|
|
|
-## When Patterns Are Productive
|
|
|
-
|
|
|
-**Use emergent pattern detection when:**
|
|
|
-- Stuck on hard problems
|
|
|
-- Conventional solutions feel inadequate
|
|
|
-- Multiple domains showing similar issues
|
|
|
-- Complexity spiraling without clear path
|
|
|
-- Innovation needed, not optimization
|
|
|
-
|
|
|
-**Don't force it when:**
|
|
|
-- Simple solution already exists
|
|
|
-- Problem is straightforward
|
|
|
-- Domain-specific knowledge more valuable
|
|
|
-- Time-constrained execution needed
|
|
|
-
|
|
|
-## Red Flags - You're Missing Patterns
|
|
|
-
|
|
|
-- "This problem is unique" (probably not - similar patterns likely exist elsewhere)
|
|
|
-- Multiple teams solving "different" problems identically (maybe they're the same problem)
|
|
|
-- Growing list of special cases (maybe they're variations of one thing)
|
|
|
-- "We just need to handle one more scenario" (repeating forever = missing pattern)
|
|
|
-
|
|
|
-**All of these suggest: STOP. Look for the underlying pattern.**
|
|
|
-
|
|
|
-## Documentation Format
|
|
|
-
|
|
|
-```markdown
|
|
|
-## Pattern Discovery: [Name]
|
|
|
-
|
|
|
-**Recognition:** [What made you see this]
|
|
|
-
|
|
|
-**Domains observed:**
|
|
|
-1. [Domain 1 example]
|
|
|
-2. [Domain 2 example]
|
|
|
-3. [Domain 3 example]
|
|
|
-
|
|
|
-**Abstract pattern:** [Domain-independent description]
|
|
|
-
|
|
|
-**New application:** [Where else this could help]
|
|
|
-
|
|
|
-**Validation:** [How to test if pattern truly applies]
|
|
|
-```
|
|
|
-
|
|
|
-## Examples
|
|
|
-
|
|
|
-### Collision Success
|
|
|
-**Experiment:** "What if we treated logs like databases?"
|
|
|
-**Emergent property:** SQL queries over logs (Splunk, ELK)
|
|
|
-**Insight:** Structured data in disguise, just needs query language
|
|
|
-
|
|
|
-### Meta-Pattern
|
|
|
-**Pattern:** Rate limiting appears in: API throttling, traffic shaping, circuit breakers, admission control
|
|
|
-**Abstract form:** Bound resource consumption to prevent exhaustion
|
|
|
-**New application:** LLM token budgets (same pattern!)
|
|
|
-
|
|
|
-### Simplification Cascade
|
|
|
-**Insight:** "Treat everything as immutable data + transformations"
|
|
|
-**Eliminates:** Defensive copying, synchronization, cache invalidation, temporal coupling
|
|
|
-**Result:** Functional programming revolution
|
|
|
-
|
|
|
-### Inversion Win
|
|
|
-**Normal:** "Build features users want"
|
|
|
-**Inverted:** "Remove features users don't need"
|
|
|
-**Insight:** Sometimes subtraction >> addition (path to simplicity)
|
|
|
-
|
|
|
-## Remember
|
|
|
-
|
|
|
-- Best insights come from unexpected connections
|
|
|
-- Force concepts together deliberately
|
|
|
-- Pattern in 3+ domains suggests universal principle
|
|
|
-- Simplification cascades eliminate multiple problems at once
|
|
|
-- Inversion reveals hidden assumptions
|
|
|
-- Extremes expose fundamental truths
|
|
|
-- Document even failed experiments (they teach)
|