Ask HN: How do you maintain depth of understanding and velocity when using AI?

1 points by civicsquid ↗ HN
I'll preface this by saying where I haven't encountered this problem to set up some contrast:

* Logical code search - want to know what component(s) do something or how something has changed

* Design brainstorming - need to solve X but don't like (or cannot use) my current ideas

* Investigation assistance (sometimes!) - execute tools to gather data and analyze it

These are generally things that I can "verify" fairly quickly. Investigation can be a bit of a mixed bag, but in any case there is some amount of manual effort being offloaded and giving me leverage.

However, when it comes to design documents (writing) and implementation (coding), I seem to be in the minority that finds AI slowing me down, and I think this is a problem with how I use it. I always review the generated output myself, to ensure that it:

1. Matches my intent

2. Maintains proper abstraction and comprehensibility, and

3. Surfaces edge cases I missed before getting into the details

This leads to me spending lots of time going back and forth with the agent. In the design phase, I often get to a point where the approach seems sound, but then upon pressing for 15-20 minutes the agent tells me something like "oops, I thought this was negligible but it is load-bearing". In the coding phase, I will argue with it about what it has produced or interrogate its logic to align myself with its approach.

Sometimes I do find subtle issues, and on rare occasions I will find major issues. I'll admit that I'm not sure anything Claude/Codex has generated in the past 3 months would be catastrophic if shipped as-is. Still, I work on systems whose primary objective is reliability and performance, rollout times can be long, and blast radius can be difficult to contain -- so I need to be careful and a measure-twice-cut-once approach is often necessary.

By the end of it, I've expressed as much thinking in text as I would have in my head, and I've reviewed every character it produced. It doesn't seem to have saved me time over typing everything in myself and I'm exhausted on top of that.

So I'm wondering: what am I missing when it comes to AI-driven design/development? Is there something I can change in my assumptions or process to get a smoother outcome, or has this been difficult for others too?

15 comments

[ 0.29 ms ] story [ 43.8 ms ] thread
FWIW, I’m in the same minority(?) as you. I suspect that others just have lower standards of rigor.
Do you find yourself still trying to use AI tools for the synthesis portion of writing/coding, or have you gone back to the 'manual' ways?

I've pretty much completely dropped it for writing (but still use it for catching issues with clarity or logical flow afterwards). I've yet to get away from it for coding. Perhaps I keep trying with coding because I feel I'm doing something wrong (and because for a a little my performance was tied to usage of it...).

I have no pressure to use LLMs for agentic coding, so I haven’t tried that hard, to be honest. I use LLMs to generate initial code drafts and to perform logical refactors (those which classic mechanical refactoring tools are unsuitable for) that I then touch up or revise manually. Basically, areas where it actually saves time while still fully controlling the design of the code and verifying all aspects of the implementation. I don’t see how agentic coding can save time without giving up some level of diligence, coherence, and attention to detail, which I’m not willing to do.
yea its tough, when it comes to frontend you can go really fast because reviewing is easy since its something you can visually pick. for backend its exactly as you described, perhaps the ideal thing you could do is speed up your review by using ai rather than going over every line or spend more time planning and writing the spec.

I was the same when i just started using codex, i dont know the exact time but at some point i just stopped reviewing, dumb but the more i used it the more lazy i became.

I am so tired of chatting in prompts. But we've got to provide input and intent somehow. Here's the strategy I'm trying...

Instead of prompting, I hack on code in my editor.

My harness gather everything it needs from the local context - my git diff, my open editor buffers, etc. to assess what I've been doing. No chat. This is fed into phase 2 which tries to guess my intent. Then phase 3, it presents a plan to complete the work. The only user interaction is reviewing the plan and typing yes or no.

The quality of the plan of course depends on the quality of my uncommitted ideas. As it should be. If the plan goes off the rails, it's my fault. Do not chat your way to a solution! Abort the session and continue fleshing out the idea in source code/markdown.

The reason I like this is it forces me to at least take a stab at the work. I treat the AI like a relief pitcher to come in and close out the game.

I can't say this is the way to hyper productivity. I'm still slow. But at least I'm spending exactly 0 hours a day arguing with an LLM!

I like this, it feels like the right balance. I still struggle to define when the handoff point is, but I think maybe it's at the same point as when I would hand it off to a junior engineer: when I've sketched almost everything I need to be quite confident in my approach (and if I'm wrong, I'll find out and try again).
i think you need to constrains AI with the help of powerful prompt
To ensure max utilization of my attention, I do the following steps when working on new features:

  - Straight brain dump for ideas. I don't spend time organizing thoughts. Sometimes I don't even write prompts with right English syntax. But AI will understand most of them.
  - Ask AI to grill me on the missing details in the design. Usually it's the most painful step.
  - AI writes design doc. I skim through it. Give some feedback.
  - Let AI implement the feature. Recent AI models can usually complete the full feature without my intervention, as long as the design doc is solid.
  - If I feel there are unclear part in the implementation, I ask AI to write explainer doc.
The things many people probably don't do is:

  - The reverse grilling. Our description on the thing we want is often incomplete. If we don't make AI to ask enough clarification questions, there will be misalignment.
  - Now I ask AI to write all docs in html. It takes more tokens and time to finish, but much easier to read and understand, because of the richer layout and sometimes the interactivity of html/js. 
I used claude artifacts to give feedback about the html design doc directly to the agent, and later on, developed my own tool (https://github.com/hyperlogue/r3) to do the same thing but for all kinds of agents.
something that works well to me is trying to make very compact PRs, with just one intention, and not divagate into multiple ideas at the same time.

also at my company we use Revix AI for reviews which do not remove the human but gets most of the little things and allows us to keep proper code in a team where most of juniors and mids use AI without much control