# Double-Loop Learning

> What we're trying to achieve. Check: Is achieving this goal actually solving the problem?

- Skill: `tools-only/double-loop-learning` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add tools-only/double-loop-learning`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/double-loop-learning/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-29
- Page: https://skillmd.com/skills/tools-only/double-loop-learning

---

# Double-Loop Learning

Question and update the frame itself.

## When to Use

- Single-loop corrections keep failing
- Pattern of similar failures emerges (3+)
- Fundamental assumption proven wrong
- Goals themselves may be wrong
- "Doing things right" isn't working

## Mental Model

**Not just adjusting thermostat, but asking: "Is heating the right goal?"**

```
Frame (questioned) → Goals (questioned) → Actions → Results → 
Pattern detected → Examine frame → Reframe → New goals → New actions
```

## Double-Loop Triggers

### Pattern of Failures

Three or more single-loop attempts for the same type of problem:

| Attempt | Action | Result |
|---------|--------|--------|
| 1 | Simplified contract | Still stalled |
| 2 | Added FAQ | Still stalled |
| 3 | Pre-emptive call | Still stalled |
| **Trigger** | Pattern detected | → Double-loop |

### Assumption Invalidation

Evidence that a core assumption is wrong:

**Assumption:** "Legal review is the bottleneck"

**Evidence against:**
- Legal approved competitor's terms quickly
- Deals with early legal involvement close 3x faster
- Legal team says they're waiting on sales

**Trigger:** Assumption appears to be wrong → Double-loop

### Goal Questioning

Evidence that achieving the goal won't solve the problem:

**Goal:** "Reduce legal review time"

**Evidence goal is wrong:**
- Fast legal reviews didn't correlate with faster closes
- We achieved the goal but problem persists

**Trigger:** Goal may be wrong → Double-loop

## Process

### 1. Articulate Current Frame

Make the implicit explicit.

**Capture:**
- **Goals:** What are we trying to achieve?
- **Explicit assumptions:** What do we knowingly believe?
- **Implicit assumptions:** What do we unknowingly assume?
- **Constraints:** What limits our options?
- **Mental model:** How do we think this works?

### 2. Challenge Each Element

Test each element of the frame against evidence.

**For each element:**
- What evidence supports this?
- What evidence contradicts this?
- What would invalidate this?
- What's an alternative?

**Challenge types:**
- **Assumption challenge:** Is this belief actually true?
- **Goal challenge:** Is this the right goal?
- **Constraint challenge:** Is this really a constraint?
- **Framing challenge:** Are we looking at this correctly?

### 3. Construct New Frame

Build an alternative frame that better fits the evidence.

**New frame includes:**
- Updated goals (if changed)
- New assumptions (replacing invalidated ones)
- Updated constraints
- New mental model

### 4. Compare Frames

Evaluate old vs new frame.

**Questions:**
- What changed?
- Why is new frame better?
- What evidence supports new frame?
- What stays the same?

### 5. Assess Implications

Understand what the reframe means.

**What's now invalid:**
- Initiatives based on old assumptions
- Beliefs that were wrong
- Metrics that don't matter

**What's now possible:**
- New initiatives enabled by new understanding
- New metrics to track

**What must change:**
- Process changes required
- Capability changes required
- Organization changes required

### 6. Validate New Frame

Test before full commitment.

**Validation approach:**
- Hypothesis: [New frame predicts...]
- Test: [How we'll test]
- Success criteria: [What would validate]
- Reversibility: [Can we revert if wrong?]

## Output Format

```markdown
## Double-Loop: [Problem Pattern]

**Trigger:**
- Pattern: [Description of repeated failures]
- Single-loop attempts: [N] attempts, same outcome
- Evidence frame is wrong: [What suggests this]

### Current Frame

**Goals:**
- [Goal 1]
- [Goal 2]

**Assumptions:**
- Explicit: [Stated beliefs]
- Implicit: [Unstated beliefs]

**Constraints:**
- [Constraint 1]

**Mental model:** [How we think this works]

### Frame Challenges

**[Element 1]:**
- Evidence against: [What contradicts]
- Alternative: [What might be true instead]

**[Element 2]:**
- Evidence against: [What contradicts]
- Alternative: [What might be true instead]

### New Frame

**Goals:**
- [Updated goal 1]
- [New goal if needed]

**Assumptions:**
- [New assumption 1]
- [New assumption 2]

**Constraints:**
- [Updated constraints]

**Mental model:** [New understanding]

### Comparison

**What changed:**
- From: [Old] → To: [New]

**Why better:**
- [Evidence for new frame]

**What stays:**
- [Unchanged elements]

### Implications

**Invalidates:**
- [Initiative/belief that's now invalid]

**Enables:**
- [New possibility]

**Requires:**
- [Change needed]

### Validation Plan

**Test:** [How to validate new frame]
**Duration:** [Timeframe]
**Success criteria:** [What proves new frame works]
**Reversibility:** [How to revert if wrong]
```

## Frame Elements Reference

### Goals
What we're trying to achieve. Check: Is achieving this goal actually solving the problem?

### Explicit Assumptions
Beliefs we know we hold. Check: Is this belief actually true?

### Implicit Assumptions
Beliefs we hold without realizing. Check: What are we assuming without questioning?

### Constraints
Limits on our options. Check: Is this really a constraint, or just assumed to be?

### Mental Model
How we think the system works. Check: Does reality match our model?

## Anti-Patterns

| Avoid | Problem | Do Instead |
|-------|---------|------------|
| Premature double-loop | Expensive when single-loop suffices | Require 3+ failure pattern |
| Keeping failed frame | Throwing good effort after bad | Acknowledge sunk cost |
| Partial reframe | New frame inherits old problems | Examine all elements |
| No validation | New frame may also be wrong | Test before commitment |
| Blame frame authors | Defensive, blocks learning | Focus on improvement |

## When to Revert to Single-Loop

Double-loop is expensive. Return to single-loop when:
- New frame is established and working
- Failure is isolated (not a pattern)
- Quick fix is sufficient

