The "Battleship Prompt": fire three differently-worded prompts at the same task in parallel Claude Code sessions and see which one hits[1]. This gives better coverage - abstractions, edge cases, and failure modes.
More importantly, it's making me better at prompting.
This works best when the outcome is clear but the path isn’t. I’ll bracket the space: one prompt for the simplest solution, one for the most comprehensive[2], one from a different constraint entirely[3].
Here is an abridged recent example:
- Minimal: "Make sure the locale defaults to en-us when rendering the email template".
- Contextual: "When the locale is unknown in the email template renderer, determine the best locale to use for the circumstances".
- System-level: "Ensure that all users in the system have a sensible locale based upon their use of the product".
I had to unlearn “never throw away code.” If code isn't the bottleneck any more, you optimize for outcome and time, not artifact preservation. This is a muscle worth building.
In practice, I'll spin up three Claude Code sessions and run them in parallel. Often one will land the task immediately. In the example above, I ended up merging (1) and (3). The fallback was a no-brainer. The system-level prompt found a better way to infer user locales from product usage.
Over time you need this less. You start writing the prompt that lands on the first attempt[4]. That’s when you know it’s working.