Thought Experiment
When empiricism is out of reach, run a disciplined counterfactual: one isolated change, fixed conditions, step-by-step mechanism, and a hard bound on implications.
When to Use
- You need behavior under failure, scale, or policy you cannot cheaply trigger or measure (region outage, 100x load, one-way architecture).
- A decision is expensive or irreversible and a mental trace can surface break points before commit.
- Edge cases are too costly to stage, but a mechanistic chain can still expose missing controls.
When NOT to Use
- A cheap real test exists (load test, flag, query, spike) → run the test; do not substitute imagination.
- Adversarial security attack-path work → use red-team structure, not free-form scenarios.
- You already know the mechanism and only need a decision under known facts → decide; do not dramatize.
- Vague "what if everything" brainstorming without a single isolated variable → tighten or stop.
Procedure
-
State the question and isolation. Name exactly one primary variable or counterfactual change. Freeze all other conditions as the control world. Reject multi-variable "and also" scenarios.
-
Fix initial conditions. Specify system state, load, configuration, actors, and what is not changed. Write values concrete enough that another agent could replay the setup.
-
Trace the mechanism step by step. From t0, record what fails, queues, retries, or adapts next—and why—using known components and policies only. No hand-wavy "then everything collapses"; each step needs a causal link.
-
Extract invariants and break points. Note what still holds (invariants) and the first step where the system violates a requirement (capacity, correctness, safety, UX). Mark assumptions that, if false, void the chain.
-
Bound implications. Map insights only to actions or checks justified by the chain (limits, guards, monitoring, redesign). Label speculative leaps beyond the isolation as out of bound.
-
Name a discriminating real check, then stop. For the weakest link, state the cheapest observation or experiment that would confirm or kill it. Stop after one controlled chain with bounded implications; if a link is cheaply testable now, exit to that test instead of further imagination.
Output
Emit a thought-experiment record:
-
question: what behavior or decision is under test
-
isolated_variable: single change vs control world
-
initial_conditions: frozen state and non-changes
-
consequence_chain: ordered mechanistic steps
-
invariants: what still holds
-
break_points: first requirement failures and critical assumptions
-
implication_bound: actions/checks justified by the chain only
-
discriminating_check: cheapest real observation to confirm or kill the weak link
Verification
-
Isolation check: more than one free variable without a stated control → invalid; reset.
-
Mechanism check: any step without a causal link to a known component/policy → rewrite or drop.
-
Implication bound: recommendations not entailed by the chain are out of scope.
-
Empiricism override: if a real test became available mid-analysis, stop the thought experiment and test.
-
Over-application guard: do not use this skill for ordinary debugging you can reproduce, or as a substitute for red-team threat modeling.
-
Stop: one isolated counterfactual → full chain → bounded implications + discriminating check; no scenario sprawl.