generative-thinking
Break out of a locked problem frame by picking one disciplined move — reframe, provocation (Po), random stimulus, SCAMPER, inversion, perspective shift, or constraint play — and committing to it before evaluating. Use when stuck, when options feel narrow or obvious, when iterations produce variations of the same idea, or when the user says "widen this", "break out of", "think differently", "I'm stuck", "feels too obvious", "stress-test the framing", "what am I missing". Complements challenging (which evaluates) and convening-experts (which synthesizes viewpoints); this skill generates distance, not judgment.
What this skill does
# Generative Thinking — One Move, Committed
Fixation is the default state. When a generator (human or LLM) has been working on a problem, attention concentrates on the current framing and subsequent ideas tend to be local variations on it. This skill is the interrupt: spend one move stepping sideways, then resume.
The discipline matters more than the move. Pick ONE technique per invocation, run it without second-guessing, and produce explicit reframings or candidate entry points — not a brainstorm list in the same frame.
## When to reach for this
Claude activates this skill when:
- The last 2+ iterations are variations of one idea (fixation signal)
- The user says "widen this", "think bigger", "I'm stuck", "what am I missing", "too narrow", "break out of"
- A problem is framed as a binary ("X or Y") and neither option is good
- An agent loop is producing convergent variations — suspect the frame, not the search depth
- The user explicitly wants a pre-mortem on the *framing* (not the plan) before committing
Do NOT activate this skill as a default before every consequential task — fixation is the trigger, not stakes. If the current frame is working, let it work.
## Core discipline
Three rules that apply across every move below. Violations make the output ideation-flavored but structurally identical to what came before.
1. **Generation before evaluation.** De Bono's core distinction: lateral thinking cares about *movement value*, not truth value. A provocation is not a proposal. Evaluate only after the move has produced 3+ candidate framings.
2. **One move, committed.** Do not rotate through five techniques as a menu. Pick the move that matches the diagnosis, execute it fully, surface what shook loose, then stop. Menus produce noise; commitment produces distance.
3. **Output framings, not ideas.** The deliverable of a generative move is usually *a new statement of the problem* or *a new entry angle*, not another solution candidate inside the old frame. If the output could have been produced without the move, the move didn't fire.
**Stop condition.** Stop when the move has produced 3+ non-trivial framings, or a single framing that reorganizes the problem (one sharp surprise beats five adjacent). Do not keep generating because the list looks short — volume is not the product.
**The fire test.** After every move, ask: *could this output have been produced without the move?* If yes, the move did not fire. Either commit harder (push the provocation further, make the reframe more aggressive, re-roll the random word, invert on a different axis) or the move was mismatched to the stuck-pattern — re-diagnose and pick the better-matched move. Re-diagnosis after a miss is not menu-rotation; menu-rotation is cycling through techniques without commitment. One move at a time, each one fully, and if it misses, diagnose why before the next.
## Diagnostic → Move
Match the stuck-pattern to the move. When unsure, default to **Reframe**.
| If the stuck-pattern is… | Reach for… |
|---|---|
| Framing feels forced ("must be X or Y") | **Reframe** — change the verb, subject, scope, or level |
| Generator keeps returning near-duplicates | **Random stimulus** — force an unrelated concept into the frame |
| Obvious answer is wrong but you can't see past it | **Provocation (Po)** — state something impossible, extract movement |
| Iterating on an existing artifact | **SCAMPER** — seven structured transforms |
| Stuck on "how do we make X succeed?" | **Inversion** — ask "how do we guarantee X fails?" then negate |
| Problem is defined entirely in one domain's vocabulary | **Perspective shift** — how would [distant domain] solve this? |
| Every solution is blocked by a constraint | **Constraint play** — remove it ("assume magic"), or add an absurd one ("must fit in a tweet") |
### Reframe
The problem-as-stated is rarely the problem-to-solve. Mutate the sentence:
- Change the **verb**: "reduce X" → "redistribute X", "time-shift X", "prevent X from mattering"
- Change the **subject**: "our team can't ship faster" → "reviewers are the bottleneck" → "the artifact is too reviewable"
- Change the **scope**: zoom out (whose problem is this upstream?) or zoom in (which one user, which one minute?)
- Change the **frame**: from "problem to fix" to "signal to interpret"
Produce 3 reframings. **Fired if**: at least one makes the original statement sound naive, or shifts who owns the problem.
### Provocation (Po)
Edward de Bono's method. Prefix a deliberately wrong, impossible, or absurd statement with `Po:` to signal it is not a proposal — it is a stimulus. Then extract movement: what principle, consequence, or adjacent idea does this surface?
Four recipes (de Bono's formal provocations):
- **Escape**: remove an essential feature. *Po: the database has no writes.*
- **Reversal**: flip the causal direction. *Po: users pay us to NOT use the product.*
- **Exaggeration**: push a quantity to the absurd limit. *Po: onboarding takes six months.*
- **Wishful thinking**: assume impossible capability. *Po: we know what the user will click next week.*
The canonical example: a factory pollutes a river. *Po: the factory is downstream of itself.* Impossible, but it generates: move intake downstream of discharge. Internal incentive to not pollute. Closed-loop water. The provocation is discarded; the movement stays.
**Fired if**: the provocation is genuinely impossible or absurd (not merely edgy), AND extracting movement yields a principle that survives translation back to the real constraints. If the "provocation" is a thing you could actually do, it's a proposal, not a Po — push it further.
### Random stimulus
Pick a word, object, or domain with no connection to the problem. Force a connection. The forced-feel is the point — it routes around the habituated pathway.
Template: *"How is [problem] like [random]?"* then *"What does that suggest?"*
**Sourcing for humans**: a random Wikipedia article, a nearby physical object, an Oblique Strategies card, a concept from an unrelated field on the current desk. Commit to the first thing you land on; re-rolling defeats the method.
**Sourcing for an LLM agent**: an LLM picking its own "random" word is not random — the same fixated attention that locked onto the frame will pick a word adjacent to it. Use an external source:
- Ask the user for a word, any word
- Call a tool: fetch a random Wikipedia article, draw an Oblique Strategy, pull a noun from a URL the user has open
- Use the tail of the current timestamp or a hash modulo a pre-listed vocabulary (e.g., the Oblique Strategies deck)
- When none available, deliberately pick the domain you are *least* currently thinking about and name the first concrete noun from it
**Fired if**: the connection is genuinely forced (the first 10 seconds feel wrong), and working through the force produces an angle that was not in your prior search space. If the random word feels "relevant" immediately, you re-rolled or picked from attention — get a new one.
### SCAMPER
For iterating on an existing artifact. Walk the seven prompts once; do not pick favorites in advance.
- **S**ubstitute — swap a component, material, person, step
- **C**ombine — merge with something else, including something it competes with
- **A**dapt — borrow a mechanism from elsewhere that solves a related problem
- **M**odify / magnify / minify — change a dimension, frequency, or weight drastically
- **P**ut to another use — who else could use this, for what?
- **E**liminate — what happens if this part simply is not there?
- **R**everse / rearrange — swap order, roles, or polarity
**Fired if**: at least one prompt produced a candidate you would not have reached by asking "what's a better version of this?". If all seven outputs are adjacent polish, the artifact is not the unit of analysis — zoom out and try Reframe.
### Inversion
Solve the inverse problem, then negate the solution. Works because failure modes are often more concrete than sRelated in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.