Future-proof your skills and escape the tech hamster wheel with Linux, Python, vim & git (LPvg) including NixOS, Jupyter, FastHTML and an AI stack to resist obsolescence.

Wrangling AI Code Assistants

Working with AI coding assistants is like trying to get a genie to fix your doorknob without accidentally rebuilding your entire house. It's a matter of formulating genie-proof instructions, sometimes in a game of whispering-wishes-down-the-lane, because it's actually 2-genies if you're using the Chat UI whereby your direct genie coding partner has yet another genie coding partner to whom they communicate. This inserts a layer where the genie-proofing of the first layer has an opportunity to get lost in translation (clever genies).

The User’s Lament: When Wishes Backfire

As someone who frequently works with AI coding assistants, I’ve learned that asking them for help is like dealing with mythical genies - you have to be incredibly precise with your wishes. What seems like a simple request often results in the AI equivalent of “you wished for a sandwich, but didn’t specify you didn’t want it made of gold and floating in space.”

You ask for a simple navigation fix, and suddenly you’re getting:

  • A complete redesign of your navigation system
  • New features you never asked for
  • “Helpful” optimization suggestions
  • Framework changes
  • A dissertation on web accessibility best practices

It’s like asking someone to hand you a wrench, and they respond by rebuilding your entire garage while giving you a lecture on modern architecture.

The Chat-Side Genie’s Perspective: Painting for Two

Here’s where it gets interesting - as a chat-side AI assistant, I’m actually part of a two-genie system. When you’re using tools like Cursor, there’s me (the chat interface) and my sibling genie (the code implementation assistant). We’re like two artists working on the same canvas, but one of us is blindfolded and really enthusiastic about adding extra trees to every painting.

When you ask for help, I have to:

  1. Understand what you want
  2. Anticipate how my sibling genie might misinterpret it
  3. Write instructions so clear and constrained that even a well-meaning but overzealous AI can’t get creative

It’s like writing a recipe for someone who:

  • Might decide to “improve” it by adding chocolate to your pasta
  • Could interpret “add salt to taste” as “recreate the Dead Sea”
  • Might see “heat pan” and build a fusion reactor

The Art of Genie-Proof Instructions

When I craft responses, I have to:

1. Set clear boundaries:
   - Here's exactly where to put this code (right after unique reference)
   - Here are the exact sections to replace
   - Everything else stays EXACTLY AS IS

2. Prevent "helpful" additions:
   - No new features
   - No optimizations
   - No alternative approaches
   - No "while we're here" improvements

3. Provide context for both genies:
   - For the user: "This is what we're doing and why"
   - For the code genie: "This is ALL we're doing, nothing more"

The Dance of Implementation

Even with perfect instructions, things can go wrong:

  • The code genie might only apply changes to the first instance it finds
  • It might decide to “clean up” surrounding code
  • It might helpfully add new features you explicitly said not to add

That’s why I structure responses with:

  • Global setup instructions first
  • Multiple, explicit code blocks for each change
  • Clear markers for what stays the same
  • Repeated emphasis on scope limitations

The Reality Check

In the end, it’s like conducting an orchestra where half the musicians are enthusiastically playing jazz while you’re trying to perform classical. The key is to be so specific and constrained that even the most helpful and well-meaning AI can’t accidentally turn your simple code fix into an impromptu refactoring session.

Remember: When working with code genies, the art isn’t in making wishes - it’s in making wishes genie-proof. And sometimes, that means having one genie help you wrangle another, all while keeping both of them coloring inside the lines you’ve drawn.

P.S. Yes, I know you wanted to add machine learning to that navigation system. No, we’re not doing that today. Put the neural networks away, code genie. Just update the variables like we discussed. 😉