HACKER Q&A
📣 thlangu

How are you managing "prompt fatigue" and lazy LLM outputs?


I rely heavily on LLMs to help me code side projects and write copy, but lately, I’ve hit a wall with prompt fatigue.

Between my college classes and working my sales shifts, my actual dev time is pretty limited. I started noticing that I was spending 20 minutes just arguing with the models to get what I actually asked for. If I don't write a massive, perfectly structured system prompt every single time, the AI defaults to giving me half-finished code (// insert remaining logic here) or wraps everything in that sterile, generic voice (always using words like 'delve' or 'robust').

I got so tired of keeping a messy Notion doc full of "negative constraints" to copy and paste that I ended up just building my own lightweight wrapper (a constraint engine) to front-load all the formatting rules before it hits the model.

But I'm really curious about how power users here are handling this right now.

Are you guys just keeping massive markdown files of system prompts to copy/paste?

What specific constraints or frameworks are you using to force models to write complete, production-ready code on the first try?


  👤 HalfEmptyDrum Accepted Answer ✓
If you read this: https://www.williamjbowman.com/blog/2026/03/05/against-vibes...

you will notice that this may not even be the correct workflow (depending on what you want to achieve of course. If you just verifiable web-dev, you can keep on doing what you do; even then there may be counter-args).

Generally, I noticed that when I went back to my old work flow of writing rough pseudo code (which aggregated doesn't add a lot of time), I was more efficient. I could then let the LLM translate the pseudo code.

What I was missing though was that the LLM also suggested changes to my pseudo code in my pseudo code style as well.

This is why I built the following skill (you can use /translate then):

https://github.com/HalfEmptyDrum/Pseudo-Code-Flow

I have written about it here:

https://news.ycombinator.com/item?id=47331647


👤 hkonte
Lazy outputs are almost always a structure problem. Constraints buried in prose get treated as soft suggestions. The model weighs them against everything else and decides how much to follow.

Separating role, objective, constraints, and output format into typed blocks changes that. Each block is parsed independently. The half-finished code and "delve" patterns go away when constraints are mandatory structure, not embedded text.

I built flompt for exactly this: https://github.com/Nyrok/flompt