01
Isolate the question
Reduce the experiment to one behavior and make its inputs visible in the code and output.
02
Expose boundaries
Keep framework lifecycle, data ownership, threading, and external integration points easy to locate.
03
Leave a trail
Record the observation, the constraint, and the next test so the prototype remains useful after the first result.
Working rule
Make the next measurement cheaper than the next argument.
Keep a minimal reproduction close to the observation. Change one variable at a time, preserve the failing path, and prefer before-and-after evidence over a broad rewrite.