← LeaderboardThe Skill Leaderboard

Inversion Exercise

Flip core assumptions to reveal hidden constraints and alternative approaches - "what if the opposite were true?"

Published by obra ↗obra/superpowers-skills

Try your first task

Challenge a design assumption

Start a fresh conversation. Replace the highlighted placeholders.

Use the Inversion Exercise skill on this problem: [describe the problem]. Start from this assumption: [state one assumption that currently seems mandatory]. List the core assumptions, invert each one, briefly explore the implications, and identify any inversion that could work in this context. Keep this to a small first-pass analysis; do not implement changes.

Required inputs

  • A description of the problem
  • One assumption that currently appears mandatory
  • Relevant constraints or success criteria

Suggested template by Skill Leaderboard, grounded in the linked source. Task evidence ↗

SKILL.md

name: Inversion Exercisedescription: Flip core assumptions to reveal hidden constraints and alternative approaches - "what if the opposite were true?"when_to_use: when stuck on unquestioned assumptions or feeling forced into "the only way" to do somethingversion: 1.1.0

Inversion Exercise

Overview

Flip every assumption and see what still works. Sometimes the opposite reveals the truth.

Core principle: Inversion exposes hidden assumptions and alternative approaches.

Quick Reference

Normal AssumptionInvertedWhat It Reveals
Cache to reduce latencyAdd latency to enable cachingDebouncing patterns
Pull data when neededPush data before neededPrefetching, eager loading
Handle errors when occurMake errors impossibleType systems, contracts
Build features users wantRemove features users don't needSimplicity >> addition
Optimize for common caseOptimize for worst caseResilience patterns

Process

  1. List core assumptions - What "must" be true?
  2. Invert each systematically - "What if opposite were true?"
  3. Explore implications - What would we do differently?
  4. Find valid inversions - Which actually work somewhere?

Example

Problem: Users complain app is slow

Normal approach: Make everything faster (caching, optimization, CDN)

Inverted: Make things intentionally slower in some places

  • Debounce search (add latency → enable better results)
  • Rate limit requests (add friction → prevent abuse)
  • Lazy load content (delay → reduce initial load)

Insight: Strategic slowness can improve UX

Red Flags You Need This

  • "There's only one way to do this"
  • Forcing solution that feels wrong
  • Can't articulate why approach is necessary
  • "This is just how it's done"

Remember

  • Not all inversions work (test boundaries)
  • Valid inversions reveal context-dependence
  • Sometimes opposite is the answer
  • Question "must be" statements