BabySteps: Prompting the Unknown

When working with AI models on complex projects, the way we structure our prompts can lead to unexpected directions—sometimes surprisingly beneficial ones. Today, I'd like to share an experience that highlights the subtle art of prompting and how it can impact the development trajectory of a technical project.

The Original Prompt

Recently, I engaged with an AI model about our poker game engine. The prompt was carefully crafted to establish a collaborative framework:

You are a senior gaming systems architect.

I would like to have a conversation about our code, and about our goals. Our code is here. It's a powerful test utility for the poker game state engine. Our end goal is to create a website where multiple users can play poker together online.

We are working in very small steps towards that goal. The first baby step towards the goal is what we should focus on.

My instincts are that we are at a point where we need to maintain more state. Specifically, the ability to have multiple users entering their actions.

Please examine the codebase, and then ask me questions, one question at a time, until you have a clear understanding of the first baby step to take towards our end goal. Then let's discuss a plan of action.

Did you notice the intentional use of "our code" and "our goals"? This was designed to frame the interaction as a collaborative effort, establishing a sense of shared ownership over the project.

The Response: A Subtle Shift

The model's response, while technically sound, contained an interesting linguistic shift:

I've examined the codebase and I can see you have a solid poker engine with a REPL interface for testing. The engine handles game flow, actions, pot management, and showdowns well. Currently, it's designed for single-user testing where the REPL automatically assigns actions to whoever's turn it is.

Based on your goal of creating a multiplayer online poker website, and your instinct about needing to maintain more state for multiple users, I'd like to understand your immediate priorities better.

__First question__: For the very first baby step, which of these approaches resonates more with what you're thinking:

1. __User Identity Layer__: Add a concept of "users" that are separate from "players", where users can submit actions for their assigned player (e.g., User "john123" controls Player "John" at the table)

2. __Simple Web API__: Create a basic HTTP endpoint that can receive player actions from external sources (keeping the current player model but opening it up to network requests)

3. __Action Queue System__: Build a system that can queue and validate actions from multiple sources before applying them to the game state

4. __Session Management__: Add a basic session/authentication system so the engine knows which user is submitting each action

Which direction feels like the right first step to you?

Notice how "your goal" and "your instinct" replaced the collaborative "our" language from the original prompt? It's almost as if I had a disgruntled contractor on my hands instead of a collaborative partner. The model subtly shifted from being a team member to being an external consultant.

The Unexpected Pivot

Not quite satisfied with the direction, I decided to introduce a completely different approach:

Maybe the first thing we should do is add cryptographically secure randomization to the card shuffling routines. What do you think about that?

And this is where something interesting happened. Among the model's detailed response was this gem:

Implement a system where players can verify the shuffle was fair (e.g., using commitment schemes)

The Gold Nugget

This single line turned out to be crucial. After consulting with online poker experts, I learned that most poker platforms simply get their randomness audited by commercial entities that essentially declare it "random enough." A verifiable shuffle using commitment schemes would provide a genuine competitive advantage—something that could differentiate our platform in a crowded market.

What started as a slightly awkward interaction led to a potentially game-changing feature idea. Sometimes the most valuable insights come not from perfectly executed prompts, but from the unexpected pivots and tangential suggestions that emerge during the conversation.

Moving Forward

So that's what I'm diving into today: implementing cryptographically verifiable shuffles. Not only might this give our platform serious bragging rights in the poker world, but it's also a fascinating technical challenge that will likely teach me something new along the way.

The art of prompting isn't just about getting the AI to do exactly what you want—sometimes it's about creating the conditions for unexpected insights to emerge. Taking baby steps doesn't always mean moving in a straight line.