100 Wires Logo
← Back to Home

Prompt Engineering

Expectation vs Reality

The Expectation

What people think I do:

Hi, A.I.! you are a great programmer! Please build my app for me! You're the best! Thank you! See how polite I am? Please spare me in the robot revolution.

The Reality

What I actually do:

this is the form that interacts with the post offers table:
  resources/js/components/offers/FormCreateOrUpdateOffer.vue
      resources/js/components/offers/InlineForm.vue
      resources/js/components/offers/Types/

  please see:
  tests/Feature/Offers/StoreOfferTest.php
   - we built this test, and may need to expand it.

  the first bug we will fix is on the UI.

  to reproduce:
  add a new entry.
  select 'category' for the type.
  click 'add category'.
  click into 'item category' dropdown.
  type 'a' (which should bring up 'SAMPLE_NAME' in this case.).

  this appears in the console:
  [Vue warn]: Unhandled error during execution of render function 
    at <PageColumn md="6" > 
    at <PageRow class="gap-default align-items-end" > 
    at <CategorySelector key=1 model-value= 
  Array [ {…} ]
   selected-category-ids= 
  Array [ 37 ]
    ... > 
    at <InlineForm key=1 modelValue= 

  Uncaught (in promise) TypeError: can't access property "length", searchQuery.value is undefined
      showNoItemsMessage CategorySelector.vue:32
      refreshComputed reactivity.esm-bundler.js:391
      get value reactivity.esm-bundler.js:1643
      unref reactivity.esm-bundler.js:1488
      get reactivity.esm-bundler.js:1494

  CategorySelector.vue:32:5

  in this case, on the parent offer, there is the relation offer_categories, which includes id=37, name=SAMPLE_NAME. the categories in item category are supposed to be restricted to what is chosen in the parent offer, the one currently selected in the UI rather than what is currently saved in the database.

Why the Reality Works Better

TDD is *STILL* the foundation of good programming.

In about a year, "vibe coders" will think they discovered the concept of "technical debt". Proper feature/unit tests are still the basis for any stable program, and just like in manual coding, writing them actually speeds up coding rather than slows it down.

Specificity

AI needs to understand your specific codebase structure, file locations, and dependencies. Generic requests produce generic (often wrong) solutions. AI understands tests remarkably well.

Stack Traces Are Gold

Full error outputs with line numbers tell AI exactly where to look. A stack trace is worth a thousand "please help me" requests.

Business Logic Needs Explanation

AI can't intuit your specific business rules. Explaining relationships like "categories should be restricted to parent offer selections" prevents incorrect assumptions.

How to Engineer a Prompt

Effective AI prompting isn't about being nice to the machine - it's about being a good technical communicator. The same skills that help you file a useful bug report or explain a problem to a colleague are what make AI actually useful for coding.

Think of AI as a very smart but literal junior developer who just joined your team. They need context, clear instructions, and specific examples. Skip the pleasantries and focus on precision - the robot revolution will judge us on our commit history, not our manners.