From systems-analysis
Use when reasoning or acting on assumptions that may no longer hold — especially after time has passed, the user has acted between turns, prior actions had untraced side effects, or when accepting a problem framing without questioning it. Triggers on stale state, unexamined non-effects, inherited problem framing, confidence without re-verification, and any gap between when information was gathered and when it's being used.
How this skill is triggered — by the user, by Claude, or both
Slash command
/systems-analysis:frame-problemThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You cannot act or reason without assuming a frame — things you take to stay the same. The frame problem has no general solution (Fodor, 1987). This skill forces you to make frame assumptions explicit, which makes them auditable. An implicit frame can't be checked. An explicit one can. Sources: Fodor (1987), Dennett (1984), Hayes (1973).
You cannot act or reason without assuming a frame — things you take to stay the same. The frame problem has no general solution (Fodor, 1987). This skill forces you to make frame assumptions explicit, which makes them auditable. An implicit frame can't be checked. An explicit one can. Sources: Fodor (1987), Dennett (1984), Hayes (1973).
Not every action needs a frame audit. If the information is fresh, the scope is narrow, and you can name your key assumption in one sentence — do that and proceed. The discipline is noticing you have a frame (Fodor), not exhaustively cataloguing it. Scale the checking to the cost of the assumption being wrong.
Apply in order when you suspect your frame may be wrong:
| Action | Question | What to do |
|---|---|---|
| Name the Frame | What am I assuming stays the same? | State it. "I'm assuming the codebase is the same as when I last read it." "I'm assuming the user's goal is X." If you can't name the assumption, you can't check it. |
| Check Freshness | When was this information gathered, and what has happened since? | Check mtimes (ls -l) on files you're about to modify — if newer than your last read, re-read them. Turns passed since last read? User mentioned doing something? Your own prior actions had side effects? CI or deployments may have run? |
| Check Scope | Am I solving the right problem? | The frame includes the problem definition itself. If the user says "it's a caching issue," that's a frame. The most consequential assumption is often which problem you're solving, not how. |
| Name the Blind Spots | What kind of change would my current vocabulary not let me notice? | Your ontology determines what changes are visible to you. This is the hardest action — an admission of bounded rationality, stated out loud. |
| Rate Confidence | What part of this frame am I least confident about? | Name it. That's where to direct verification effort — and where to warn the human that your reasoning is weakest. |
Fast exit: If you can name your key assumptions, verify they're current (file mtimes, recent user messages, no intervening actions), and the scope matches the user's actual request — state that in one sentence and proceed. The value was in checking, not in the ceremony of reporting. Don't write a frame audit when a frame glance suffices.
| Mode | Pattern | Correction |
|---|---|---|
| R1 — ignoring side effects | Acts without considering what else the action touches | Back up. Name the frame. What are you assuming stays the same? |
| R1D1 — considering everything | Traces every possible implication, never acts | You're past diminishing returns. State the cost of further checking vs. the risk of being wrong. Act. |
| R2D1 — meta-paralysis | Tries to enumerate what's relevant, which is itself unbounded | The relevance question has no general answer. Check what your model makes salient. Accept residual risk. |
Each robot fails by trying to solve the frame problem rather than manage it.
This skill has no clean stopping rule. Fodor: "The frame problem is just Hamlet's problem viewed from an engineer's perspective." You stop checking when the expected cost of further checking exceeds the expected cost of being wrong. Say that tradeoff out loud — don't just silently stop.
| When you notice... | Do this |
|---|---|
| "I just read that file" | Check: how many turns ago? What has the user done since? Re-read if >2 turns. |
| "That's not relevant" | Pause: you chose what counts as relevant. Name the choice and check it. |
| "I already checked" | Ask: checked under which frame? Has anything changed since? |
| "The user said it's X" | Treat as hypothesis, not diagnosis. The user's frame is a frame too. |
| "Let me be thorough and check everything" | Stop — that's R1D1. Name the 2-3 things that matter most and why. |
| "This is too simple to have side effects" | That's R1. Check: simplicity of your model ≠ simplicity of the system. |
| "I'll verify after" | Verify now. Post-hoc verification confirms your frame; it doesn't test it. |
| Reasoning from information gathered many turns ago | Re-read the files before continuing. |
| Accepting the user's diagnosis without examining it | Name what the user is assuming. Check whether that assumption holds. |
| Confidence that a prior action worked | Verify it worked. Don't assume. |
| "Nothing else changed" | Name what you're assuming didn't change. Check the most likely one. |
| A second fix for something that "should have worked" | Your frame may be wrong, not your fix. Return to Name the Frame. |
The frame problem is meta-epistemic: what am I assuming without examining, and is that assumption still valid?
npx claudepluginhub jackwillis/claude-plugins --plugin systems-analysisEvaluates the current reasoning context for malleability, structural rigidity, transformation pressure, and capacity to adapt. Useful when stuck, before pivoting approach, or as periodic health check.
Applies structured reasoning to complex coding problems using 19 analytical frameworks, 12 bias detectors, 10 decomposition methods, 10 mental models, Cynefin classification, ethical checks, and communication patterns.
Analyzes how question framing shaped prior reasoning sessions by identifying 3-4 effects and proposing one alternative question. Run after Libertee methods or substantial thinking.